第09章 集成测试_第1页
第09章 集成测试_第2页
第09章 集成测试_第3页
第09章 集成测试_第4页
第09章 集成测试_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

集成测试内容9.1集成测试的概念9.2集成测试的策略9.3基于功能分解的集成9.4基于调用图的集成9.5基于路径的集成(不做要求)9.6集成测试文档(自学)9.7面向对象环境中的集成测试(自学)9.8案例分析:SATM系统的三种集成测试

9.1集成测试的概念

1.集成测试的定义集成测试是构造软件体系结构的系统化技术,同时也是进行一些旨在发现与接口相关的错误的测试。其目标是利用已通过单元测试的构件建立设计中描述的程序结构。3.集成测试的主要任务将各模块连接起来,检查模块相互调用时,数据经过接口是否丢失;将各个子功能组合起来,检查能否达到预期要求的各项功能;一个模块的功能是否会对另一个模块的功能产生不利的影响;全局数据结构是否有问题,会不会被异常修改;单个模块的误差积累起来,是否被放大,从而达到不可接受的程度。9.2集成测试的策略驱动模块(Driver):用来模拟待测模块的上级模块。驱动模块在集成测试中接受测试数据,将相关的数据传送给待测模块,启动待测模块,并打印出相应的结果。桩模块(Stub):也称为存根程序,用以模拟待测模块工作过程中所调用的模块。桩模块由待测模块调用,它们一般只进行很少的数据处理,例如打印入口和返回,以便于检验待测模块与下级模块的接口。增量式集成非增量式集成9.2集成测试的策略非增量集成非渐增式集成方法首先对每个子模块进行测试(即单元测试),然后将所有模块全部集成起来一次性进行集成测试。例:图9-1中A配备三个桩模块BEFG配备了驱动模块CD分别配备了桩模块和驱动模块分别完成了7个模块的单元测试后,然后一口气集成。9.2集成测试的策略

增量式集成

程序以小增量的方式逐步进行构造和测试,这样错误易于分离和纠正,更易于对接口进行彻底测试,而且可以运用系统化的测试方法。传统的将增量测试策略分为自顶向下集成、自底向上集成以及三明治集成。9.3基于功能分解的集成

在讨论集成测试时,测试方法都基于采用树或文字形式来表示的功能分解。这类讨论不可避免地要深入到将要集成的模块的顺序。自顶向下集成(从树顶开始向下)自底向上集成(从树底开始向上)三明治集成(前两种方法的某种组合)9.3.1自顶向下集成深度优先集成是首先集成结构中主控路径下的所有模块。例如:选择最左边的路径集成模块M1、M2,M5集成M8或M6(若对M2的正常运转是必需的)建立中间和右边的控制路径9.3.1自顶向下集成广度优先集成首先沿着水平方向,把每层中所有直接从属于上一层的模块集成起来。集成模块M2、M3和M4其次是下一个控制层M5、M6,依此类推。9.3.2自底向上集成自底向上集成是自顶向下顺序的“镜像”,不同的是,桩由模拟功能分解树上一层单元的驱动模块替代。在自底向上集成中,首先从分解树的叶子开始,并用特别编写的驱动模块进行测试。驱动模块中的一次性代码比桩中的少。大多数系统在接近叶子节点时都有相当高的扇出数,因此在自底向上集成顺序中,不需要同样数量的驱动模块,不过代价是驱动模块都比较复杂。9.3.2自底向上集成自底向上的集成如图9-3所示形成簇1、簇2、簇3,使用驱动程序对每个簇进行测试去掉D1、D2,Ma模块集成了簇1、簇2去掉D3,将Mb和簇3连接Ma,Mb,Mc连接在一起9.3.3三明治集成

三明治集成测试是将自顶向下测试与自底向上测试两种模式有机结合起来,采用并行的自顶向下、自底向上集成方式,形成的方法。三明治集成测试更重要的是采取持续集成的策略。桩和驱动的开发工作都比较小,不过代价是作为大爆炸集成的后果,在一定程度上增加了定位缺陷的难度。9.3.4基于功能分解方法的优缺点

(自学)自顶向下优点:在于它可以自然地做到逐步求精,一开始就能让测试者看到系统的框架。缺点:需要提供桩模块,桩模块是对被调用子模块的模拟,可能不能反映真实情况,因此测试有可能不充分。由于被调用模拟子模块不能模拟数据,如果模块间的数据流不能构成有向无环图,一些模块的测试数据便难以生成。同时,观察和解释测试输出往往也是困难的。

9.3.4基于功能分解方法的优缺点(自学)

自底向上优点:由于驱动模块模拟了所有调用参数,即便数据流并未构成有向无环图,生成测试数据也没有困难。如果关键的模块是在结构图的底部,那么自底向上测试是有优越性的。缺点:直到最后一个模块被加入进去之后才能看到整个程序(系统)的框架。三明治集成测试采用自顶向下、自底向上集成相结合的方式,并采取持续集成的策略,有助于尽早发现缺陷,也有利于提高工作效率。9.3.4基于功能分解方法的优缺点(自学)

功能分解缺点为了满足项目管理的需要,而不是为了满足软件开发人员的需要。桩或驱动的开发工作量,此外还有重新测试所需工作量的问题。对于自顶向下集成,需要开发(节点-1个)桩模块;对于自底向上集成,需要开发(节点-叶子)个驱动模块。9.4基于调用图的集成

基本思想:基于调用图,采用不同的集成策略9.4.1成对集成9.4.2相邻集成

9.4.1成对集成基本思想:免除桩/驱动模块开发的工作量,集成的时候限制在调用图的一对单元上,这样调用图的每条边有一个集成测试会话案例图9-4,形成成对集成7个,按边构成。图9-5,显示其中的3个build9.4.2相邻集成

基本思想:找出邻居进行集成邻居=节点-汇节点(终止节点):所有直接前驱节点+所有直接后继节点案例:图9-6,按照VLGImain顺序9.4.3基于调用图方法的优缺点(自学)

优点偏离了纯结构基础,转向行为基础,因此底层假设是一种改进。这些技术还免除了桩/驱动器开发工作量。与以构建和合成为特征的开发匹配得很好。缺点缺陷隔离问题,尤其是对有大量邻居的情况。清除缺陷后,意味着以前测试过的包含已变更代码的邻居,都需要重新进行测试。9.5基于路径的集成

(不做要求)将集成测试的侧重点由测试单独开发并通过测试的单元之间的接口,转移到这些单元的交互上,即它们的“协同功能”上。接口是结构性的,而交互是功能性的。9.5.1MM-路径的相关概念

9.5.2MM-路径的集成

9.5.3MM-路径复杂度

9.5.1MM-路径的相关概念

修订部分程序图概念

定义9.1源节点程序中的源节点是程序执行开始或重新开始处的语句片段。单元中的第一个可执行语句显然是源节点。源节点还会出现在紧接转移控制到其他单元的节点之后。定义9.2汇节点汇节点是程序执行结束处的语句片段。

程序中的最后一个可执行语句显然是汇节点转移控制到其他单元的节点也是汇节点。9.5.1MM-路径的相关概念

定义9.3模块执行路径模块执行路径是以源节点开始、以汇节点结束的一系列语句,中间没有插入汇节点。定义9.4消息消息是一种程序设计语言机制,通过这种机制一个单元将控制转移给另一个单元。定义9.5MM-路径

MM-路径是穿插出现模块执行路径和消息的序列。9.5.2MM-路径的集成

实例:模块A调用模块B,模块B调用模块C模块A源节点:1、5汇接点:4、6模块B源节点:1、3汇接点:2、4模块C源节点:1汇接点:59.5.2MM-路径的集成

案例:七条模块执行路径,MEP(模块号,路径编号)MEP(A,1)=<l,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)=<l,2,4,5>MEP(C,2)=<1,3,4,5>

9.5.2MM-路径的集成

定义9.6MM-路径图给定一组单元,其MM-路径图是一种有向图,图中的节点表示模块执行路径,边表示消息以及单元之间的返回。实线箭头表示消息,相应的返回由虚线箭头表示模块执行路径、程序路径、DD-路径和MM-路径之间的关系9.5.2MM-路径的集成

实例模块执行路径MEP(A,1)=<l,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)=<l,2,4,5>MEP(C,2)=<1,3,4,5>图9-8,MM-路径图实线表示调用虚线表示返回9.5.3MM-路径复杂度

根据图9-8的MM-路径图可以计算其圈复杂度。圈复杂度的计算公式为:V(G)=e-n+2p,图9-8值为6-7+2*2=3e代表边数n代表节点数p代表强连通区域的个数MM路径有向图,图9-10,其圈复杂度分别为V(G)=3。9.5.4基于路径方法的优缺点

MM-路径是功能性测试和结构性测试的一种混合。优点:与实际系统行为结合紧密,而不依赖于基于分解和调用图集成的结构性推动。基于路径集成测试也适用于面向对象的软件测试。缺点:需要更多的工作量标识MM-路径。这种工作量可能会与桩和驱动的开发所需工作量有偏差。9.8案例分析:

SATM系统的三种集成测试1基于功能分解的集成2基于调用图的集成9.8案例分析:

SATM系统的三种集成测试1基于功能分解的集成为主程序调用的所有单元开发桩

,GetPINforPAN_STUB复制了三个将出现在测试用例中的取值的查对表

按照一定的集成顺序加入集成模块自底向上集成自顶向下集成三明治式集成GetPINforPAN_STUB(char*PAN,char*PIN){If(strcmp(PAN,”1123”)==0)strcpy(PIN,”8876”);If(strcmp(PAN,”1234”)==0)strcpy(PIN,”8765”);If(strcmp(PAN,”8746”)==0)strcpy(PIN,”1253”);}9.8案例分析:

SATM系统的三种集成测试自顶向下的集成顺序9.8案例分析:

SATM系统的三种集成测试自底向上的集成顺序:深度优先9.8案例分析:

SATM系统的三种集成测试三明治集成:补充案例自顶向下集成补充案例三明治集成9.8案例分析:

SATM系统的三种集成测试2基于调用图的集成成对集成相邻集成基于MM-路径的集成(不做要求)9.8案例分析:

SATM系统的三种集成测试成对集成:共40条边因此应该有40组集成图9-14,显示其中的4组16-917-1822-2427-4图9-14成对集成9.8案例分析:

SATM系统的三种集成测试相邻集成:找出所有非终端节点的邻居(也就是内部节点+源节点)图9-15展示的是节点16和26的邻居。相邻集成图9-15相邻集成9.8案例分析:

SATM系统的三种集成测试3基于MM-路径的集成(不做要求)源码分析每个函数的模块执行路径MM-路径图9.8案例分析:

SATM系统的三种集成测试3基于MM-路径的集成

9.8案例分析:

SATM系统的三种集成测试

3基于MM-路径的集成

9.8案例分析:

SATM系统的三种集成测试

3基于MM-路径的集成

9.8案例分析:

SATM系统的三种集成测试

3基于MM-路径的集成

9.8案例分析:

SATM系统的三种集成测试

3基于MM-路径的集成

9.8案例分析:

SATM系统的三种集成测试

3基于MM-路径的集成

9.8案例分析:

SATM系统的三种集成测试模块执行路径Main15个源节点:1,7,8,11,12,16,20,22,25,29,33,34,36,37,3816个汇节点:6,7,9,10,11,15,19,21,24,28,32,34,35,36,37,41ValidatePINGetPIN

9.8案例分析:

SATM系统的三种集成测试模块执行路径MainValidatePIN源节点:42,45,50,51,55,59,60,64,68,69,73汇节点:44,49,50,54,58,59,63,67,68,72,76GetPIN

9.8案例分析:

SATM系统的三种集成测试模块执行路径MainValidatePINGetPIN源节点:77,84,85,86,95,96汇节点:83,84,85,88,90,92,94,99

9.8案例分析:

SATM系统的三种集成测试第一次尝试正确PIN输入的MM-路径

9.8案例分析:

SATM系统的三种集成测试示例MM-路径的UML序列图

9.8案例分析:

SATM系统的三种集成测试MM-路径有向图

结束9.6集成测试文档(自学)

软件集成的总体计划和特定的测试描述应该在测试规约中文档化。这个文档包含测试计划和测试规程,它是软件过程的工作产品,也是软件配置的一部分。下列准则和相应

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论