软件测试课件第5章集成测试

上传人:E**** 文档编号:91193181 上传时间:2019-06-26 格式:PPT 页数:54 大小:1.17MB
返回 下载 相关 举报
软件测试课件第5章集成测试_第1页
第1页 / 共54页
软件测试课件第5章集成测试_第2页
第2页 / 共54页
软件测试课件第5章集成测试_第3页
第3页 / 共54页
软件测试课件第5章集成测试_第4页
第4页 / 共54页
软件测试课件第5章集成测试_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《软件测试课件第5章集成测试》由会员分享,可在线阅读,更多相关《软件测试课件第5章集成测试(54页珍藏版)》请在金锄头文库上搜索。

1、第五章 集 成 测 试,本章要点 集成测试的定义; 集成测试与系统测试的区别; 集成测试与开发之间的关系; 集成测试的分析方法; 集成测试策略的选择; 集成测试环境的搭建; 集成测试用例设计的方法。,5.1集成测试概述,开发,需求分析,概要设计,详细设计,编码,单元测试,集成测试,系统测试,测试,一、软件开发与软件测试的关系,二、集成测试的定义: 根据实际情况对程序模块采用适当的集成测试策略组装起来,对系统的接口以及集成后的功能进行正确性检验的测试工作。,集成测试,系统测试,角度,测试对象,测试时间,测试方法,测试内容,测试目的,测试角度,模块组合,整个系统,早,晚,灰盒,黑盒,接口,整个系统

2、的功能和性能,模块集成后功能是否正常,软件与系统定义是否相符,测试人员,用户,三、集成测试与系统测试的比较,图5-1 软件结构图 返回,四、集成测试的重点 1、各个模块之间的数据是否能够按期望值传递; 2、是否仍然存在单元测试时所没发现的资源竞争问题; 3、集成到一起能否实现所期望的父功能;(如:计算器运算) 4、兼容性,一个模块是否对其他与之相关的模块产生负面影响; 5、集成后,每个模块的误差是否会累计扩大,是否会达到了不可接受的程度;,五、集成测试的层次,传统软件 (集成粒度),模块内集成测试 子系统内集成测试 子系统间集成测试,粒度增大,面向对象软件 (集成粒度),类内集成测试 类间集成

3、测试,粒度增大,5.2 如何进行集成测试,一、集成测试分析(关键) 类似于软件开发之前:系统分析 体系结构分析 模块分析 接口分析 风险分析 可测试性分析 集成测试策略分析,1. 体系结构分析(图) 首先,跟踪需求分析,对要实现的系统划分出结构层次图。 其次,是对系统各个组件之间的依赖关系进行分析,然后据此确定集成测试的粒度,即集成模块的大小。 2. 模块分析(体系结构的细化) 1)确定本次要测试的模块 2)与之相关的模块按优先级排列 3)集成;,3. 接口分析(见系统示意图) 1)确定系统的边界、子系统的边界和模块的边界。 2)确定模块内部的接口。 3)确定子系统内模块间接口。 4)确定子系

4、统间接口。 5)确定系统与操作系统、 硬件、第三方软件的接口。,系统,子系统1,子系统2,模块1,模块2,接口1,模块3,模块4,接口2,接 口 3,操作系统,硬件,第三方软件,图5-2 系统结构示意框图,4. 风险分析 风险通常被分为3种类型: 1) 项目风险:项目管理和项目环境的风险。如:人员不足 2) 商业风险:领域的相关概念及规则变更。如:需求变更 3) 技术风险:这是针对应用程序的具体实现而言的,主 要和代码级的测试有关。 风险分析:是一个定义风险并且找出阻止潜在的问题变成现实的方法的过程。,二、集成测试策略 1. 基于分解的集成 1) 大爆炸集成 即:一次性组装、整体拼装 目的:尽

5、可能缩短测试时间,使用最少的测试用例。,增量式,非增量式,自顶向下,自底向上,-大爆炸式,图5-3 程序结构图,例:用大爆炸法对某系统的部分功能(4个模块)进行测试,其功能分解如图所示:,Tests Test A(with stubs for B and C) Test B(with driver for A and stub for D) Test C(with driver for A) Test D(with driver for B) Test(A,B,C,D),图5-4 大爆炸法示例图,优点 (1)可以并行调试所有模块。 (2)需要的测试用例数目少。 (3)测试方法简单、易行。 缺点

6、 (1)不能充分对各个模块之间的接口进行充分测试。 (2)大量的错误,难以定位。 医旧病,生新病。 (3)使集成测试通过,也会遗漏很多错误。,适用范围 (1)只需要修改或增加少数几个模块的前期产品稳定的项目; (2)功能少,模块数量不多,程序逻辑简单,并且每个组件都已经过充分单元测试的小型项目;,2)自顶向下集成 目的 从顶层控制(主控模块)开始,采用同设计顺序一样的思路对被测系统进行测试,来验证系统的稳定性。 定义 按照系统层次结构图,以主程序模块为中心,自上而下按照深度优先或者广度优先策略,对各个模块一边组装一边进行测试。,方法(图示) 把主控模块作为测试驱动,所有与主控模块直接相连的模块

7、作为桩模块; 与下一层集成。 根据集成的方式(深度优先或者广度优先),逐渐使用实际模块替换相应的下层桩模块;再用桩代替他们的直接下属模块,与已通过测试的模块或子系统组装成新的子系统。 进行回归测试,确定集成后没有引入错误; 从上述过程中的第二步开始重复执行,直到所有模块都已经集成到系统中为止。,按深度优先自顶向下集成: (系统结构图如右图),A,S1,S2,A,B,S2,S3,A,B,S2,D,A,B,C,D,图5-5 系统结构图,图5-6 系统集成过程示意图,广度优先?,广度优先集成示意如下:,A,S1,S2,A,B,S2,S3,A,B,S2,D,A,B,C,D,优点 较早地验证主要的控制和

8、判断点。 可以首先实现和验证一个完整的软件功能,增强信心; 减少了测试驱动程序开发和维护的费用; 可以和开发设计工作一起并行执行集成测试,能够灵活的适应目标环境; 容易进行故障隔离和错误定位。 缺点:桩模块的开发和维护费用大。,3)自底向上集成 目的 从依赖性最小的底层模块开始,按照层次结构 图,逐层向上集成,验证系统的稳定性。,方法 从最底层的模块开始组装,组合成一个能够完成制定的软件子功能的构件; 编制驱动程序,协调测试用例的输入与输出; 测试集成后的构件; 使用实际模块代替驱动程序,按程序结构向上组装测试后的构件; 重复上面的第二步,直到系统的最顶层模块被加入到系统中为止。,优点 减少了

9、桩模块的工作量; 容易对错误进行定位。,缺点 直到最后一个模块加进去之后才能看到整个系统的框架; 只有到测试过程的后期才能发现时序问题和资源竞争问题; 驱动模块的设计工作量大; 不能被及时发现高层模块设计上的错误。,2. 三明治集成,目的: 综合利用自顶向下和自底向上两种集成测试策略的优点。 定义: 三明治集成是一种混合增量式测试策略,属于基于功能分解集成。,方法 首先,确定以哪一层为界来决定使用三明治集成策略(在下页图中,我们确定以B模块为界); 其次,对模块B及其所在层下面的各层使用自底向上的集成策略;,再次,对模块B所在层上面的层次使用自顶向下的集成策略; 然后,把模块B所在层各模块同相

10、应的下层集成; 最后,对系统进行整体测试(本层同上层集成)。,图5-7 三明治集成策略示意图,Test E,Test F,Test G,Test A,Test B,E,F,Test D,G,Test A,B,C,D E,F,G,优点 除了具有自顶向下和自底向上两种集成策略的优点之外,运用一定的技巧,能够减少了桩模块和驱动模块的开发。 缺点 在被集成之前,中间层不能尽早得到充分的测试。,3. 改进的三明治集成,充分发挥测试的并行性,弥补三明治集成中不能充分测试中间层的缺点。 并行测试目标层,目标层上面一层,目标层下面一层。 并行测试目标层与目标层上面一层的集成和目标层与目标层下面一层的集成。,图

11、5-8 改进的三明治集成策略示意图,Test E,Test F,Test G,Test A,Test B,E,F,Test D,G,Test A,B,C,D E,F,G,Test C,Test B,Test D,Test A,B,C,D,测试,4. 基于调用图的集成(课本P161) 前提:将前面的功能分解图细化为单元调用图,成为结构性测试。,成对集成: 每条边建立一个集成测试会话,相邻集成:每个邻居建立一次集成测试会话,类似于三明治集成,可减少驱动程序和桩程序的数目。,开始节点,结束节点,),2) (27个节点),0,5. 基于路径的集成 几个概念: 1) 源节点 程序中的源节点是指程序执行开

12、始或重新开始处的语句片断。 2) 汇节点 汇节点是程序执行结束处的语句片断。这里转移控制到其它单元的节点也是汇节点。,图5-9 跨三个单元的MM-路径,模块A,模块B,模块C,源:1、5 汇:4、6,源:1、3 汇:2、4,源:1 汇:5,3) 模块执行路径 以源节点开始、以汇节点结束的一系列语句,中间没有插入汇节点。 在前图中有七条模块执行路径: MEP(A,1)=1,2,3,6 MEP(A,2)=1,2,4 MEP(A,3)=5,6 MEP(B,1)=1,2 MEP(B,2)=3,4 MEP(C,1)=1,2,4,5 MEP(C,2)=1,3,4,5,4)消息 消息是一种程序设计语言机制,

13、通过这种机制可以把控制从一个单元转移到另一个单元。 5)MM-路径 是穿插出现模块执行路径和消息的序列。 对于传统软件来说,MM-路径永远是从主程序开始,在主程序中结束。,图5-9 跨三个单元的MM-路径,模块A,模块B,模块C,图5-10 从图5-9中导出的MM-路径图,注:集成测试时,MM-路径集合应覆盖所有从源到汇节点的路径。是功能性测试和结构性测试的结合。,5.3集成测试用例设计 一、为系统运行设计的用例 (测试接口) 1、等价类划分 2、边界值分析 3、 基于决策表的测试 二、为正向测试设计用例 是否按照概要设计实现了预期的功能。,功能覆盖率:测试需求点,接口覆盖率:测试每个接口,从

14、哪些角度设计测试用例?,三、为逆向测试设计用例 被测接口是否实现了需求规格没有描述的功能 检查规格说明中可能出现的遗漏或者错误(如:非法访问) 错误猜测法 边界值分析 特殊值测试 状态转换测试 四、为满足特殊需求设计用例 安全性、性能、可靠性等 五、为高覆盖设计用例 功能覆盖分析 接口覆盖分析 六、测试用例补充 需求变更,功能增加等 七、注意事项 成本、进度和质量的平衡。重点突出,在有限的时间内进行穷尽的测试是不可能的。,ATM,5.4集成测试过程,图4-15 集成测试过程,图5-11 集成测试过程,一、计划阶段 概要设计评审通过后大约一个星期,参考需求规格说明书、概要设计文档、产品开发计划时

15、间表来制定。 包括:确定测试对象和测试范围 评估工作量 角色分工 标识各阶段任务 风险分析 、应急计划 工具、环境等 二、设计阶段 一般在详细设计开始时,就可以着手进行。可以把需要规格说明书、概要设计、集成测试计划文档作为参考依据。前面的集成测试分析工作,三、实施阶段 参考需求规格说明书、概要设计、集成测试计划、集成测试设计等相关文档来进行。 包括:用例设计 规程设计 测试代码设计 测试脚本开发 工具开发或选择 最后,将相关产品提交相关人员评审。,四、执行阶段 前提:各模块的单元测试已经通过。 执行完毕将测试报告等提交。 五、评估阶段 当集成测试执行结束后,要召集相关人员对测试结果进行评估,确定是否通过集成测试。,5.5 集成测试经验总结 1.根据概要设计尽早进行集成测试计划; 2.要根据项目的实际情况制定一些覆盖率标准,从而根据覆盖率标准来设计足够多的测试用例。然后通过覆盖率分析来衡量集成测试的充分性,补充测试用例,最终使软件质量得到保证; 3.在选择集成测试策略时,应当综合考虑软件质量、开发成本和开发进度这三个因素之间的关系;,4.要根据软件的体系结构特点,来选取集成测试策略,尽可能减少桩模块和驱动模块开发的工作量,同时要兼顾是否容易进行软件缺陷定位。 5.在测试时,可以根据各种集成测试策略的特点把各种集成测试策略结合起来; 6

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号