如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第18章集成测试与确认测试<2>可以尽早的验证底层模块的行为。<3>要求控制模块具有比较高的可测试性;图4-6自底向上增量式测试<1>即使数据流并未构成有向的非环状图,生成测试数据也没有困难。(2)渐增式测试(Incrementaltesting)3)从优先级别最高的相关模块开始,把被测模块与其集成到一起;图4-6自底向上增量式测试(3)如果一次集成的模块数量多,集成测试后可能会出现大量的错误。(2)功能少,模块数量不多,程序逻辑简单,并且每个组件都已经过充分单元测试的小型项目;(1)某些已经测试过的纯粹技术性的特点可能不需要再次测试。1)确定本次要测试的模块;<1>在测试的过程中,可以较早地验证主要的控制和判断点。在把附属于(以及最终附属于)主控制模块的那些模块组装到软件结构中去时,或者使用深度优先的策略,或者使用宽度优先的策略。而宽度优先的结合方法,是沿软件结构水平地移动,把处于同一个控制层次上的所有模块组装起来。<5>需要尽早看到产品的系统功能行为;(1)某些已经测试过的纯粹技术性的特点可能不需要再次测试。<1>把主控模块作为测试驱动,所有与主控模块直接相连的模块作为桩模块;2、测试时间集成测试是介于单元测试和系统测试之间的测试在测试时间上,先于系统测试。3、测试方法集成测试通常会采用灰盒测试。而系统测试通常使用黑盒测试。4、测试内容集成测试的主要内容就是各个单元模块之间的接口,以及各个模块集成后所实现的功能。而系统测试的主要内容就是整个系统的功能和性能。5、测试目的集成测试的主要目的就是发现单元之间接口的错误,以及发现集成后的软件同软件概要设计说明不一致的地方。而系统测试的主要目的就是,通过与系统需求定义相比较之后发现软件与系统定义不符合或矛盾的地方。6、测试角度集成测试工作的开展更多的是站在测试工作人员的角度上。系统测试工作的开展更多的是站在用户的角度来进行。18.1.2集成测试与开发的关系4-1软件结构图18.1.3集成测试的重点4、兼容性,检查引入一个模块后,是否对其他与之相关的模块产生负面影响;5、全局数据结构是否正确,是否被不正常的修改;6、集成后,每个模块的误差是否会累计扩大,是否会达到了不可接受的程度;18.2如何进行集成测试一、体系结构分析二、模块分析三、接口分析(5)确定系统与操作系统的接口。(6)确定系统与硬件的接口。(7)确定系统与第三方软件的接口。四、风险分析风险分析是一个定义风险并且找出阻止潜在的问题变成现实的方法的过程。通常把风险分析分为3个阶段:风险识别、风险评估和风险处理。五、可测试性分析18.3集成测试策略(2)渐增式测试(Incrementaltesting)渐增式测试是把下一个要测试的模块同已经测试过的模块连接起来,进行测试,测试完后再把下一个要测试的模块结合进来进行测试,逐步集成、组装测试整个软件程序18.3.1非渐增式测试2.定义3.具体方法具体测试过程如下:①对模块A进行测试②对模块B进行测试③对模块C和模块D进行测试④把通过单元测试的所有模块组装到一起进行集成测试。以上测试过程如图4-4所示:图4-4大爆炸法示例图4.优点5.缺点6.适用范围18.3.2渐增式测试(一)自顶向下测试(Top—downtesting)参看下图,深度优先的结合方法先组装在软件结构的一条主控制通路上的所有模块。选择一条主控制通路取决于应用的特点,并且有很大任意性。例如,选取左通路,首先结合模块M1、M2和M5;其次,M8或M6(如果为了使M2具有适当功能需要M6的话)将被结合进来。然后构造中央的和右侧的控制通路。而宽度优先的结合方法,是沿软件结构水平地移动,把处于同一个控制层次上的所有模块组装起来。对于图例来说,首先结合模块M2、M3和M4(代替存根程序S4)。然后结合下一个控制层次中的模块M5、M6和M7,如此继续进行下去,直到所有模块都被结合进来为止。1.目的2.定义3.方法<3>在每个模块被集成时,都必须已经通过了单元测试;<4>进行回归测试(重新执行以前做过的全部或部分测试),以确定集成新模块后没有引入错误;<5>从上述过程中的第二步开始重复执行,直到所有模块都已经集成到系统中为止。图4-5给出了一个按广度优先策略进行集成测试的典型例子。图4-5自顶向下增量式测试(广度优先策略)4.优点<4>只有在个别情况下,才需要驱动程序(最多不超过一个),减少了测试驱动程序开发和维护的费用,<5>可以和开发设计工作一起并行执行集成测试,能够灵活的适应目标环境;<6>容易进行故障隔离和错误定位。5.缺点6.适用范围自底向上增量式测试是从最底层的模块开始,按结构图自下而上逐步进行集成和测试。图4-6表示了采用自底向上增量