白盒测试:语句/条件/判定/判定条件/条件组合/路径覆盖

测试流程

  • 测试计划:根据需求说明书,制定测试的计划、进度
  • 测试设计:按照软件的需求、规格,按照规范的方法对软件进行结构划分以及设计合适的测试用例
  • 测试执行:输入测试用例,记录测试结果
  • 测试总结:观察测试结果,与预期结果对比,找到软件的bug

语句覆盖

语句覆盖很好理解了,就是设计若干个测试用例,保证我们的每一行有效代码都能够被执行至少一次就可以了。

判定覆盖

又称分支覆盖,对每个有分支的语句,如 if else 等,对每种情况的所产生的分支都要走一遍。

条件覆盖

一开始看的时候我有点懵,看了几个实例才清楚,条件覆盖,即我们设计的所有测试用例,要包含了条件语句的每个条件的所有情况,如

if(A>0 && B ==3)
...
else
...
if(B<3 || C)
...
else
...

此时,所有条件语句中有这么多种情况:

① A>0          ② A<=0
③ B==3         ④ B!=3
⑤ B<3          ⑥ B>=3
⑦ C==true      ⑧ C==false

我们的所有测试用例,要把上述的所有情况包含进去,如:

用例一:A=1,B=3 , C=true  满足:① ③ ⑥ ⑦
用例二:A=0, B=1 , C=false  满足:② ④ ⑤ ⑧

到这里我有点迷茫,似乎语句覆盖、判定覆盖、条件覆盖经常相同,找不出具体的执行差别,但这其实不重要,因为我们的测试点不同,测试方法针对的对象不一样,尽管整体上的测试流程没有明显的区别,但针对不同点测试时产生的效果明显不一样。

判定条件覆盖

因为满足了多有条件的覆盖,并不能保证每个分支都走一遍,如:

if(A>0 || B>0)
...
else
...
测试用例:
A=1,B=0
A=0,B=1

可以看出测试用例符合条件覆盖但只执行了if中true的分支,所以我们要设计即满足条件覆盖,又满足判定覆盖的用例:

A=1, B=1
A=0, B=0

条件组合覆盖

每个单条件中的true or false 都与别的每个单条件的true or false 组合过,如:

if(A>0 || B <0 || C==3)
...
else
...

此时有:

A>0 , A<=0
B>=0 , B<0
C==3 , C!=3

3对情况,所以有2×2×2=8种组合,即:

1. A>0   B>=0  C==3
2. A>0   B>=0  C!=3
3. A>0   B<0   C==3
4. A>0   B<0   C!=3
5. A<=0  B>=0  C==3
6. A<=0  B>=0  C!=3
7. A<=0  B<0   C==3
8. A<=0  B<0   C!=3

路径覆盖

我们知道我们的程序可以通过点和线用流程图表示出来,流程图中每个判定节点又会产生许多分支,这就导致产生了许多程序的执行路径,所以我们设计的测试用例就需要满足流程图中每个路径都走一遍,环路至少走一遍
我们设E为边数,N为节点数,P为判断节点数
则定义路径复杂度V(G)为:

V(G) = E - N + 2
V(G) = P + 1
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值