《软件测试与质量保障教学资料集成测试.ppt》由会员分享,可在线阅读,更多相关《软件测试与质量保障教学资料集成测试.ppt(43页珍藏版)》请在三一办公上搜索。
1、集成测试,华中农业大学信息学院计算机科学系,问题引入,测试过程单元测试集成测试系统测试,为什么需要集成测试?,为什么总是集成不起来?,一、集成测试概述,集成测试(Integration test)也叫组装测试或联合测试是在单元测试的基础上,将所有模块按照设计要求集成为系统或子系统,并进行测试。验证程序和概要设计说明的一致性,二、基于功能分解的集成,实施策略非渐增式集成渐增式集成,非渐增式集成,定义又叫大爆炸集成(Big-bang Integration)把所有通过了单元测试的模块按设计要求,一次全部组装起来,然后进行整体测试。,目的尽可能缩短测试时间,使用最少的测试用例验证系统。特点“急于求成
2、”,具体方法例:假设要对某个系统的部分功能进行测试,其功能分解如图所示:,三、渐增式集成方式,定义从一个模块开始,测一次添加一个模块,边组装边测试,以发现与接口相联系的问题。集成方式自顶向下集成自底向上集成三明治集成,1.自顶向下集成,定义自顶向下集成(Top-down Integration)按照系统层次结构图,以主程序模块为中心,自上而下按照深度优先或者广度优先策略,对各个模块一边组装一边进行测试。,自顶向下集成的两种类型广度优先深度优先,A、B、E、J、K、C、F、L、G、D、H、M、N、I,深度优先:,A、B、C、D、E、F、G、H、I、J、K、L、M、N,广度优先:,自顶向下集成步骤
3、,(1)以主控模块作为测试驱动模块,把对主控模块进行单元测试时引入的所有桩模块用实际模块替代(2)依据所选的集成策略,每次只替代一个桩模块,(3)每集成一个模块立即测试一遍(4)只有每组测试完成后,才着手替换下一个桩模块(5)为避免引入新错误,须不断地进行回归测试,从第(2)步开始,循环执行上述步骤,直至整个程序结构构造完毕。,举例:,深度优先:A、B、E、C、D、F,广度优先:A、B、C、D、E、F,深度优先,2.自底向上集成,定义自底向上集成(Bottom-up Integration)从系统层次结构图的最底层模块开始进行组装和集成测试的方式。,自底向上集成步骤(1)从最底层的模块开始组装
4、,组合成一个能够完成某个子功能的构件;(2)编制驱动程序,协调测试用例的输入与输出;(3)测试集成后的构件;(4)使用实际模块代替驱动程序,按程序结构向上组装测试后的构件;(5)重复上面的第二步,直到系统的最顶层模块被加入到系统中为止。,举例:,优点可以尽早的验证底层模块的行为;提高了测试效率;对实际被测模块的可测试性要求较少;减少了桩模块的工作量;容易对错误进行定位。,缺点直到最后一个模块加进去之后才能看到整个系统的框架;只有到测试过程的后期才能发现时序问题和资源竞争问题;驱动模块的设计工作量大;不能及时发现高层模块设计上的错误。,适用范围 底层模块接口比较稳定的产品;高层模块接口变更比较频
5、繁的产品;底层模块开发和单元测试工作完成较早的产品。,四、三明治集成,定义三明治集成方法(Sandwich Integration)三明治集成是一种混合增值式测试策略,综合了自顶向下和自底向上两种集成方法的优点。,方法一般对软件结构的上层使用自顶向下结合的方法;对下层使用自底向上结合的方法;,举例,用三明治集成方式如何测试?,三明治集成步骤,首先,确定以哪一层为界来决定使用三明治集成策略。我们确定以B模块为界;其次,对模块B及其所在层下面的各层使用自底向上的集成策略;再次,对模块B所在层上面的层次使用自顶向下的集成策略;然后,把模块B所在层各模块同相应的下层集成;最后,对系统进行整体测试。,优
6、点除了具有自顶向下和自底向上两种集成策略的优点之外,运用一定的技巧,能够减少了桩模块和驱动模块的开发。缺点在被集成之前,中间层不能尽早得到充分的测试。,五、基于调用图的集成,基于调用图的集成有两种:成对集成相邻集成,1、成对集成,成对集成的思想就是免除桩/驱动器开发工作,使用实际代码来代替桩/驱动器。成对集成的方法就是对应调用图的每一个边建立并执行一个集成测试会话。,2.相邻集成,相邻节点有向图中,节点邻居包括所有直接前驱节点和直接后继节点 相邻集成可大大降低集成测试的会话数量,并可避免桩和驱动器的开发相邻集成本质上是三明治集成相邻集成具有“中爆炸”集成的缺陷:隔离困难,基于调用图的集成的优缺
7、点,优点基于调用图的集成偏离了纯结构集成,转向行为基础。免除了桩/驱动器开发工作量。缺点缺陷隔离问题,六、基于路径的集成,概念源节点汇节点模块执行路径消息,MM-路径图给定一组单元,其MM-路径图是一种有向图,其中节点表示模块执行路径,边表示消息和单元之间的返回。注意:MM-路径图是按照一组单元定义的。,MM-路径MM-路径是穿插出现模块执行路径和消息的序列对于传统软件来说,MM-路径永远是从主程序开始,在主程序中结束。注意:MM-路径不是可执行路径,并且要跨越单元边界,例:,模块执行路径:MEP(A,1)=MEP(A,2)=MEP(A,3)=MEP(B,1)=MEP(B,2)=MEP(C,1
8、)=MEP(C,2)=,跨三个单元的MM-路径,例:,从上图导出的MM-路径图,实线箭头表示消息,虚线箭头表示返回。,MM-路径的深度MM-路径末端点有两点可观察的行为准则,即消息静止和数据静止消息静止当到达不发送消息的结点时,消息静止发生。例如图中的模块C数据静止当处理不立即使用的存储数据的创建序列结束时,数据静止发生。,MM-路径图的特点优点功能性和结构性的一种混合表达上:功能性标识方式上:结构性集成测试和系统测试无逢连接缺点标识MM-路径的工作量很大,MM-路径复杂度,V(G)=e n+2pV(G)=e n+2(对于结构化过程代码,p=1),MM-路径有向图,V(G1)=4-3+2=3V(G2)=24-6+2=20,基于路径集成的优缺点,优点:MM-路径是功能性测试和结构性测试的一种混合。基于路径的集成测试既适用于采用传统瀑布过程开发的软件,也适用于采用基于合成可选的生命周期模型开发的软件。缺点:需要更多的工作量标识MM-路径。,小 结,集成测试的几种方法基于分解的集成基于调用图的集成基于路径的集成,