当前位置:
文档之家› 第七章 集成测试过程.ppt
第七章 集成测试过程.ppt
三明治集成举例
U1
U2
U3
U4
U5
U6
d1
U2 U5 subtree1
U1
S1
U3
subtree2 Step 1 NhomakorabeaU1
d2
U4
S2
U6
subtree3
U2
U3
U4
U5
U6
Step 2
基于MM路径的集成
定义
这种方法由Paul C. Jorgensen提出,MM路径法是英文MessageMethod的简称
自下而上举例
步骤 1. 从最底层U5,U3,U6开始,开发3个驱动模块d1,d2,d3调用它们 2. 用U5集成U2,U6,U4被d4,d5代替 3. 将所有单元集成在一起
自下而上举例
U1
U2
U3
U4
U5
U6
d1
d2
d3
U5
U3
U6
Step 1 U1
U2
U3
U4
U5
U6
Step 3
d4
d5
U2
通道传感与控制 槽传感与控制
屏幕驱动器
键盘传感器
验证卡 验证PIN
取数字
结束会话 管理事务
大爆炸集成
定义
把各个单元一次性集成为一个完整的系统中进行测试,而不是分阶段进 行
备注
大爆炸法是一个折中的集成测试策略 如果系统很小或者定位缺陷不是那么复杂,可以采用大爆炸法。不然,
比较好的办法基于某种集成测试策略一步步集成各单元
广度优先 从最顶层单元开始,持续向下到下一层, 一个个完成下一层上所有单元 集成后,再转向下面一层,重复这样的集成操作直到所有的单元都集成 进来
广度优先集成举例
步骤
1. 从U1开始测试, 被U1调用的U2,U3,U4被S1,S2,S3这3个桩模块代替 集成从左向右进行
2. 移到下一层,将U1和U2集成,被U2调用的U5被桩模块S4代替, U3,U4被S2,S3
目的 在把各个模块连接起来的时候,穿越模块接口的数据
是否会丢失; 一个模块的功能是否会对另一个模块的功能产生不利
的影响; 各个子功能组合起来,能否达到预期要求的父功能; 全局数据结构是否有问题; 单个模块的误差累积起来,是否会放大,以至达到不
能接受的程度。
集成测试必要性
(1)一个模块可能对另一个模块产生不利的影响 (2)可能会发现单元测试中未发现的接口方面的报告 (3)将子功能合成时不一定产生所期望的主功能 (4)独立可接受的误差,在组装后可能会超过可接受
3. 集成U1、U2,U3,U5被S4代替,U4被S3代替 4. 集成U1,U2,U3和U4,被U4调用的U6,被S5代替,U5用S4代替 5. 移到下一层,集成U2,U1,U3,U4和U5,用S5代替U6 6. 将U6与其它单元集成
广度优先集成举例
U1
U1
U2
U3
U4
U5
U6
S1
S2
S3
Step 1
的误差程度 (5)在单元测试中无法发现时序问题 (6)在单元测试中无法发现资源竞争问题
集成测试的层次
传统软件:按集成粒度不同,可分为: 模块间集成测试,子系统内集成测试, 子系统间集成测试;
面向对象的应用系统:类内集成测试, 类间集成测试
集成策略
集成策略
在对测试对象分析的基础上,描述软件单元集成(组装)的方式和方法。
MM路径可以用于描述单元之间的控制转移。
自顶而下集成
定义
从顶层开始,采用同设计顺序一样的思路对被测系统进行测试,一般集中于 顶层的组件,然后逐步测试处于底层的组件,被上层单元调用的下层单元以 桩出现
自顶而下的集成方式
深度优先 从最顶层单元开始,持续向下到下一层,选择一个分支,自顶而下一个 一个的集成这条分支上的所有单元,直到最底层,然后转向另一个分支, 重复这样的集成操作直到所有的单元都集成进来
U4
U5
U6
Step 2
三明治集成
定义
为减少桩模块和驱动模块,在分解树的子树上进行集成
举例
步骤 1. 基于功能树,选择完全分支/子分支作为集成单元,在本例中,我选择了3
个子树 1. 为了测试U2和U5的集成,开发一个驱动器d1 2. 开发两个桩S1和S2测试U1和U3的集成 3. 为了测试U4和U6,开发一个驱动器d2 2. 将所有的测试子树集成在一起
第6章 集成测试
本章大纲
本章讨论与集成测试相关的内容,包括:
集成测试过程 集成策略
大爆炸 自顶而下 自底而上 三明治集成 基于MM-路径的集成
集成测试计划 集成测试设计 集成测试执行
什么是集成测试
定义
集成经过单元测试的各组件评估它们之间交互的测试过程集 成测试(Integration Testing)在单元测试的基础上,将所有 模块按照设计要求组装成为子系统或系统,进行集成测试。 程序在某些局部反映不出来的问题,在全局上很可能暴露出 来,影响功能的实现。
是集成测试过程中各种活动的基础,集成策略包括
1. 基于功能分解图的集成 大爆炸 渐增式集成 自顶而下 自底而上 混合集成
2. 基于MM-路径的集成
功能分解图
功能分解定义
一种基于系统功能和子功能将系统分解为多个组件的模块分解方式
SATM系统
设备传感与控制
中央银行通信
终端传感与控制
管理会话
深度优先集成举例
U1
U1
U2
U3
U4
U5
U6
S1
S2
S3
Step 1
U1
U2
S2
S3
U5 Step 3
U1
U2
U3
U4
U5
S5
U1
U2
S2
S3
S4
Step 2
U1
U2
U3
S3
U5 Step 4
U1
U2
U3
U4
U5
U6
Step 6
自下而上
定义
从最底层组件开始,按照分解树的结构,逐层向上集成,调用下层单元 的上层单元以驱动出现
U1
U2
U3
S3
S4 Step 3
U1
U2
U3
U4
U5
S5
Step 5
U1
U2
S2
S3
Step 2 S4
U1
U2
U3
U4
S4
S5
Step 4
U1
U2
U3
U4
U5
U6
Step 6
深度优先集成举例
步骤
1. 从U1开始,被U1调用的U2、U3、U4被3个桩模块S1、S2、S3代替, 基于功能树,选择一个U1的分支,集成自顶而下。在本例中选择最左面 的一个分支
2. 将U1和U2集成,被U2调用的U5用桩模块S4代替,U3、U4被S2、S3 代替
3. 将U1、U2和U5集成,U3、U4用桩模块S2、S3代替 4. 转回到第二级,将U1、U2、U5和U3集成,用S3代替U4 5. 转回到第二级,将U1、U2、U3、U5和U4集成,用S5代替U3 6. 将U6与其它模块集成