软件测试阶段之集成测试

前言

集成测试(integration testing):一种旨在暴露接口以及集成组件/系统间交互时存在的缺陷的测试。在V开发模型中,集成测试与概要设计阶段相对应,集成测试发现接口的缺陷、组件之间的协调错误、构架设计中的错误、遗漏和二义性问题。

1 软件测试阶段之集成测试

V开发模型中,集成测试与概要设计阶段相对应,集成测试发现接口的缺陷、组件之间的协调错误、构架设计中的错误、遗漏和二义性问题。

1.1 什么是集成

集成(integration):把组件/系统合并为更大部件的过程。

1.2 什么是集成测试

集成测试(integration testing):一种旨在暴露接口以及集成组件/系统间交互时存在的缺陷的测试。

集成测试类型:

(1)组件集成测试(component integration testing)

测试的目的在于发现接口和集成后组件间协同工作的缺陷。

(2)系统集成测试(system integration testing)

(2.1)测试系统和其他软件包的集成

例如,与商务标准软件(Commercia10ff-The-Shelfsoftware,C01s)的集成

(2.2)测试与外部系统的接口和交互:

例如,电子数据的交换、网络。

单元测试通常是单人执行,而集成测试通常是多人执行或第三方执行。

1.3 集成测试知识和技术

1.3.1 集成测试重点

测试重点:接口、系统内不同部分的相互作用;

所需知识/Know-how:最好具备开发知识和技能(有可能还需要测试驱动器和桩)、测试技术、具备有关组件间的交互知识;

前提条件:完成集成的被测系统、测试台(test bed:在组件测试阶段使用的一些工具或生成的产品可能在集成测试中被再次使用)、有关组件之间交互的文档、

1.3.2 集成测试技术

典型的集成测试技术:白盒测试技术(内部接口)、黑盒测试技术(例如,等价类划分);

1.3.3 集成测试缺陷

发现的缺陷:接口的缺陷、组件之间的协调错误;

可能遗漏的缺陷:相关组件外的问题、对整个系统的需求的不满足、与外部系统的接口常常被忽略;

1.4 集成测试策略

集成测试的方法分为非增量式测试和增量式。

(1)非增量式是每个模块测试完了再连接;

(2)增量式则是测一个模块,就连接一个模块。

增量式包括: 自顶向下结合、自底向上结合、三明治测试(集合前面两种测试)。

1.4.1 自顶向下集成

自顶向下集成(Top-Down Integration):从主控模块开始,沿着程序控制层次向下移动,逐渐把各模块组合起来,需要编写桩模块。可以使用深度优先或是广度优先的组合策略。

自顶向下的集成步骤:

(1)对主控模块进行测试,用桩模块替代被主控模块调用的子模块;

(2)根据选定的策略(深度/广度),每次用一个实际模块代换一个桩模块

(3)进行集成测试;

(4)为了保证加入的模块没有引进新的错误,根据需要进行回归测试。2-4循环。

1.4.2 自顶向下例子

集成测试自顶向下0

集成测试自顶向下1

集成测试自顶向下2

集成测试自顶向下3

集成测试自顶向下4

集成测试自顶向下5

集成测试自顶向下6

集成测试自顶向下7

1.4.3 自底向上集成

自低向上集成(Bottom-Up Integration):自底向上测试从软件结构最底层的模块开始组装和测试。因为是从底部向上结合模块,总能得到所需的下层模块处理功能,所以不需要桩模块,但是需要驱动程序

自低向上集成步骤:

(1)把底层模块组合成实现某个特定子功能的族;

(2)编写测试驱动程序,协调测试数据的输入输出;

(3)对该子功能族进行测试;

(4)去掉测试驱动程序,自底向上移动,把子功能组合成更大的子功能族。2-4循环对以上模块进行自底向上集成测试。

1.4.4 自底向上例子

集成测试自底向上0

集成测试自底向上1

集成测试自底向上2

集成测试自底向上3