当前位置:文档之家› L-第4章-软件工程课件白盒测试用例设计方法

L-第4章-软件工程课件白盒测试用例设计方法


复合条件 ((a<b+c) && (b<a+c) && (c<a+b)) 简单条件 a<b+c b<a+c c<a+b
4-33
案例
((a<b+c) && (b<a+c) && (c<a+b)) 68,68,68 0,0,0 T F a<b+c T F b<a+c T F
c<a+b
T F

上面的测试用例不推荐大家使用

常用的白盒测试技术

基本路径测试 分支-条件测试 循环测试
4-3

说明

一般情况,仅使用一种测试用例设计方法很难获得被 测对象所需的测试用例。在实际测试中,最终的测试
用例通常都是多种设计技术相结合的结果。

在使用白盒测试方法之前进行代码评审是一个非常好 的工程实践
4-4
不可能进行彻底的白盒测试
4-16
基本路径测试示例:
4 6 7 10 14 13 9 12

计算环形复杂度:
10(条边)- 8(个节点)+ 2 = 4

基本路径: 路径1:4→14 路径2:4→6→7→14 路径3:4→6→9→10→13→4→14 路径4:4→6→9→12→13 →4→14
4-17
三角形问题

使用基本路径设计测试用例方法推导三角形问题的测试用例P67
102
4-20
基本路径和测试用例(1)
81-86

基本路径和测试用例
1.
87
81-86->87->88->92->93 >95->97-98->102
88
89-90
相应的测试用例: 测试输入 = (68,68,56)
92
99-100
93
预期结果 = 这是一个等腰三角形!
95
94
2.
97-98
81-86->87->88->92->93 >95->96->102
(68,60,56), (68,68,68), (68,8,56)是
否可以发现这个问题?
4-29
分支-条件测试

测试思想

根据模块中的逻辑条件设计测试用例,使得被
测模块中的每一个复合条件以及构成这个复合
条件的每一个简单条件的真假情况至少被执行
一次。
4-30
1.
简单条件是一个布尔变量或一个可能带有NOT(“┓”)
81-86->87->88->92->93>95->97-98->102 81-86->87->88->92->93>95->96->102 81-86->87->88->92->93>94->102 81-86->87->89-90->92>93->94->102
4-23
88
89-90
2. 3.
95
95
94
预期结果= 这是一个等边三角形!
9798
96
4.
81-86->87->89-90->92->99100->102
相应的测试用例: 测试输入 = (68,8,60)
102
预期结果= 这不是一个三角形!
4-22
基本路径与环复杂度
81-86
1.
87
81-86->87->88->92->99100->102
4-34
对分支-条件测试的讨论
((a<b+c) && (b<a+c) && (c<a+b)) 68,68,68 68, 8,56 8, 68,56 8, 56,68 T F F F a<b+c T F T T b<a+c T T F T c<a+b T T T F

这组测试用例的结果又如何?
1.
((a<=b+c) && (b<a+c) && (c<a+b))?
4-39
循环测试

测试思想 关注循环体结构的正确性,对循环变量运用类似于边界值 测试的方法以验证循环体结构的正确性。

四种不同类型的循环结构
1. 2. 3. 4.
简单循环 嵌套循环 连接循环 非结构循环
4-40
循环类型
简单循环
嵌套循环
连接循环
非结构循环
4-41
测试简单循环

如果n 是循环次数, 那么测试用例应包括
2.
边表明了控制的顺序,在图中用有向箭头表示。
4-8
控制流图

三种逻辑结构的控制流图
顺序
条件
循环
4-9
控制流图
B 1
1
2
2
3
3 4 8
4 5
8
5 6 7
9
9
6
10
7
1 0 11
11
E
4-10
环复杂度

含义

用V(G)表示 用来衡量一个模块判定结构的复杂程度,在数量上表现 为独立的路径条数,是需要测试的基本路径数目的上限。

边的数目-节点的数目 + 2 = 16-13+2=5
4-13
基本路径

实用的定义
1.
一条路径是基本路径如果:
是一条从起始节点到终止节点的路径.
2.
至少包含一条其它基本路径没有包含的边. (至 少引入一个新处理语句或一个新判断的程序通 路.)
注意:对于循环而言,基本路径应包含不执行循 环和执行一次循环体。

左图是具有某程序的流程图,假设循环10次, 请计算一下有多少条程序执行通路?假设由图 中得到的所有路径都是可执行路径,执行一次 循环大约需要10微秒(奔腾4 1.7G),且一 年365天每天24小时不停机,请回答:如果循 环次数为10的话,遍历图中所有路径需要多长 时间?

结论是:41+42+43+„„+410,需要14秒左右的时间 如果循环次数为20次,100次时,结果又如何? 结论是:循环20次,需要约4072小时,循环100次则 大约需要6.79*1047年
第4章 白盒测试用例设计方法
1
本章内容

讨论常用的白盒测试用例设计方法,包括


基本路径测试
分支-条件测试 循环测试 其它白盒测试方法 综合运用白盒测试方法进行程序结构测试 白盒测试工具 覆盖准则 覆盖率测试工具
4-2
白盒测试

定义

基于系统或者组件的内部实现结构和逻辑寻找缺陷的测 试技术
4-35
案例
((a<b+c) && (b<a+c) && (c<a+b)) 68,68,68 68, 8,60 8, 68,60 8, 60,68 T F F F a<b+c T F T T b<a+c T T F T
c<a+b
T T T F

使用上面的测试用例,是否可以发现下面的缺陷
1.
2. 3. 4.

直接跳过循环体 只执行一遍循环体
连续执行两遍循环体
如果循环次数为n,执行m( m < n) 遍循环体

如果循环次数为n,那么执行n -1遍循环 体
4-18
控制流图
8186
87
88
8990 92
99100
93
94
95
96
9798
102
4-19
环复杂度

81-86
87
环复杂度


88
89-90
闭合区域的数目 = 5
二值判定节点个数 + 1
99-100
92
93
=4+1=5

94
95
边的数目-节点的数目 + 2 = 15-12+2=5
96
97-98
((a<=b+c) && (b<a+c) && (c<a+b))
((a<b+c) || (b<a+c) && (c<a+b)) ((a<b+c) && (b<a+c) ||(c<a+b)) ((a<b+c) || (b<a+c) || (c<a+b))
4-36
结论

分支-条件测试可以发现但并不保证发现所有下列缺陷
4-26
对节点粒度的讨论
① ② ③ ⑥


④ ⑤ ⑦ ⑧
1 3
1 1 1 2
4-27
对节点粒度的讨论
1 2 3
4
① ② ④ ⑤ ⑦ ⑨ ⑧ ③
7
5
6
8

9 1 0
11 1 2

13
相关主题