概述
1.什么是集成测试(integration testing)
集成测试就是在单元测试的基础上,将所有已通过单元测试的模块按照概要设计的要求组装为子系统或系统,并进行测试的过程,目的是确保各单元模块组合在一起后能够按既定意图协作运行,并确保增量的行为正确
2.集成测试内容:
将各个具有相互调用关系的模块组装起来时,检查穿越模块接口的数据是否会丢失
判断各子功能组合起来能否达到预期要求的父功能
检查一个模块的功能是否会对其他模块的功能产生不利影响
检查全局数据结构是否正确,以及在完成模块功能的过程中是否会被异常修改
单个模块的误差累积起来,是否会放大到不可接受的程度
3.相关概念
驱动模块(Driver):是模拟被测单元的上级模块,用于接收测试数据、启动被测模块和输出结果
桩模块(Stub):是模拟被测单元所调用的模块
集成测试方法
成对集成
邻居集成
基于独立路径的集成
集成测试方法—成对集成
1.基本思想:将每个集成测试用例限定在一对调用单元上,每个集成测试用例都是最小的集成单元,仅涉及一对调用的接口
2.测试用例设计:两个典型的模块成对集成
3.规模估算:共m个模块,n条边,因每条边对应一对调用接口,确定一个成对测试用例,因此包含n个测试用例
4.特点分析:目的希望避免开发驱动和桩模块,但事实没有做到(3个桩模块,3个驱动模块)
优势:容易定位缺陷
集成测试方法—邻居集成
1.概念:邻居是指某个指定模块及其所有直接调用该模块的上层模块以及所有被该模块直接调用的下层模块
2.基本思想:将每个集成测试用例限定在某个节点的邻居上,针对某个模块的集成测试用例应同时包含该模块及其邻居
测试用例设计:如图所示
ND3—GD---VD
GD-----VD---LDOM
VD----LDOM----iLY
ID—LDOM—iLY
规模:共m个模块,其中n个模块是中间层的模块,根节点直接调用叶子节点,用例数量
n+1;否则为n个
特点分析:试图通过扩大单个测试用例的范围来减少测试用例的总数,导致的结果是缺陷定位变得困难
集成测试方法—基于独立路径的测试
1.基本思想:将函数调用图看做程序图,每个从根节点到叶子节点的调用形成了路径,每条独立路径即可构成一个集成测试用例
2.测试用例设计:
ND3-GD-VD-lDOM-iLY
ND3-VD-lDOM-iLY
ND3-ID-LDOM-iLY
ND3-PD
3.规模估算:环复杂度V,测试用例数量也是V,但是存在不可能路径,需要去掉或编写桩模块构造可行路径
4.特点分析:减少桩和驱动模块开发量
5.不足:缺陷定位困难
集成测试遍历顺序的设计—大爆炸集成
1.基本思想:将所有经过单元测试的模块一次性组装到被测系统中进行测试,完全不考虑模块之间的依赖性和可能的风险
2.举例:将所有7个模块放在一起进行测试,即仅需一个测试用例,达到用例规模的最小化
3.优点:测试规模小
4.缺点:违反了测试从小范围到大范围展开的原则,难以定位问题
5.适用场景:稳定的软件版本,或涉及模块和接口数量不多的情况下(小范围内)
自顶向下集成
1.基本思想: 从主控模块(主程序,即根节点)开始,按照系统程序结构,沿着控制层次从上而下,逐渐将各模块组装起来
2.深度优先:
3.以广度优先策略自顶向下集成的测试用例设计:
4.优势
优先从根节点开始测试,有助于早期实现并验证系统主要功能,给开发团队和用户带来成功的信心,也便于早期验证主要的控制和判断,避免主控程序的缺陷,确保开发进度
单个测试用例包含多个模块,可从整体上降低测试用例规模
采用递增方式展开测试,每个新的测试用例一般仅加入一个新的模块,便于缺陷定位
5.不足
桩模块的开发和维护工作量较大
难以早期发现底层模块中复杂算法的缺陷,且随着测试的进行,系统越来越复杂,底层模块的测试很难保证充分性
不利于测试的并行,难以充分展开人力
自底向上的集成
1. 基本思想:从底层模块(即叶子节点)开始,按照调用图的结构,从下而上,逐层将各模块组装起来
2. 该集成测试方法无须开发桩模块,但需对未经集成测试的模块开发驱动模块
3. 优势
优先从叶子节点开始测试,有助于早期发现底层模块中复杂算法的缺陷,且驱动模块的开发有利于规范和约束系统上层模块的设计,在一定程度上增加系统可测试性
单个测试用例包含多个模块,可从整体上降低测试用例规模
多个集成测试可并行展开,确保测试工作进度
4.不足
驱动模块的开发和维护工作量较大
难以早期发现上层模块中有关逻辑和控制方面的缺陷
直至加入最后一个模块才能看到整个系统框架,难以早期发现时序问题和资源竞争问题
三明治集成(Sandwich)
1.基本思想:将自顶向下和自底向上集成方法结合起来的集成策略。在调用图上按照一定的策略,分别自顶向下和自底向上展开集成,并在子树上进行大爆炸集成
2.优势:结合了自顶向下和自底向上的集成的优势
3.不足:
中间的目标层可能得不到充分的测试
需要同时开发桩和驱动模块,这部分工作量比较大
需在子树上进行大爆炸集成,一旦发现缺陷,涉及的接口数量较多,增加了缺陷定位难度
集成测试策略的比较
最后
以上就是灵巧白开水为你收集整理的8-1 集成测试的全部内容,希望文章能够帮你解决8-1 集成测试所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复