敦煌网的网站推广方式,全国工程信息网,培训网站制作,建设网站安全措施https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注#xff01; 欢迎关注微信公众号#xff1a;宝藏女孩的成长日记 如有转载#xff0c;请注明出处#xff08;如不注明#xff0c;盗者必究#xff09; 详述白盒测试的逻辑覆盖法的判定覆盖及其优缺点#xff1… https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注 欢迎关注微信公众号宝藏女孩的成长日记 如有转载请注明出处如不注明盗者必究 详述白盒测试的逻辑覆盖法的判定覆盖及其优缺点
判定覆盖的定义
判定覆盖是设计足够多的测试用例使得程序中的每一个条件判断至少获得一次“真”和一次“假”即使得程序流程图中的每一个真假分支至少被执行一次。
相比语句覆盖
针对判断语句在设定案例的时候要设定True和False的两种案例与语句覆盖不同的是增加了False的情况。语句覆盖是最基本的覆盖只要能够满足判定覆盖就一定能够满足语句覆盖。
判定覆盖率
判定覆盖率每个判定的真假值至少出现一次/判定结果的总数 eg: 案例代码中有判定2个判定结果4个设计测试用例执行了3个分支分支覆盖率为3/475%。
测试实例
以linux下shell编程为例 输入以下代码进行测试
#!/bin/bash
echo “请输入第一个值”
read a
echo “请输入第三个值”
read b
echo “请输入第四个值”
read c
echo “请输入第五个值”
read dif [[ $a -gt 0 $b-gt 0 $c -gt 0 $d-gt 0 ]]thenecho $(($a$b$c$d))
elseecho $(($a-$b-$c-$d))
fi 我们设置两个简单的测试用例a1 b2 c3 d4和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 dif [[ $a -gt 0 || $b-gt 0 || $c -gt 0 || $d-gt 0 ]]thenecho $(($a$b$c$d))
elseecho $(($a-$b-$c-$d))
fi
也就是将if中且改为或,我们同样可以输出结果 由上图可知我们得到了和If中为一样的结果因此我们可以得到与语句覆盖一样的结论判定覆盖能够满足条件的要求但是不能对判断条件进行检查。 https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注 欢迎关注微信公众号宝藏女孩的成长日记 如有转载请注明出处如不注明盗者必究