第5章集成测试经典实用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第5章 集成测试
5.1 集成测试概述
5.1.4 集成测试的层次与原则
2.集成测试的原则
(1)所有公共接口必须被测试到; (2)关键模块必须进行充分测试; (3)集成测试应当按一定层次进行; (4)集成测试策略选择应当综合考虑质量、成本和进度三者之间的关 系; (5)集成测试应当尽早开始,并以概要设计为基础; (6)在模块和接口的划分上,测试人员应该和开发人员进行充分沟通; (7)当测试计划中的结束标准满足时,集成测试才能结束; (8)当接口发生修改时,涉及到的相关接口都必须进行回归测试; (9)集成测试应根据集成测试计划和方案进行,不能随意测试; (10)项目管理者应保证测试用例经过审核; (11)测试执行结果应当如实的记录。
第5章 集成测试
5.2 集成测试策略
驱动程序/驱动模块(driver),用以模拟被 测模块的上级模块。驱动模块在集成测试中接 受测试数据,把相关的数据传送给被测模块, 启动被测模块,并打印出相应的结果。
桩程序/桩模块(stub),也有人称为存根程 序,用以模拟被测模块工作过程中所调用的模 块。桩模块由被测模块调用,它们一般只进行 很少的数据处理,例如打印入口和返回,以便 于检验被测模块与其下级模块的接口
•第5章 集成测试
5.2 集成测试策略
A
A
A
A
SB
SC
SD B
SC
SD B
SC
SD B
SC
SD
(a)测试A
SE SF (b)测试B
A
E SF (c)测试E
A
EF (d)测试F A
B
C
SD
B
C
S SG (e)测试C
EFG
EFG
(f)测试G
(g)测试D
图5.5 自第顶5向章下集集成成测试
第5章 集成测试
5.1 集成测试概述
5.1.4 集成测试的层次与原则
1.集成测试的层次 对于传统软件来说,按集成粒度不同,可以把集成 测试分为3个层次,即: (1)模块间集成测试 (2)子系统内集成测试 (3)子系统间集成测试 对于面向对象的应用系统来说,按集成粒度不同, 可以把集成测试分为2个层次: (1)类内集成测试 (2)类间集成测试
第5章 集成测试
5.3 集成测试用例设计
4.为满足特殊需求设计用例 5.为覆盖设计用例 可使用的主要测试分析技术有: (1)功能覆盖分析。 (2)接口覆盖分析。
第5章 集成测试
5.4 集成测试过程
一个测试从开发到执行遵循一个过程,不同的组织 对这个过程的定义会有所不同。根据集成测试不同阶段 的任务,可以把集成测试划分为5个阶段:计划阶段、 设计阶段、实施阶段、执行阶段、评估阶段。
•第5章 集成测试
5.2 集成测试策略
5.2.1 非渐增式集成
非渐增式集成方法首先对每个子模块进行测试(即 单元测试),然后将所有模块全部集成起来一次性进行 集成测试。
【例5.1】 对如图5.3所示的程序,采用非渐增式集成
方法进行集成测试。
A
B
C
D
E
F
G
图5.3 程序结构图
第5章 集成测试
5.2 集成测试策略
制定集成测试计划
设计集成测试 实施集成测试 执行集成测试
评估集成测试 图5.8 集成测试过程
第5章 集成测试
思考题:
1.在集成测试过程中,为什么要设计桩 模块和驱动模块?
2.何为正向测试?何为逆向测试? 3.从覆盖的角度来设计用例时,集成测
试和单元测试有何区别?
•第5章 集成测试
4.对右图所示程序分 别进行自顶向下、 自底向上和三明治 集成测试,给出测 试过程。
缺点:当最后一个模块尚未测试时,还没 有呈现出被测软件系统的雏形。
•第5章 集成测试
5.2 集成测试策略
5.2.3 三明治集成
三明治集成是一种混合增量式测试策略, 综合了自顶向下和自底向上两种集成方法的优 点。这种方法桩模块和驱动模块的开发工作都 比较小,不过代价是在一定程度上增加了定位 缺陷的难度。
A
B
C
D
E
F
G
•第5章 集成测试
此课件下载可自行编辑修改,供参考! 感谢你的支持,我们会努力做得更好!
5.2 集成测试策略
优点:在测试过程早期,对主要的控制点或判决点进行 检验。在分解得很好的软件结构中,判决需要在结构 层次的较高层确定。如果主要控制点有问题,早点认 识到这个问题就变得很重要。如果选用按深度方向组 装的方式,可以首先实现和验证一个完整的软件功能, 可先对逻辑输入的分支进行组装和测试提供保证。此 外,功能可行性较早得到证实,还能够给开发者和用 户带来成功的信心。
第5章 集成测试
5.3 集成测试用例设计
2.为正向测试设计用例 假设在严格的软件质量控制下,软件各个模块的接口设计和模块功 能设计完全正确无误并且满足要求,那么作为正向集成测试的一个 重点就是验证这些集成后的模块是否按照设计实现了预期功能。
可是用如下几种主要测试分析技术: (1)输入域测试。 (2)输出域测试。 (3)等价类划分。 (4)状态转换测试。 (5)规范导出法。
缺点:在测试较高层模块时,低层处理采用桩模块替代, 不能反映真实情况,重要数据不能及时回送到上层模 块,因此测试并不充分
•第5章 集成测试
5.2 集成测试策略
2.自底向上集成 自底向上测试从“原子”模块(即在软件结 构最底层的模块)开始组装和测试。因为是从 底部向上结合模块,总能得到所需的下层模块 处理功能,所以不需要桩模块。 【例5.3】对如图5.3所示的程序,采用自底 向上集成方法,按照深度优先方式进行集成测 试。
【例5.4】对如图5.3所示的程序,以B模块 所在层为界,采用三明治集成方法进行集成测 试。
第5章 集成测试
5.2 集成测试策略
测试 E
测试 F
测试 G
测试 (B、E、
F) 测试 (C、G)
测试 A
图5.7 三明治集成
测试 (A、B、C D、E、F、
G)
第5章 集成测试
5.3 集成测试用例设计
1.为系统运行设计用例 可使用的主要测试分析技术有: (1)等价类划分。 (2)边界值分析。 (3)基于决策表的测试。
第5章 集成测试
5.1 集成测试概述
5.1.2 集成测试与系统测试的区别
(1)测试对象。 (2)测试时间。 (3)测试方法。 (4)测试内容。 (5)测试目的。 (6)测试角度。
第5章 集成测试
5.1 集成测试概述
5.1.3 集成测试与开发的关系 集成测试是和软件开发过程中的概要 设计阶段相对应的,而在软件概要设计中 关于整个系统的体系结构就是集成测试用 例输入的基础。
当使用渐增方式把模块结合到程序中去时, 有自顶向下和自底向上两种集成策略。
第5章 集成测试
5.2 集成测试策略
1.自顶向下集成 自顶向下集成方法是一个日益为人们广泛采 用的测试和组装软件的途径。从主控制模块开 始,沿着程序的控制层次向下移动,逐渐把各 个模块结合起来。在把附属于(及最终附属于) 主控制模块的那些模块组装到程序结构中去, 或者使用深度优先的策略,或者使用宽度优先 的策略。 【例5.2】对如图5.3所示的程序,采用自顶 向下集成方法,按照深度优先方式进行集成测 试。
第5章 集成测试
5.1 集成测试概述
需求分析 概要设计
系统测试 集成测试
详细设计
单元测试
编码
图 5.1 软 件 开 发 的 V 模 型
第5章 集成测试
5.1 集成测试概述
2/8原则 模块划分遵循的几个原则: 1)本次测试希望测试哪个模块。 2)把与该模块最紧密的模块集成 在一起。 3)考虑划分后的外围模块,分析 外围模块和被集成模块之间的信息 流是否容易模拟和控制。
结论 性评

图1.1 软件测试过程
独立 的测 试机

向用户 表明系 统可以 像用户 预的那 样工作
用 户 需 求 规 范
验收测试
•第5章 集成测试
5.1 集成测试概述
集成测试主要关注下列问题: (1)模块间的数据传递是否正确? (2)一个模块的功能是否会对另一个模块 的功能产生错误的影响? (3)全局数据结构是否有问题,会不会被 异常修改? (4)块组合起来的功能能否满足要求? (5)集成后,各个模块的累积误差是否会 扩大,是否达到不可接受的程度?
第5章 集成测试
5.3 集成测试用例设计
3.为逆向测试设计用例
集成测试中的逆向测试包括分析被测接口是否实现了需求规格没有 描述的功能,检查规格说明中可能出现的接口遗漏,或者判断接口 定义是否有错误,以及可能出现的接口异常错误等。
可使用的主要测试分析技术有: (1)错误猜测法。 (2)基于风险的测试。 (3)基于故障的测试。 (4)边界值分析。 (5)特殊值测试。 (6)状态转换测试。
•第5章 集成测试
5.2 集成测试策略
测试 E
测试 F
测试 G
测试 (B、E、
F) 测试 (C、G)
测试 D
图5.6 自底向上集成
测试 (A、B、C D、E、F、
G)
第5章 集成测试
5.2 集成测试策略
优点:由于驱动模块模拟了所有调用参数, 测试模块返回结果不影响驱动模块,生 成测试数据也没有困难。如果关键模块 是在结构图的底部,自底向上的测试是 有优越性的。另外自底向上的组装测试 不必开发桩模块。
第5章 集成测试
5.2 集成测试策略
用以下4个步骤实现自顶向下的结合策略: 1.对主控模块进行测试,测试时用桩模块代替
所有直接附属于主控模块的模块; 2.根据选定的结合策略,每次用一个实际模块
代换一个桩模块(新结合进来的模块往往又需 要新的桩模块) 3.在结合进一个模块的同时进行测试 4.为了保证加入模块没有引进新的错误,可能 需要进行回归测试
测试 A
测试 B 测试 C
测试 D
测试 E
测试 F
测试 (A、B、C D、E、F、G)
测试 G
图5.4 非渐增式集成
第5章 集成测试
5.2 集成测试策略
5.2.2 渐增式集成
渐增式集成与“一步到位”的非渐增式集成 相反,它把程序划分成小段来构造和测试,在 这个过程中比较容易定位和改正错误;对接口 可以进行更彻底的测试;可以使用系统化的测 试方法。因此。目前在进行集成测试时普遍采 用渐增式集成方法。
第5章 集成测试
用以下4个步骤实现自底向上的结合策略: 1.把低层模块组合成实现某个特定软件子功能的
族; 2.写一个驱动程序(用于测试的控制程序),以
协调数据的输入和输出; 3.对由模块组成的子功能族进行测试; 4.去掉驱动程序,沿软件结构自下向上移动,把
子功能族组合起来形成更大的子功能族。
模块中 有无故

软件测试过程
模块 单元测试 模块 单元测试 模块 单元测试
发现与接 口有关的 模块之间
是否满足 软件需求
证明系 统性能
的问题
已测 模块
设 计 信 息 集成测试
已集成的 软件
软 件 需 求 确认测试
已确认的 软件
其 它 系 统 元 素 系统测试
已检验的 软件

模块 单元测试
增量式集 成测试法
相关文档
最新文档