集成测试_软件测试技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)自顶向下增量式测试
集成测试的整个过程由3个步骤完成: (1)主控模块作为测试驱动器。 (2)根据集成的方式(深度或广度),下层的桩模块一次 一次地被替换为真正的模块。 (3)在每个模块被集成时,都必须进行单元测试。 重复第2步,直到整个系统被测试完成。
(1)自顶向下增量式测试(续)
⑴ Top-down testing 第1步:测试顶端模块,用桩 模块(stub)代替 直接附属的下层模块 Stub: to simulate the activity of the component which is not yet tested. M
M1
M2
第3步:去掉Driver,自下而上把子功能 族合成更大的子功能族。
M
M
M M M M M M
M
M M M
注意:两种策略 的优、缺点刚好 互补,但单用其 中任一种都不实 际,通常根据软 件的特点将二者 混用。
实例 采用自底向上增量式测试方法进行集成测试
(3) 混合增殖式测试
衍变的自顶向下的增殖测试
S1
S2
第2步:根据深度优先或宽度优先的策略, 每次用一个实际模块代换一个stub。
M
S1 S3 S4
S2
第3步:在结合进一个模块的同时进行测试。
回到第二步重复进行,直到整个系统结构被集成完成。
(1)自顶向下增量式测试
优点:在早期即对主要控制及关键的模块进 行检验。 问题:Stub只是对低层模块的模拟,测试时 没有重要的数据自下往上流,许多重要的测 试须推迟进行,而且在早期不能充分展开人 力。 实例 按照广度优先方式进行集成测试
一般分为三个级别 (1)模块内集成测试 (2)子系统内集成测试:先测试子系统 内的功能模块,然后将各个功能模块组 合起来确认子系统的功能是否达到预期 要求。 (3)子系统间集成测试:测试的单元是 子系统之间的接口。
集成测试流程
1. 2. 3. 4. 5.
制定集成测试计划 设计集成测试 实施集成测试 执行集成测试 评估集成测试
集成测试
什么是集成测试?
集成测试又称组装测试,集成测试是在 单元测试的基础上,将所有模块按照设 计要求组装成子系统或系统进行的测试 活动。
集成测试的目的
确保各单元组合在一起后能够按既定意 图协作运行,并确保增量的行为正确, 所测试的内容包括单元间的接口以及集 成后的功能。
集成测试的层次
⑵ Bottom - up testing
第1步:把低层模块组合成族,每族实现一个子功能。
第2步:用驱动程序(Driver)协调测试数据的I\O,测 试子功能族。
D Driver: to call a particular component and passes a test case to it.
首先对输入/输出模块和引入新 算法模块进行测试; 再自底向上组装成为功能相当完 整且相对独立的子系统; 然后由主模块开始自顶向下进行 增殖测试。
自底向上自顶向下的增殖测试
首先对含读操作的子系统自底向上 直至根结点模块进行组装和测试; 然后对含写操作的子系统做自顶向 下的组装与测试。
非增量式测试 (Big-bang testing)
Test A Test B
Test C Test D
Test A, B, C, D
关键模块问题
在非增量式测试时,应当确定关 键模块,对这些关键模块及早进 行测试。 关键模块的特征: ① 满足某些软件需求; ② 在程序的模块结构中位于较高 的层次(高层控制模块); ③ 较复杂、较易发生错误; ④ 有明确定义的性能要求。
增量式测试的集成是逐步实现的: ——逐次将未曾集成测试的模块和已经集成测试的模块 (或子系统)结合成程序包,再将这些模块集成为较大 系统,在集成的过程中边连接边测试,以发现连接过程 中产生的问题。
2 增量式集成测试
按照不同的实施次序,增量式集成测试又可以分为三种 不同的方法: (1)自顶向下增量式测试 (2)自底向上增量式测试 (3)混合增量式测试
回归测试
这种方式采取自顶向下的方式测试 被修改的模块及其子模块; 然后将这一部分视为子系统,再自 底向上测试。
不同集成测试方法的比较
1、非增量式测试与增量式测试的比较
非增量式测试的方法是先分散测试,然后集中起来再一次 完成集成测试。假如在模块的接口处存在错误,只会在最 后的集成测试时一下子暴露出来。 增量式测试是逐步集成和逐步测试的方法,把可能出现的 差错分散暴露出来,便于找出问题和修改。而且一些模块 在逐步集成的测试中,得到了较多次的考验,因此,可能 会取得较好的测试效果。 结论:增量式测试要比非增量式测试具有一定的优越性。
实例 按照深度优先方式进行集成测试
(2)自底向上增量式测试
Fra Baidu bibliotek
自底向上增量式测试表示逐步集成和逐步测试的 工作是按结构图自下而上进行的,即从程序模块 结构的最底层模块开始集成和测试。 由于是从最底层开始集成,对于一个给定层次的 模块,它的子模块(包括子模块的所有下属模块) 已经集成并测试完成,所以不再需要使用桩模块 进行辅助测试。在模块的测试过程中需要从子模 块得到的信息可以直接运行子模块得到。
自顶向下增量式测试表示逐步集成和逐步测试是按照结 构图自上而下进行的,即模块集成的顺序是首先集成主 控模块(主程序),然后依照控制层次结构向下进行集 成。从属于主控模块的按深度优先方式(纵向)或者广 度优先方式(横向)集成到结构中去。 深度优先方式的集成: ——首先集成在结构中的一个主控路径下的所有模块, 主控路径的选择是任意的。 广度优先方式的集成: ——首先沿着水平方向,把每一层中所有直接隶属于上 一层的模块集成起来,直到底层。
集成测试方法
(1)静态测试 只要指对概要设计的测试。 (2)动态测试 以黑盒测试为主,需要了解内部细节时结 合白盒测试。
集成测试策略
非增量式集成 增量式集成
Return
1 非增量式集成
非增量式测试是采用一步到位的方法来构造测试: ——对所有模块进行个别的单元测试后,按照程序结构 图将各模块连接起来,把连接后的程序当作一个整体进 行测试。 实例 采用非增量式测试方法进行集成测试 非增量式测试的缺点: ——当一次集成的模块较多时,非增量式测试容易出现 混乱,因为测试时可能发现了许多故障,为每一个故障 定位和纠正非常困难,并且在修正一个故障的同时,可 能又引入了新的故障,新旧故障混杂,很难判定出错的 具体原因和位置。