集成测试的实施方案有很多种,如自底向上集成测试、自顶向下集成测试、Big-Bang集成测试、三明治集成测试、核心集成测试、分层集成测试、基于使用的集成测试等。在此,笔者将重点讨论其中一

些经实践检验和一些证实有效的集成测试方案。

•自顶向下集成测试

自顶向下集成(Top-Down Integration)方式是一个递增的组装软件结构的方法。从主控模块(主程序)开始沿控制层向下移动,把模块一一组合起来。分两种方法:

第一:先深度:按照结构,用一条主控制路径将所有模块组合起来;

第二:先宽度:逐层组合所有下属模块,在每一层水平地沿着移动。

组装过程分以下五个步骤:

步骤一:用主控模块作为测试驱动程序,其直接下属模块用承接模块来代替;

步骤二:根据所选择的集成测试法(先深度或先宽度),每次用实际模块代替下属的承接模块

步骤三:在组合每个实际模块时都要进行测试;

步骤四:完成一组测试后再用一个实际模块代替另一个承接模块;

步骤五:可以进行回归测试(即重新再做所有的或者部分已做过的测试),以保证不引入新的错误。

•自底向上集成测试

自底向上的集成(Bottom-Up Integration)方式是最常使用的方法。其他集成方法都或多或少地继承、吸收了这种集成方式的思想。自底向上集成方式从程序模块结构中最底层的模块开始组装和测试。

因为模块是自底向上进行组装的,对于一个给定层次的模块,它的子模块(包括子模块的所有下属模块)事前已经完成组装并经过测试,所以不再需要编制桩模块(一种能模拟真实模块,给待测模块提

供调用接口或数据的测试用软件模块)。自底向上集成测试的步骤大致如下:

步骤一: 按照概要设计规格说明,明确有哪些被测模块。在熟悉被测模块性质的基础上对被测模块进行分层,在同一层次上的测试可以并行进行,然后排出测试活动的先后关系,制定测试进度计划。图2

给出了自底向上的集成测试过程中各测试活动的拓扑关系。利用图论的相关知识,可以排出各活动之间的时间序列关系,处于同一层次的测试活动可以同时进行,而不会相互影响。

步骤二: 在步骤一的基础上,按时间线序关系,将软件单元集成为模块,并测试在集成过程中出现的问题。这里,可能需要测试人员开发一些驱动模块来驱动集成活动中形成的被测模块。对于比较大的

模块,可以先将其中的某几个软件单元集成为子模块,然后再集成为一个较大的模块。

步骤三: 将各软件模块集成为子系统(或分系统)。检测各自子系统是否能正常工作。同样,可能需要测试人员开发少量的驱动模块来驱动被测子系统。

步骤四: 将各子系统集成为最终用户系统,测试是否存在各分系统能否在最终用户系统中正常工作。

方案点评: 自底向上的集成测试方案是工程实践中最常用的测试方法。相关技术也较为成熟。它的优点很明显: 管理方便、测试人员能较好地锁定软件故障所在位置。但它对于某些开发模式不适用,如

使用XP开发方法,它会要求测试人员在全部软件单元实现之前完成核心软件部件的集成测试。尽管如此,自底向上的集成测试方法仍不失为一个可供参考的集成测试方案。

•核心系统先行集成测试