当前位置:
文档之家› 第四章-白盒测试及其用例的设计汇总
第四章-白盒测试及其用例的设计汇总
锦 城
错误:
学 院
➢ 穷举路径测试无法检查出程序本身是否违反了设计规 软
范,即程序是否是一个错误的程序。
件 测
➢ 穷举路径测试不可能查出程序因为遗漏路径而出错。 试
➢ 穷举路径测试发现不了一些与数据相关的错误。
• 采用白盒测试方法必须遵循以下几条原
则: 四
➢保证一个模块中的所有独立路径至少被测试
川 大
➢ 给定控制流图G的环形复杂度—V(G),也可定义为
V(G) = P+1
其中,P是控制流图G中判定节点的数量。
环形复杂度:
5
V(G) = E-N+2 => V(G) = 10-8+2=4
or
V(G) = P+1 => V(G) = 3+1=4
7
8
9
导出独立路径集:
路径1:5-15 (iRecordNum=0)
• 图矩阵是一个方形矩阵,其维数等于控制流图
四 川
的节点数。矩阵中的每列和每行都对应于标识
大 学
的节点,矩阵元素对应于节点间的边。
锦 城
• 通常,控制流图中的结点用数字标识,边则用
学 院
字母标识。如果在控制流图中从第 i 个结点到第 软
j 个结点有一个标识为 x 的边相连接,则在对应
件 测
图矩阵的第 i 行第 j 列有一个非空的元素 x 。
11
13
路径2:5-7-8-14-5-15
(iRecordNum≥0,iType=0)
14
路径3:5-7-9-11-14-5-15
15
(iRecordNum≥0,iType=1)
路径4:5-7-9-13-14-5-15
(iRecordNum≥0,iType≠0,iType≠1)
4.2.3 图矩阵
• 图矩阵是控制流图的矩阵表示形式。
白盒测试也称结构测试或逻辑驱动测试,是针对被测 学 单元内部是如何进行工作的测试。它根据程序的控制 院
结构设计测试用例,主要用于软件或程序验证。
软
件
测
试
4.1 白盒测试方法
• 为什么要进行白盒测试?
四
假设此时开发工作已结束,程 川
序送交到测试组,没有人知道代码
大 学
中有一个潜在的被 0 除的错误。若
学 锦
径数量;确保所有语句至少执行一次的测试数量 城
学
的上界。
院
➢ 独立路径是指程序中至少引入了一个新的处理语句集
软 件
合或一个新条件的程序通路。采用流图的术语,即独 测
立路径必须至少包含一条在本次定义路径之前不曾用 试
过的边。
• 测试可以被设计为基本路径集的执行过程,但基 本路径集通常并不唯一。
计算环形复杂度的方法
7
8
9
11
13
14 15
图4-1 控制流图
1a
1b
2
4
5
四
川
大
学
锦
城
学
2
院
软 件 测 试
图4-2 复合条件的控制流图
4.2.2 环形复杂度
• 环形复杂度也称为圈复杂度,它是一种为程序逻
辑复杂度提供定量尺度的软件度量。
四
• 环形复杂度的应用——可以将环形复杂度用于基
川 大
本路径方法,它可以提供:程序基本集的独立路
• 环形复杂度以图论为基础,为我们提供了非常有
用的软件度量。可用如下三种方法之一来计算环 四
形复杂度:
川 大
➢ 控制流图中区域的数量对应于环形复杂度。
学 锦
➢ 给定控制流图G的环形复杂度—V(G),定义为
城 学
V(G) = E-N+2
院
其中,E是控制流图中边的数量,N是控制流图中的
软 件
节点数量。
测 试
锦 城
学
➢基本路径测试方法
院
软
➢程序插桩
件 测
试
4.2 程序结构分析
4.2.1 控制流图
四 川
大
学
4.2.2 环形复杂度
锦 城 学
院
4.2.3 图矩阵
软 件
测
试
4.2.1 控制流图
• 控制流图(可简称流图)是对程序流程图进行简
化后得到的,它可以更加突出的表示程序控制流 四
的结构。
川 大
• 控制流图中包括两种图形符号:节点和控制流线。学锦
锦 城
测试组采用的测试用例的执行路径 学
没有同时经过x=0和y=5/x进行测试 院
,显然测试工作似乎非常完善,测
软 件
试用例覆盖了所有执行语句,也没 测
有被 0 除的错误发生。
试
• 白盒测试法检查程序内部逻辑结构,对所
有逻辑路径进行测试,是一种穷举路径的 四
测试方法。
川 大
学
• 即使每条路径都测试过了,仍然可能存在
学
• 学习掌握白盒测试的基本路径测试法
院
实践环节
软 件
• 通过案例运用学习掌握覆盖问题的解决方法
测 试
• 运用基本路径测试方法进行实际程序测试
白盒测试是把测试对象看做一个透明的盒子,它允许
测试人员利用程序内部的逻辑结构及有关信息,设计
或选择测试用例,对程序所有逻辑路径进行测试。
四
川 大 学 锦 城
一次。
学 锦
➢所有逻辑值均需测试真 (true) 和假 (false)
城 学
两种情况。
院
软
➢检查程序的内部数据结构,保证其结构的有 件
效性。
测 试
➢在上下边界及可操作范围内运行所有循环。
• 白盒测试主要是检查程序的内部结构、逻
辑、循环和路径。常用测试用例设计方法 四
有:
川 大
学
➢逻辑覆盖法(逻辑驱动测试)
试
b
5
a
j
c 7e
8
d
15
9
f
h
11
13
g
i
14
表4-1 图矩阵
节1 2 3 4 5 6 7 8 点 (5) (7) (8) (9) (11) (13) (14) (15)
1
a
b
(5)
2
ce
(7)
3
d
(8)
4
fh
(9)
5
g
(11)
6
i
(13)
7
j
(14)
8
(15)
习题
• 根据左图给出的程序流程图,四
c
完成以下要求:
川 大
(1)画出相应的控制流图。
学 锦
(2)计算环形复杂度。
城 学
院
(3)给出相应的图矩阵。
软
(4)找出程序的独立路径集合。件
测
试
4.3 覆盖测试
4.3.1 测试覆盖率
四 川
大
学
4.3.2 逻辑覆盖法
锦 城
学
4.3.3 面向对象的覆盖
院
软
件
4.3.4 测试覆盖准则
测 试
4.3.1 测试覆盖率
城
➢ 节点由带标号的圆圈表示,可代表一个或多个语句、 学
一个处理框序列和一个条件判定框(假设不包含复合 院
条件)。
软Байду номын сангаас件
➢ 控制流线由带箭头的弧或线表示,可称为边。它代表
测 试
程序中的控制流。
常见结构的控制流图
• 对于复合条件,则可将其分解为多个单个条件,并
映射成控制流图。
具有复合条件的控制流图
5
第4章 白盒测试及其用例的设计
4.1 白盒测试方法
四
川
4.2 程序结构分析
大 学
锦
4.3 覆盖测试
城 学
院
4.4 路径测试
软
件
4.5 其他白盒测试方法
测 试
4.6 程序插桩
本章教学目标
理论环节
四
• 学习理解白盒测试方法的基本概念
川
大
• 学习理解白盒测试的覆盖理论
学
锦
• 学习掌握白盒测试的路径表达
城