详述白盒测试的逻辑覆盖法的判定覆盖及其优缺点

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
如有转载,请注明出处(如不注明,盗者必究)

详述白盒测试的逻辑覆盖法的判定覆盖及其优缺点:

判定覆盖的定义:

判定覆盖是设计足够多的测试用例,使得程序中的每一个条件判断至少获得一次“真”和一次“假”,即使得程序流程图中的每一个真假分支至少被执行一次。

相比语句覆盖:

针对判断语句,在设定案例的时候,要设定True和False的两种案例,与语句覆盖不同的是增加了False的情况。语句覆盖是最基本的覆盖,只要能够满足判定覆盖,就一定能够满足语句覆盖。

判定覆盖率:

判定覆盖率=每个判定的真假值至少出现一次/判定结果的总数
eg: 案例代码中有判定2个,判定结果4个,设计测试用例执行了3个分支,分支覆盖率为3/4=75%。

测试实例:

以linux下shell编程为例:
输入以下代码,进行测试:

#!/bin/bash
echo “请输入第一个值:”
read a
echo “请输入第三个值:”
read b
echo “请输入第四个值:”
read c
echo “请输入第五个值:”
read d

if [[ $a -gt 0 && $b-gt 0 && $c -gt 0 && $d-gt 0 ]]

then
        echo $(($a+$b+$c+$d))
else
        echo $(($a-$b-$c-$d))
fi

在这里插入图片描述
我们设置两个简单的测试用例:a=1 b=2 c=3 d=4和a=-1 b=-2 c=-3 d=-4,得到下图的结果:
在这里插入图片描述
我们对用例进行执行,我们的判定覆盖率为: 100%

这里我们要区别语句覆盖:

语句覆盖是让echo $(($a+$b+$c+$d))和echo $(($a-$b-$c-$d))都执行一遍。而判定覆盖就是让程序的判定分别为真和假一次,因此,只要能够满足判定覆盖,就一定能够满足语句覆盖。

优缺点:

优点:
判定覆盖具有比语句覆盖更强的测试能力,同样也无须细分每条判定表达式。
缺点:
以上面的代码为例:如果我们将条件语句写错了,写成:

#!/bin/bash
echo “请输入第一个值:”
read a
echo “请输入第三个值:”
read b
echo “请输入第四个值:”
read c
echo “请输入第五个值:”
read d

if [[ $a -gt 0 || $b-gt 0 || $c -gt 0 || $d-gt 0 ]]

then
        echo $(($a+$b+$c+$d))
else
        echo $(($a-$b-$c-$d))
fi

也就是将if中改为,我们同样可以输出结果
在这里插入图片描述
由上图可知,我们得到了和If中为&&一样的结果,因此,我们可以得到:与语句覆盖一样的结论:判定覆盖能够满足条件的要求,但是不能对判断条件进行检查。

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
如有转载,请注明出处(如不注明,盗者必究)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值