一,什么是集成测试
(1)也叫做组装测试、联合测试、子系统测试、部件测试
(2)是在单元测试的基础上,将所有模块按照概要设计要求组装成为子系统,进行集成测试
二,单元测试、集成测试、系统测试的差别
1,单元测试
目的:消除局部模块逻辑和功能上的错误和缺陷
对象:模块内部程序错误
测试依据:模块外部说明/模块逻辑设计
测试方法:白盒测试
2,集成测试
目的:找出与软件设计相关的程序结构,模块之间的调用关系和模块之间的接口问题
对象:模块之间的集成和调用
测试依据:程序结构设计
测试方法:灰盒测试
3,系统测试
目的:对整个系统进行一系列的整体,有效性测试
对象:整个系统,包括系统硬件和软件
测试依据:系统结构设计,需求说明书
测试方法:黑盒测试
三,集成测试的层次
1,模块内集成测试
2,子系统内集成测试
3,子系统间集成测试
面向对象的应用系统来说,可以分为:
1,类内集成测试
2,类间集成测试
四,集成测试关注的5大重点
1,穿越模块接口数据是否丢失
2,子功能组合起来,是否达到预期要求的父功能
3,一个模块的功能是否对另一个模块有影响
4,全局数据结构是否有问题
5,单元测试的误差是否积累放大
五,集成测试的原则
1,所有公共接口必须被测试到
2,关键模块必须进行充分测试
3,集成测试应当按一定层次进行
4,综合考虑质量、成本、进度之间的关系
5,应当尽早开始
6,在模块和接口的划分上,应该与开发人员沟通
7,相关接口发生修改时,涉及到的相关接口都必须进行回归测试
六,集成测试的测试策略
1,非增量方式
先测试好每一个软件单元,然后一次组装在一起再测试整个程序。
方法:大爆炸(Big Bang)
(1)五大优点
- 迅速完成集成测试
- 只要极少数的驱动和桩模块
- 用例最少
- 简单
- 资源利用率高
(2)三大缺点
- 一次试运行成功的可能性不大
- 问题定位和修改比较困难
- 许多接口错误很容易躲过测试
(3)适用场所
适应于一个维护型项目或被测试系统较小
2,增量方式
- 逐步把下一个要被组装的软件单元或部件,同已经测试好的软件部分结合起来测试
- 包括自顶向下、自底向上、自顶向下和自底向上相结合(“三明治”方法)
(1)自顶向下方法
从顶层控制开始,采用涉及顺序一样的思路进行检测,验证系统接口稳定性
1)深度优先组装法
2)广度优先组装法
3)增量测试中自顶向下法的优缺点
5大优点:
- 较早验证了主要控制和判断点
- 深度优先组装法可以首先实现验证一个完整的软件功能
- 功能较早证实
- 只需要一个驱动,减少开支
- 支持故障隔离
3大缺点:
- 桩的开发量较大
- 底层验证被推迟
- 底层组件测试不充分
4)自顶向下的6大适用范围
-
高层接口经常被修改
-
高层接口变化较小
-
高层接口未定义
-
产品控制结构比较清晰和稳定
-
控制组件具有较大的技术风险,需要较早验证
-
希望尽早看到产品的系统功能
(2)自底向上方法
从具有最小依赖性的底层组件开始,按照树的结构,逐层向上集成,验证系统稳定性。
1)自底向上的4大优点
- 对底层组件行为较早验证
- 工作最初可以并行集成,比自顶向下效率高
- 减少桩的工作量
- 支持故障隔离
2)自底向上的2大缺点
- 驱动的开发工作量大
- 对高层的验证被推迟,设计上的错误不能及时的发现
3)自底向上的适用范围
-
适用于底层接口比较稳定的
-
高层接口变化频繁
-
底层组件较早被完成
(3)“三明治”方法
混合式集成
把系统划分为三层,中间一层为目标层,目标层之上采用自顶向下,目标层之下采用自底向上。
1)三明治方法的优点
- 集合了自顶向下和自底向上的优点
2)三明治方法的缺点
中间层检测不充分
3)适用范围