1、2q本章重点什么是集成测试?集成测试的常见策略有哪些?集成测试的过程是怎样的?3q集成测试的定义q集成测试是在单元测试的基础上,将所有已通过单元测试的模块按照概要设计的要求组装为子系统或系统,进行集成测试,目的是确保各单元模块组合在一起后能够按既定意图协作运行,并确保增量的行为正确。4q与单元测试和系统测试的区别单元测试关注模块内部,集成测试关注模块接口;集成测试仅针对软件系统展开测试,系统测试中所涉及的系统则不仅包括被测试的软件本身,还包括硬件及相关外围设备。5q集成测试的内容将各模块连接起来时,穿越模块接口的数据是否会丢失;各子功能组合起来能否达到预期要求的父功能;一个模块的功能是否会对其
2、他模块的功能产生不利影响;全局数据结构是否有问题,是否会被异常修改;单个模块的误差累积起来,是否会放大到不可接受的程度。6q集成测试的开发一般由开发小组内部进行。7q集成测试的环境8q测试用例的规模q驱动模块的设计q桩模块的设计q缺陷定位的难易程度9q案例说明10q成对集成基本思想:将每个集成测试用例限定在一对调用单元上。实践规模估算 模块调用图中包含m个模块,共有n条边 测试用例数目:n特点分析11q邻居集成基本思想:将每个集成测试用例限定在某个节点的邻居上。实践规模估算 模块调用图中包含m个模块,n个中间层模块 测试用例数目:n+1特点分析12q大爆炸集成基本思想:将所有经过单元测试的模块
3、一次性组装到被测系统中进行测试,完全不考虑模块之间的依赖性和可能的风险。实践特点分析13q自顶向下集成基本思想实践规模估算特点分析14q自顶向下集成:基本思想从主控模块(主程序,即根节点)开始,按照系统程序结构,沿着控制层次从上而下,逐渐将各模块组装起来。15q自顶向下集成:实践(宽度优先1)16q自顶向下集成:实践(宽度优先2)17q自顶向下集成:实践(宽度优先3)18q自顶向下集成:实践(深度优先1)19q自顶向下集成:实践(深度优先2)20q自顶向下集成:规模估算调用图中有m个模块需开发桩模块m-1个21q自底向上集成基本思想实践规模估算特点分析22q自底向上集成:基本思想从最底层模块(
4、即叶子节点)开始,按照调用图的结构,从下而上,逐层将各模块组装起来。23q自底向上集成:实践(1)24q自底向上集成:实践(2)25q自底向上集成:实践(3)26q自底向上集成:规模估算调用图中有m个模块,叶子模块为n个需开发驱动模块m-n个27q三明治集成基本思想实践特点分析28q三明治集成:基本思想将系统划分为三层,中间层为目标层,测试时对目标层上面的层使用自顶向下的集成策略,对目标层下面的层使用自底向上的集成策略。在第1种集成策略的基础上,对目标层采用独立测试的策略,以确保目标层模块在集成测试之前得到充分的测试。对包含读操作的子系统自底向上集成测试直至根节点,然后对包含写操作的子系统自顶
5、向下集成测试直至叶子节点。29q三明治集成:实践(策略1)30q三明治集成:实践(策略1)31q三明治集成:实践(策略1)32q三明治集成:实践(策略2)33q三明治集成:实践(策略3)34q三明治集成:实践(策略3)35项目测试用例数目桩模块驱动模块缺陷定位并行测试系统概貌成对集成由边数决定需要需要非常容易可以不确定邻居集成主要由中间节点数决定需要需要困难可以不确定大爆炸少不需要不需要非常困难N/A早期自顶向下较多需要不需要较容易困难早期自底向上较多不需要需要较容易可以较晚三明治较多需要需要较困难可以早期36q基于功能分解的集成q基本思想从功能的角度出发,对功能分解树展开集成测试37q基于功
6、能分解的集成q步骤确定功能节点的优先级;寻找优先级最高的功能路径,将该路径所涉及的所有模块集成起来构成测试用例,必要时应开发对应的桩和驱动模块;在剩下的功能节点中确定一个优先级最高的节点,继续步骤(2),直至所有所有模块都加入系统中。38q基于风险的集成基于以下假设:系统风险最高的模块之间的集成往往是缺陷非常集中的部分,应尽早验证这些接口,从而加速系统的稳定。39q计划阶段完成集成测试计划,制定集成测试策略。q设计实现阶段建立集成测试环境,完成测试设计和开发。q执行评估阶段执行集成测试用例,记录和评估测试结果。40q本章重点什么是系统测试?系统测试一般包括哪些内容?功能测试有哪些常见的策略?4
7、1q系统测试是将已经过良好的集成测试的软件系统,作为整个计算机系统的一部分,与计算机硬件、外部设备、支持软件、数据以及人员等其他系统元素结合在一起,在实际使用(运行)环境下对计算机系统进行一系列的严格测试来发现软件中的潜在缺陷,保证系统交付给用户之后能够正常使用。42q定义q功能测试主要是根据软件需求规格说明书来检验被测系统是否满足用户的功能使用要求。它是系统测试中最基本的测试。43q功能测试的内容检验是否所有功能都能实现,是否有遗漏的功能。检验是否所有功能都能正确实现。检验是否存在额外的功能。检验功能是否满足系统设计的隐含需求。检验系统能否正确接受输入,对异常输入是否能够予以提示,是否具有一
8、定的容错能力。检验系统能否正确输出结果,输出格式和数据是否正确,是否可以正确保存和读取。检验系统状态是否能够随业务流程变化而变化,并保持稳定。44q功能测试的策略以数据为中心的系统以活动序列为中心的系统45q以数据为中心的系统从实体关系模型来考虑 从对数据的操作来考虑 46q从实体关系模型来考虑1对11对多多对1多对多47q以数据为中心的系统从实体关系模型来考虑 从对数据的操作来考虑 48q从对数据的操作来考虑增加删除查找修改49q以活动序列为中心的系统基于系统输入的测试用例设计 基于系统输出的测试用例设计基于系统状态的测试用例设计基于系统事件的测试用例设计50q基于系统输入的测试用例设计是否
9、覆盖所有可以接受输入的硬件设备?是否覆盖所有输入条件?是否覆盖输入条件的边界取值?是否覆盖输入条件的典型取值?是否覆盖所有不合理的输入?即碰到任意一种无效或不合理输入的时候,系统能否给予合理的反馈?51q以活动序列为中心的系统基于系统输入的测试用例设计 基于系统输出的测试用例设计基于系统状态的测试用例设计基于系统事件的测试用例设计52q基于系统输出的测试用例设计同输入情况的考虑53q以活动序列为中心的系统基于系统输入的测试用例设计 基于系统输出的测试用例设计基于系统状态的测试用例设计基于系统事件的测试用例设计54q基于系统状态的测试用例设计语句覆盖(状态覆盖)判定覆盖(状态转换覆盖)路径覆盖(
10、所有触发事件覆盖)55q以活动序列为中心的系统基于系统输入的测试用例设计 基于系统输出的测试用例设计基于系统状态的测试用例设计基于系统事件的测试用例设计56q基于系统事件的测试用例设计结合系统状态的覆盖展开对事件的覆盖测试。57q功能测试自动化58q性能测试定义考虑的方面目标内容手段59q性能测试:定义就是对软件的运行性能指标进行测试,判断系统集成之后在实际的使用环境下能否稳定、可靠地运行。60q性能测试:考虑的方面时间性能空间性能61q性能测试:目标判断被测系统是否满足预期的性能需求(若设计时有合理的性能需求)。判断系统的性能表现。寻找可能存在的软件性能问题,定位性能瓶颈并解决问题。62q性
11、能测试:内容常规性能测试压力测试负载测试可靠性测试大数据量测试63q性能测试:手段手工测试自动化测试工具 64q安全性测试安全性安全性测试测试范围65q安全性测试:安全性安全性是使得伤害或损害的风险限制在可接受的水平内。可分为两个级别 应用程序级别 系统级别66q安全性测试:安全性测试的定义用于检验系统对非法侵入的防范能力。常用的手段 尝试通过外部手段截获或破译系统口令。使用甚至专门开发能够瓦解防守的客户软件来攻击系统,试图破坏系统的保护机制。故意引发系统错误,导致系统失败,企图趁系统恢复的时候侵入系统。67q安全性测试:范围资源风险安全性控制68q兼容性测试定义测试内容与硬件兼容与其他软件平
12、台和应用程序兼容 数据共享69q兼容性测试:定义就是要检验被测软件与其他软件和硬件相互是否能够正确交互和实现信息共享。有时兼容性测试也特指被测软件与其他软件之间的交互,而将软件与硬件之间交互的测试称为配置测试。70q兼容性测试:测试内容与硬件兼容与其他软件平台和应用程序兼容数据共享71q兼容性测试:与硬件兼容确定所需的硬件类型确定可用的硬件型号和驱动程序 确定可能的硬件特性、模式和选项 将明确后的硬件配置缩减到可控的范围之内 明确使用硬件配置的软件唯一特性为每种硬件配置设计并执行测试用例 重复配置测试直至达到规定的标准 72q兼容性测试:与其他软件平台和应用程序兼容。向前和向后兼容多个应用程序
13、的测试73q兼容性测试:数据共享文件能正常保存和读取文件能正确导入和导出支持剪切、复制及粘贴操作支持软件不同版本间的数据转换 74q可恢复性测试定义测试范围75q可恢复性测试:定义基于计算机的系统应在限定的时间内从失效状态中恢复过来,并继续运行。两种情况 系统运行过程中的缺陷不能使整个系统功能停止。系统缺陷应在限定的时间内自动修复,否则将导致严重的经济损失。76q可恢复性测试:测试范围是否存在潜在的灾难和已确认的系统失效,导致的后果是怎样的?系统保护和恢复过程是否为错误提供了足够的反应?恢复过程是否能够正确工作?77q用户界面测试定义基本原则测试技巧78q用户界面测试:定义用户界面是指提供给用
14、户用于与软件进行交互的方式。用户界面测试很困难,原因在于 可能的输入太多 可能的输出太多 活动序列太多 难以选择合适的覆盖指标 低劣的设计易将界面与功能混在一起 79q用户界面测试:基本原则规范化灵活性正确性(显示内容准确,显示及处理正确)直观性(易见,易学,易用)舒适性(内容友好,提示信息,界面美观协调,菜单及按钮使用快捷方式)实用性一致性帮助独特性多窗口应用与系统资源80q用户界面测试:测试技巧划分界面元素,根据界面复杂性进行分层。在不同界面层次确定不同的测试策略。分析测试数据,设计测试用例。利用自动化测试工具开发自动测试脚本。81q文档测试定义测试对象测试技巧82q文档测试:定义就是针对
15、软件开发、维护的全生命周期中涉及的文档展开测试。83q文档测试:测试对象安装手册用户手册联机帮助示例与模板错误提示授权/注册登记表和用户许可协议软件包装和市场宣传材料84q文档测试:测试技巧对于不涉及运行程序的文档,主要是确保文档正确、完备、易于理解。对于涉及运行程序的文档,应在运行程序的同时检查对应的文档,并额外保证文档与程序执行结果的一致性。85q可安装性测试定义安装程序的一般流程测试目标测试内容自动化测试86q可安装性测试:定义广义的安装包括安装和卸载。狭义的安装测试是以安装手册为依据,对软件的安装过程进行测试的一项活动,目的是验证软件系统在正常和异常情况下能否成功安装。87q可安装性测
16、试:安装程序的一般流程选择大量选项分配并加载文件和库进行有效的硬件配置要求网络连通,以便于和其他软件相连接(可选)88q可安装性测试:安装程序的一般流程89q可安装性测试:测试目标安装程序能够正确运行;程序安装正确;程序安装后能够正确运行;完善性安装后程序仍能正确运行。90q可安装性测试:测试内容安装前的测试重点安装过程中的测试重点 正常安装 安装中的异常情况安装后的测试重点91q可安装性测试:自动化测试确定安装程序自动化测试的内置层次控制机器的基本状态使用测试工具来驱动安装程序使用流程图设计自动测试使用多台机器,建立分布式测试环境运行安装测试自动验证安装测试的结果,即验证安装程序是否将期望的文件安装到指定位置在安装程序脚本中验证安装需要的硬盘空间自动测试卸载程序92q可安装性测试:自动化测试93q可安装性测试:卸载测试文件快捷方式复原卸载方式卸载环境非正常卸载冲击卸载卸载后系统不对其他应用程序造成不良影响