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