您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 软件测试技术_韩永国_第七章集成测试
SoftwareTesting集成测试软件测试课程组西南科技大学计算机学院SoftwareTesting测试过程单元测试集成测试系统测试为什么需要集成测试?问题引入SoftwareTesting为什么总是集成不起来?SoftwareTesting7.1集成测试概述集成测试(Integrationtest)也叫组装测试或联合测试是在单元测试的基础上,将所有模块按照设计要求集成为系统或子系统,并进行测试。验证程序和概要设计说明的一致性SoftwareTesting7.2基于功能分解的集成实施策略非渐增式集成渐增式集成SoftwareTesting非渐增式集成定义又叫大棒集成(Big-bangIntegration)把所有通过了单元测试的模块按设计要求,一次全部组装起来,然后进行整体测试。SoftwareTesting目的尽可能缩短测试时间,使用最少的测试用例验证系统。特点“急于求成”SoftwareTesting具体方法例:假设要对某个系统的部分功能进行测试,其功能分解如图所示:ABDCSoftwareTesting二.渐增式集成方式定义从一个模块开始,测一次添加一个模块,边组装边测试,以发现与接口相联系的问题。集成方式自顶向下集成自底向上集成三明治集成SoftwareTesting1.自顶向下集成定义自顶向下集成(Top-downIntegration)按照系统层次结构图,以主程序模块为中心,自上而下按照深度优先或者广度优先策略,对各个模块一边组装一边进行测试。SoftwareTesting自顶向下集成的两种类型广度优先深度优先ABCDHGJEFIKLMNA、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广度优先:SoftwareTesting自顶向下集成步骤:(1)以主控模块作为测试驱动模块,把对主控模块进行单元测试时引入的所有桩模块用实际模块替代(2)依据所选的集成策略,每次只替代一个桩模块(3)每集成一个模块立即测试一遍SoftwareTesting自顶向下集成步骤(续)(4)只有每组测试完成后,才着手替换下一个桩模块(5)为避免引入新错误,须不断地进行回归测试从第(2)步开始,循环执行上述步骤,直至整个程序结构构造完毕。SoftwareTesting举例:ADBECF深度优先:A、B、E、C、D、F广度优先:A、B、C、D、E、F自顶向下集成深度优先A加入ES2BS3EA测试AS2S1S3A加入BS2BS3S4加入FCBDEAFA加入CCBS3E加入DCBDEAS5SoftwareTesting2.自底向上集成定义自底向上集成(Bottom-upIntegration)从系统层次结构图的最底层模块开始进行组装和集成测试的方式。SoftwareTesting自底向上集成步骤1从最底层的模块开始组装,组合成一个能够完成某个子功能的构件;2编制驱动程序,协调测试用例的输入与输出;3测试集成后的构件;4使用实际模块代替驱动程序,按程序结构向上组装测试后的构件;5重复上面的第二步,直到系统的最顶层模块被加入到系统中为止。SoftwareTesting举例:ACBDFEEd1Cd3Fd4EBd2Dd5FACBDFESoftwareTesting优点1可以尽早的验证底层模块的行为。2提高了测试效率;3对实际被测模块的可测试性要求较少;4减少了桩模块的工作量;5容易对错误进行定位。SoftwareTesting缺点1直到最后一个模块加进去之后才能看到整个系统的框架;2只有到测试过程的后期才能发现时序问题和资源竞争问题;3驱动模块的设计工作量大;4不能及时发现高层模块设计上的错误。SoftwareTesting适用范围底层模块接口比较稳定的产品;高层模块接口变更比较频繁的产品;底层模块开发和单元测试工作完成较早的产品。SoftwareTesting3.三明治集成定义三明治集成方法(SandwichIntegration)三明治集成是一种混合增殖式测试策略,综合了自顶向下和自底向上两种集成方法的优点。SoftwareTesting方法一般对软件结构的上层使用自顶向下结合的方法;对下层使用自底向上结合的方法;SoftwareTesting举例用三明治集成方式如何测试?CBDEFASoftwareTesting三明治集成步骤首先,确定以哪一层为界来决定使用三明治集成策略。我们确定以B模块为界;其次,对模块B及其所在层下面的各层使用自底向上的集成策略;再次,对模块B所在层上面的层次使用自顶向下的集成策略;然后,把模块B所在层各模块同相应的下层集成;最后,对系统进行整体测试。SoftwareTestingSoftwareTesting优点除了具有自顶向下和自底向上两种集成策略的优点之外,运用一定的技巧,能够减少了桩模块和驱动模块的开发。缺点在被集成之前,中间层不能尽早得到充分的测试。SoftwareTesting7.3基于调用图的集成基于调用图的集成有两种:成对集成相邻集成SoftwareTesting1、成对集成成对集成的思想就是免除桩/驱动器开发工作,使用实际代码来代替桩/驱动器。成对集成的方法就是对应调用图的每一个边建立并执行一个集成测试会话。SoftwareTesting2.相邻集成相邻节点有向图中,节点邻居包括所有直接前驱节点和直接后继节点相邻集成可大大降低集成测试的会话数量,并可避免桩和驱动器的开发相邻集成本质上是三明治集成相邻集成具有“中爆炸”集成的缺陷:隔离困难SoftwareTesting基于调用图的集成的优缺点优点基于调用图的集成偏离了纯结构集成,转向行为基础。免除了桩/驱动器开发工作量。缺点缺陷隔离问题SoftwareTesting7.4基于路径的集成概念源节点(P197)汇节点模块执行路径消息SoftwareTestingMM-路径MM-路径是穿插出现模块执行路径和消息的序列对于传统软件来说,MM-路径永远是从主程序开始,在主程序中结束。注意:MM-路径不是可执行路径,并且要跨越单元边界SoftwareTesting例:13-8跨三个单元的MM-路径A124356B1234C12345A124356B1234C12345模块执行路径:MEP(A,1)=1,2,3,6MEP(A,2)=1,2,4MEP(A,3)=5,6MEP(B,1)=1,2MEP(B,2)=3,4MEP(C,1)=1,2,4,5MEP(C,2)=1,3,4,5SoftwareTestingMM-路径图给定一组单元,其MM-路径图是一种有向图,其中节点表示模块执行路径,边表示消息和单元之间的返回。注意:MM-路径图是按照一组单元定义的。SoftwareTesting例:从图13-8中导出的MM-路径图MEP(A,2)MEP(B,1)MEP(C,1)MEP(B,2)MEP(C,2)MEP(A,3)MEP(A,1)实线箭头表示消息,虚线箭头表示返回。SoftwareTestingMM-路径的深度MM-路径末端点有两点可观察的行为准则,即消息静止和数据静止消息静止当到达不发送消息的结点时,消息静止发生。例如图13-8中的模块C数据静止当处理不立即使用的存储数据的创建序列结束时,数据静止发生。SoftwareTestingMM-路径图的特点优点功能性和结构性的一种混合•表达上:功能性•标识方式上:结构性集成测试和系统测试无逢连接缺点标识MM-路径的工作量很大SoftwareTestingMM-路径复杂度V(G)=e–n+2pV(G)=e–n+2(对于结构化过程代码,p=1)SoftwareTestingMM-路径有向图ABCMainValidatePINGetPINforPANScreenDriverGetPINKeySensorV(G1)=4-3+2=3V(G2)=24-6+2=20SoftwareTesting优点:MM-路径是功能性测试和结构性测试的一种混合。基于路径的集成测试既适用于采用传统瀑布过程开发的软件,也适用于采用基于合成可选的生命周期模型开发的软件。缺点:需要更多的工作量标识MM-路径。基于路径集成的优缺点SoftwareTesting7.5案例拼图类游戏SoftwareTesting小结集成测试的几种方法基于分解的集成基于调用图的集成基于路径的集成SoftwareTesting作业教材196页第1,2,3,4,题
本文标题:软件测试技术_韩永国_第七章集成测试
链接地址:https://www.777doc.com/doc-3605710 .html