当前位置:文档之家› 第07课 白盒测试(1)—逻辑覆盖测试

第07课 白盒测试(1)—逻辑覆盖测试


入口
A> 1 AND B=0 F A=2 OR X > 1 F
T
X=X/A
T
X=X+1
返回
路径:P1(TT)P2(FF)P3(FT)P4(TF)
1 语句覆盖
设计足够的测试用例,使 得程序中的每个语句至少执行 一次。
1 语句覆盖
入口
A
用例1 2 2
B
0 0
X
4 3
A> 1 AND B=0 F A=2 OR X > 1 F
白盒测试的基本概念 什么是白盒测试
把程序看成装在一 个透明的白盒子里, 程序的结构和处理 过程完全可见,按 照程序的内部逻辑 测试程序,以检查 程序中的每条通路 是否都能按照预先 要求正确工作。
不可能进行彻底的白盒测试
左图是具有某程序的流程图,假设循环10次,请 计算一下有多少条程序执行通路?假设由图中得 到的所有路径都是可执行路径,执行一次循环大
返回
4 判定/条件覆盖
同时满足判定覆盖的和条件 覆盖的逻辑覆盖称为判定/条件覆 盖。它的含义是: 设计足够的测 试用例,使得判定中的每个条件 都取到各种可能的值,而且每个 判定表达式也都取到各种可能的 结果。
4 判定/条件覆盖
入口
用例1
A B X
2
1
0
1
4
1
A> 1 AND B=0 F A=2 OR X > 1 F
X=1 X=2 X=1 X=4
T
X=X+1
路径:P1(TT)P2(FF)P3(FT)P4(TF)
习题
1. 在用白盒法设计测试用例时,常用的6种覆盖标准是语 句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组 合覆盖、路径覆盖. 假设A和B是两种覆盖准则,我们用包含,被包含,相同 和互不包含来形容他们之间的关系: 语句覆盖——判定覆盖 语句覆盖——条件覆盖 判定覆盖——条件覆盖 判定覆盖——判定/条件覆盖 判定/条件覆盖——条件组合覆盖
白盒测试的常用方法
逻辑覆盖
路径分析 测试
循环、条 件分支

逻辑覆盖
逻辑覆盖是以程序的内部逻辑结构为基础的测试用例设 计技术,属于白盒测试。它要求测试人员十分清楚程序的逻 辑结构,考虑的是测试用例对程序内部逻辑覆盖的程度。 语句覆盖 判定覆盖 弱
条件覆盖
判定/条件覆盖 条件组合覆盖 路径覆盖
覆盖
路径:P1(TT)P2(FF)P3(FT)P4(TF)
3 条件覆盖
设计足够的测试用例,在 语句覆盖的基础上使得程序判 定中的每个条件能获得各种可 能的结果。
3 条件覆盖
入口
A> 1 AND B=0 F A=2 OR X > 1 F
T
X=X/A
T
X=X+1
返回
将每一个条件都 列出来: T1 A>1 T1 A<=1 T2 B=0 T2 B!=0 T3 A=2 T3 A!=2 X>1 T4 X<=1 T4
E. ⑤
F. ⑧
总 结
逻辑覆盖技术
发 现 错 误 能 力 由 弱 到 强 语句覆盖:每条语句至少执行一次 判定覆盖:每个判定的每个分支至少执行一次 条件覆盖:每个判定的每个条件应取到各种可能的值 判定-条件覆盖:同时满足判定覆盖和条件覆盖 条件组合覆盖:每个判定中各条件的每一种组合至少出 现一次 路径覆盖:使程序中每一条可能的路径至少执行一次
2 判定覆盖(分支覆盖)
入口
还有其它可能吗? 有!例如:301,211这 两组用例
A 用例1 用例2 2 1 B 0 1 X 4 1
A> 1 AND B=0 F A=2 OR X > 1 F
T
X=X/A
?
T X=X+1
返回
判定覆盖比语句覆 盖强,但是仍不能保证 判断条件的正确性。例 从定义上 如:第二个判断条件中 可知:判 的x>1若错写成了x<1, 定覆盖包 能否测试出来? 含了语句
覆盖程度从 低到高排列

覆盖准则的作用
说明
用于描述在测试过程中,被测对象被测试的程度,
有时候也称为软件测试覆盖准则或者测试数据完
备准则,可以:
1. 作为测试停止的标准,用于衡量测试是否充分; 2. 作为选取测试数据的依据,满足相同覆盖准则的测 试数据是等价的.
逻辑覆盖例题
程序如下: function js(float A,float B,float X) { if(( A>1)&&(B=0)) X=X/A; if((A==2)||(X>1)) X=X+1; }
约需要10微秒(奔腾4 1.7G),且一年365天每
天24小时不停机,请回答:如果循环次数为10的 话,遍历图中所有路径需要多长时间? 结论是:41+42+43+……+410,需要14秒左右的时 间 如果循环次数为20次,100次时,结果又如何? 结论是:循环20次,需要约4072小时,循环100 次则大约需要6.79*1047年
3 条件覆盖 测试用例 覆盖分支 条件取值
T1, T 2, T 3, T 4
覆盖路径 P1(TT)
(204)(213) A>1, B=0, A=2, X>1
(101)(101) A<=1,B=0, A!=2, X<=1 (211)(212) A>1, B!=0, A=2 ,X<=1
T1, T 2, T 3, T 4
5 条件组合覆盖
设计足够的测试用例,使 得每个判定中的条件的各种可 能组合都至少出现一次。
5 条件组合覆盖 可能的条件组合: (1)A>1,B=0 (2)A>1,B≠0 (3)A≤1,B=0 (4)A≤1,B≠0 (5)A=2,x>1 (6)A=2,x≤1 (7)A≠2,x>1 (8)A≠2,x≤1 相应的输入数据: A=2,B=0,x=4 满足(1)和(5) A=2,B=1,x=1 满足(2)和(6) A=1,B=0,x=2 满足(3)和(7) A=1,B=1,x=1 满足(4)和(8)
供选择的答案 A:① 语句覆盖 ② 条件覆盖 ③ 判定覆盖 ④ 路径覆盖 B~F:① Ⅰ和Ⅱ组 ② Ⅱ和Ⅲ组 ③ Ⅲ和 Ⅳ组 ④ Ⅰ和 Ⅳ组 ⑤ Ⅰ、 Ⅱ、 Ⅲ组 ⑥ Ⅱ、 Ⅲ、 Ⅳ组 ⑦ Ⅰ、 Ⅲ、 Ⅳ ⑧ Ⅰ、 Ⅱ、 Ⅳ组
解答:A. ④ B. ⑤ C. ⑧
D. ④
T
X=X/A
输出
?
T X=X+1
返回
路径:P1(TT)P2(FF)P3(FT)P4(TF)
只包含了 P1一条 第一个判断中的 逻辑运算符 路径,所以语句 “AND”若错写 覆盖的覆盖程度 成了“OR”,能否 是最弱的 测试出来?
2 判定覆盖
设计足够的测试用例,使 得在语句覆盖的基础上,程序 中每个判定的取“真”分支和 取“假”分支至少都执行一次 ,判定覆盖又称分支覆盖。
练习一
1.如图显示某程序的逻辑结构。试为它设计足够
的测试用例,分别实现对程序的判定覆盖、条件 覆盖和条件组合覆盖。
覆盖种类
Байду номын сангаас判定覆盖
需满足的条件
A>0, B=0 A>0, B0或 A0, B=0或 A0, B0 以下四种情况各出现一次 B=0 B0
测试数据
A=2, B=0 A=2, B=1或 A=0, B=0或 A=-1, B=1 A=2,B=0 A=-1,B=1 A=2, B=0 A=2, B=1
P2(FF)
T1, T 2, T 3, T 4
P3(FT)
3 条件覆盖
入口
用例1 用例2 A 2 1 A 用例1 用例2 1 2 B 0 1 B 0 1 X 4 1 X 3 1
A> 1 AND B=0 F A=2 OR X > 1 F
T
X=X/A
T
X=X+1
思考: 判定覆盖和条件 覆盖的关系
?
是否满足判定覆 盖?
• 2.白盒测试 白盒测试:已知产品的内部工作过程,可以通 过测试证明每种内部操作是否符合设计规格要求, 所有内部成分是否以经过检查。 软件的白盒测试是对软件的过程性细节做细致 的检查,它允许测试人员利用程序内部的逻辑结构 及有关信息,设计或选择测试用例,对程序所有逻 辑路径进行测试,通过在不同点检查程序状态,确 定实际状态是否与预期的状态一致。因此白盒测试 又称为结构测试或逻辑驱动测试。
T
X=X/A
用例2
T
X=X+1
返回
判定/条件覆盖仍有缺陷。从表面上看, 它测试了所有条件的所有可能结果,但事实上 并不是这样。因为某些条件掩盖了另一些条件。 例如,在逻辑表达式中,如果“与”表达式中 某一条件为“假”,则整个表达式的值为 “假”,这个表达式中另外的几个条件就不起 作用了。同样地,如果在“或”表达式中,某 一条件为“真”,则整个表达式的值为“真”, 其它条件也就不起作用了。因此,采用判定/ 条件覆盖时,逻辑表达式中的错误不一定能测 试出来。
显然,满足条件组合覆盖的测试数据,也一定满足判定 覆盖、条件覆盖和判定/条件覆盖标准。
5 条件组合覆盖 TEST CASES: A=2,B=0,x=4 A=2,B=1,x=1 A=1,B=0,x=2 A=1,B=1,x=1
入口
A> 1 AND B=0 F A=2 OR X > 1 F
T
X=X/A
?
第3章 白盒测试方法
把程序看成装在一个透明的白盒子里,程序的结构和处理 过程完全可见,按照程序的内部逻辑测试程序,以检查程 序中的每条通路是否都能按照预先要求正确工作。
相关主题