文章目录
第五章 集成测试
5.1概述
5.1.1定义、目的、内容、检查方面
- 定义:集成测试又称组装测试,是在单元测试的基础上,将所有模块按照设计要求组装成子系统或系统进行的测试活动。又称子系统测试、联合测试。
- 目的:确保各单元组合在一起后能够按既定意图协作运行,并确保增量的行为正确。
- 内容:包括单元间的接口以及集成后的功能,通常使用黑盒测试方法测试集成的功能。并具对以前的集成进行回归测试。
- 检查方面:
(1)在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失。
(2)一个模块的功能是否会对另一个模块的功能产生不利的影响。
(3)各个子功能组合起来,能否达到预期要求的父功能。
(4)全局数据结构是否有问题。
(5) 单个模块的误差累积起来,是否会被放大,从而达到不能接受的程度。
(6)在单元测试的同时可进行集成测试,发现并排除在模块连接中可能出现的问题,最终构成要求的软件系统。
5.1.2层次
由集成的力度不同,一般可以把集成测试划分为三个级别
(1)模块内集成测试。
(2)子系统内集成测试:先测试子系统内的功能模块,然后将各个功能模块组合起来确认子系统的功能是否达到预期要求。
(3)子系统间集成测试:测试的单元是子系统之间的接口。子系统是可单独运行的程序或进程。
5.1.3原则
(1)要测试所有的公共接口,尤其是那些与系统相关联的外部接口,测试的重点是要检查数据的交换、传递和控制管理过程,还包括处理的次数。
(2)必须对关健模块进行充分测试。
(3)集成测试应当按一定的层次进行。
(4)集成测试的策略选择应当综合考虑质量、成本和进度之间的关系。
(5)集成测试应当尽早开始,并以总体设计为基础。
(6)在模块与接口的划分上,测试人员应当和开发人员进行充分沟通。
(7) 测试执行结果应当被如实记录。
5.2集成测试策略
5.2.1非增量式
对所有模块进行个别的单元测试后,按照程序结构图将各模块连接起来,把连接后的程序当作一个整体进行测试。
•又叫大爆炸式集成(Big Bang)优点:
方法简单
允许多测试人员同时并行工作,人力物力资源利用率较高缺点:
必须为每个模块准备相应的驱动模块和桩模块,测试成本较高
一旦集成后包含多种错误,难以纠正。使用范围:适应于一个维护型或被测试系统较小的项目
在非增量式集成测试时,应当确定关键模块,对这些关键模块及早进行测试。
- 关键模块的特征:
① 完成需求规格说明中的关键功能;
② 在程序的模块结构中位于较高的层次(高层控制模块);
③ 较复杂、较易发生错误;
④ 有明确定义的性能要求。
5.2.2增量式
- 逐次将未曾集成测试的模块和已经集成测试的模块(或子系统)结合成程序包,再将这些模块集成为较大系统,在集成的过程中边连接边测试,以发现连接过程中产生的问题。
按照不同的实施次序,增量式集成测试又可以分为三种不同的方法:
5.2.2-1自顶向下增量式测试
- 步骤:
(1)主控模块作为测试驱动器。
(2)根据集成的方式(深度或广度),下层的桩模块一次一次地被替换为真正的模块。
(3)在每个模块被集成时,都必须进行单元测试。
重复第2步,直到整个系统被测试完成。
a.深度优先方式
首先集成在结构中的一个主控路径下的所有模块,主控路径的选择是任意的。
b.广度优先
首先沿着水平方向,把每一层中所有直接隶属于上一层的模块集成起来,直到底层。
优点
较早地验证了主要控制和判断点;
按深度优先可以首先实现和验证一个完整的软件功能;
功能较早证实,带来信心;
只需一个驱动,减少驱动器开发的费用;
支持故障隔离。缺点
桩的开发量大;
底层验证被推迟;
底层组件测试不充分适用范围
•产品控制结构比较清晰和稳定;
•高层接口变化较小;
•底层接口未定义或经常可能被修改;
•产品控制组件具有较大的技术风险,需要尽早被验证;
•希望尽早能看到产品的系统功能行为。
5.2.2-2自底向上增量式测试
从具有最小依赖性的底层组件开始,按照依赖关系树的结构,逐层向上集成,以检验系统的稳定性。
•最常用的集成策略,其他方法都或多或少应用此种方法。步骤:
1)起始于模块依赖关系树的底层叶子模块,也可以把两个或多个叶子模块合并到一起进行测试
2)使用驱动模块对步骤1选定的模块(或模块组)进行测试
3)用实际模块代替驱动模块,与它已测试的直属子模块组装成一个更大的模块进行测试
4)重复上面的行为,直到系统最顶层模块被加入到已测系统中优点:
对底层组件行为较早验证;
工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;
能较好锁定软件故障所在位置。缺点:
驱动的开发工作量大;
对高层的验证被推迟,设计上的错误不能被及时发现。适用范围:
适应于底层接口比较稳定;
高层接口变化比较频繁;
底层组件较早被完成。
5.2.2-3三明治增量式测试(混合增量式测试)
- 混合式集成
•把系统划分成三层,中间一层为目标层,目标层之上采用自顶向下集成,之下采用自底向上集成 - 步骤:
(1)首先对目标层之上一层使用自顶向下集成,因此测试A,使用桩代替B,C,D
(2)其次对目标层之下一层使用自底向上集成,因此测试E,F,使用驱动代替B,D
(3)其三,把目标层下面一层与目标层集成,因此测试(B,E),(D,F),使用驱动代替A
(4)最后,把三层集成到一起,因此测试(A,B,C,D,E,F) - 优点:
集合了自顶向下和自底向上两种策略的优点 - 缺点:
中间层测试不充分 - 适用范围:
适应于大部分软件开发项目
5.3集成测试步骤
5个阶段:计划、设计、实施、执行、评估
5.3.1制定集成测试计划
5.3.2集成测试设计和分析
5.3.3集成测试实施
5.3.4集成测试执行
5.4习题
1.对如下结构采用自顶向下深度优先策略进行测试
2.画图给出集成测试的步骤(自顶向下,自底向上)