1. 说明
- 1.集成测试就是把模块按系统设计说明书的要求组合起来进行测试。
- 2.即使所有的模块都通过了测试,在集成之后,仍然可能出现问题:穿过模块的数据丢失;一个块的功能对其他模块造成有害的影响;各个模块集成起来没有达到预期的功能;全局数据结构出现问题。
- 3.单个模块的误差可以接受,但模块组合后,可能会出现误差累积,最后累积到不能接受的程度。
- 4.集成测试是构造软件休系结构的系统化技术,同时也是进行一些旨在发现与接口相关的错误的测试,其目标是利用已通过单元测试的构件建立设计中描述的程序结构。
- 5.集成测试有两种方法:一种是非增量集成,分别测试各个块,再把这些模块组合起来进行整体测试;另一种是增量集成,即以小增量的方式逐步进行构造和测试。
- 6.非增量式集成可以对模块进行并行测试,能充分利用人力,并加快工程进度。这种方法容易混乱,出现错误不容易查找和定位。
- 7.增量式测试的范围一步步扩大,错误容易定位,更易于对接口进行彻底测试,并且可以运用系统化的测试方法。
2. 增量集成策略
2.1 自顶向下集成测试
- 1.自顶向下集成测试是一种构造软件体系结构的增量方法。
- 2.块的集成顺序为从主控模块(主程序)开始,沿着控制层次逐步向下,以深度优先或广度优先的方式将从属于(或间接从属于)主控模块的模块集成到结构中。
- 3.深度优先集成是首先集成位于程序结构中主控路径上的所有构件,也可以根据特定应用系统的特征进行选择。
- 4.集成过程可以通过下列5个步骤完成:
(1)主控模块用作测试驱动模块,用这些从属于主控模块的所有模块代替桩模块。
(2)依靠所选择的集成方法(即深度优先或广度优先),每次用实际模块替换一个从属桩模块。
(3)在集成每个模块后都进行测试。
(4)在完成每个测试集之后,用实际模块替换另一个桩模块。
(5)可以执行回归测试,以确保没有引入新的错误。
回到第(2)步继续执行此过程,直到完成了整个程序结构的构造。
2.2 自底向上集成测试
- 1.自底向上集成测试就是从原子模块(程序结构的最底层构件)开始进行构造和测试。
- 2.由于构件是自底向上集成的,在处理时所需要的从属于给定层次的模块总是存在的,因此,没有必要使用桩模块。
- 3.自底向上集成策略可以利用以下步骤来实现。
(1)连接低层构件以构成完成特定子功能的簇。
(2)编写驱动模块(测试的控制程序)以协调测试用例的输入和输出。
(3)测试簇。
(4)去掉驱动程序,沿着程序结构向上逐步连接簇。 - 4.随着集成向上进行,对单独的测试驱动模块的需求减少。
- 5.事实上,若程序结构的最上两层是自顶向下集成的,驱动模块的数量可以大大减少,而且簇的集成得到明显简化。
2.3 回归测试
- 1.每当加入一个新模块作为集成测试的一部分时,软件发生变更,建立了新的数据流路径,可能出现新的IO,以及调用新的控制逻辑。
- 2.这些变更可能会使原来可以正常工作的功能产生问题。
- 3.在集成测试策略的环境下,回归测试是重新执行已测试过的某些子集,以确保变更没有传播不期望的副作用。
- 4.回归测试有助于保证变更不引入无意识行为或额外的错误。
- 5.回归测试可以手工进行,方法是重新执行所有测试用例的子集,或者利用捕捉/回放工具自动执行。
- 6.捕捉/回放工具使软件工程师能够为后续的回放与比较捕捉测试用例和测试结果。
- 7.回归测试要执行的测试子集包含以下3 种测试用例。
(1)能够测试软件所有功能的具有代表性的测试样本。
(2)额外测试,侧重于可能会受变更影响的软件功能。
(3)侧重于已发生变更的软件构件测试。 - 8.随着集成测试的进行,回归测试的数量可能变得相当庞大,因此,应将回归测试用例设计成只包括设计每个主要程序功能的一个或多个错误类的测试。
- 9.一旦发生变更,对每个软件功能重新执行所有的测试是不切实际的,而且效率很低。
2.4 冒烟测试
- 1.当开发软件产品时,冒烟测试是一种常用的集成测试方法,是时间关键项目的决定性机制,它让软件团队频繁地对项目进行评估。
- 2.本质上,冒烟测试方法包括下列活动:
(1)将已经转换为代码的软件构件集成到构建中。一个构建包括所有的数据文件、库、可复用的模块以及实现一个或多个产品功能所需的工程化构件。
(2)设计一系列测试以暴露影响构建正确的完成其功能的错误,其目的是为了发现极有可能造成项目延迟的业务阻寒错误。
(3)每天将该构建与其他构建及整个软件产品(以其当前形势)集成起来进行冒烟测试。
这种集成方法可以自顶向下,也可以自底向上。
3. 例题
3.1 例题1
1.某项目为了修正一个错误而进行了修改。错误修正后,还需要进行(D)以发现这一修正是否
引起原本正确运行的代码出错。
A.单元测试
B.接受测试
C.安装测试
D.回归测试
1.回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码
产生错误。
3.2 例题2
2.在改正当前故障的同时可能会引入新的故障,这时需要进行(D)。
A.功能测试
B.性能测试
C.回归测试
D.验收测试
1.回归测试是指修改了当前故障后,重新进行测试以确认修改没有引入新的错误或导致其他的错误