【软件质量保证与测试】2.3集成测试

1. 集成测试目的

  1. 集成测试定义:在单元测试基础上,将所有模块按照概要设计要求组装成子系统或系统,进行集中测试。又称组装测试、联合测试、子系统测试或部件测试
  2. 集成测试时机:单元测试之后
  3. 集成测试对象:模块间的接口,接口之间的关系
  4. 集成测试特点
    (1)单元测试具有不彻底性,对于模块间接口信息内容的正确性、相互调用关系是否符合设计无能为力。只能依靠集成测试来进行保障。
    (2)同系统测试相比,集成测试用例是从程序结构出发的,目的性、针对性更强,测试项发现问题的效率更高,定位问题的效率也较高。
    (3)能够较容易地测试到系统测试用例难以模拟的特殊异常流程,从纯理论的角度来讲,集成测试能够模拟所有实际情况。
    (4)定位问题较快
  5. 集成测试关注点
    (1)在把各个模块连接起来时,穿越模块接口的数据是否会丢失。
    (2)各个子功能组合起来,能否达到预期要求的功能。
    (3)一个模块的功能是否会对另一个模块的功能产生不利的影响。
    (4)全局数据结构是否有问题,会不会被异常修改。
    (5)单个模块的误差积累起来,是否会放大,从而达不到可以接受的程度
  6. 集成测试范围
    在这里插入图片描述
  7. 集成测试层次
    子系统内集成测试(模块)
    子系统间集成测试 (可执行程序)
  8. 集成测试策略:非增值式和增值式

2. 集成测试方法

在这里插入图片描述

  1. 非增式测试定义:分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序
  2. 非增式测试优势:方法简单;允许多个测试人员并行工作
  3. 非增式测试缺点
    (1)必须为每个模块准备相应的驱动模块和辅助桩模块,故测试成本较高;
    (2)一旦集成后的系统包含多种错误,难以对错误定位和纠正
  4. 非增式集成的一种方法——大爆炸集成:把所有的系统组件一次性集合到被测试系统中,不考虑组件之间的相互依赖性或者可能存在的风险
    在这里插入图片描述
  5. 大爆炸集成优点:
    (1)可迅速完成集成测试,且只需极少数驱动模块和桩模块
    (2)多个测试人员可并行工作
  6. 大爆炸集成缺点:
    (1)发现错误时,定位和修改较为困难
    (2)许多接口错误很容易躲过测试而进入系统测试
  7. 增式测试定义:这种集成方式又称渐增式组装。首先对一个个模块进行模块测试,然后将这些模块逐步组装成较大的系统,在组装的过程中边连接边测试,以发现连接过程中产生的问题。通过增值逐步组装成为要求的软件系统
  8. 增式测试优点:相对于非增式测试,可较早发现模块间的接口错误;发现问题也易于定位
  9. 增式测试缺点:测试周期长,可同时投入的人力物力受限
    在这里插入图片描述
  10. 自顶向下特点:不需驱动模块,可采用深度优先或广度优先策略

自顶向下步骤:
1、从主控模块(“主程序”)为测试驱动,把对主控模块进行单元测试时引入的所有桩模块用实际模块替代。
2、依据所选的集成策略(深度优先或广度优先),每次只替代一个桩模块
3、每集成一个模块即测试一遍
4、只有每组测试完成后,才着手替换下一个模块

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

自顶向下适应范围
(1)产品的控制结构比较清晰和稳定
(2)产品的高层接口变化范围小
(3)产品的底层接口未定义或经常可能被修改。
(4)产品的控制模块具有较大的技术风险,需要尽早被验证

  1. 自顶向下优点
    (1)较早的验证了主要的控制和判断。
    (2)如果按深度方向组装,可以首先实现和验证一个完整的软件功能。
    (3)最多只需一个驱动模块。
    (4)支持故障隔离。
  2. 自顶向下缺点
    (1)桩的开发和维护成本较大。
    (2)底层组件的无法预计的需求可能会导致许多顶层组件的修改
  3. 当桩模块不能正确的向上传递有用信息,可以采用一些解决办法:
    (1)将很多测试推迟到装模块用实际模块代替了之后进行。
    (2)进一步开发能模拟实际模块功能的桩模块。
    (3)自底向上集成和测试软件
  4. 自底向上特点:从具有最小依赖性的底层组件开始,按照依赖关系的结构,逐层向上集成,以检测整个系统的稳定性

自底向上步骤
1、把底层模块组织成实现某个子功能的模块簇
2、开发一个测试驱动模块,控制测试数据的输入和测试结果的输出。
3、每模块簇进行测试。
4、删除测试使用的模块驱动,用较高层模块把模块组织成为更大功能的新模块群

在这里插入图片描述

  1. 自底向上适应范围:底层接口比较稳定,高层接口变化比较频繁的产品
  2. 自底向上的优点:
    (1)对底层模块进行了充分测试,可在任何一个叶节点已经就绪的情况下进行集成测试
    (2)减少了桩模块的工作量
    (3)支持故障隔离
  3. 自底向上的缺点:
    (1)驱动模块的开发工作量较庞大
    (2)高层测试集中在后期,不能及时发现设计上的错误
    (3)底层的异常比较难覆盖
  4. 三明治策略:对软件结构中较上层,使用的是“自顶向下”法;对软件结构中较下层,使用的是“自底向上”法,两者相结合
  5. “自顶向下”法的主要优点:不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能在早期发现上层模块的接口错误。
  6. “自顶向下”法的主要缺点:需要存根程序,可能遇到与此相联系的测试困难,低层关键模块中的错误发现较晚,而且用这种方法在早期不能充分展开人力。
    “自底向上”法的优缺点与“自顶向下”法刚好相反
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值