软件测试系列-白盒测试覆盖率的问题
作者:网络转载 发布时间:[ 2015/9/24 13:55:41 ] 推荐标签:单元测试 黑盒测试
2、给出用例,计算以上六种覆盖率的值
执行CASE:A=2;B=1;X=3。
在计算覆盖率之前,我们首先要看判定中的子条件在做什么运算,第一个判定中,这两个子条件在做与运算,(一个假即为假)。第二个判定中,这两个子条件在做或预算,(一个真即为真)。
(1)语句覆盖率:1/2 (50%)
分析:第一个判定中子条件的值为T1、F2(一真一假),所以我们走F这条分支,此时X=X/A这条语句没有被执行到;接下来,我们看第二个判定,它的子条件的值为T3、T4(都为真),所以我们走T这条分支,这时,语句X=X+1这条语句被执行到了。也是说,我们只执行到一条语句,所以语句覆盖率位1/2。
(2)判定覆盖率:2/4 (50%)
分析:我们刚才在分析语句覆盖的时候,我们提到第一个判定语句走的是F分支,第二个判定语句也的是T分支,所以我们共走了两条分支,分支总数为4,所以判定覆盖率为:2/4。
(3)条件覆盖率:4/8 (50%)
第一个判定中子条件的值为T1、F2;第二个判定的子条件的值为T3、T4。也是说我们执行到的条件总数为4;总共的条件操作总值为8,所以条件覆盖率为:4/8。
(4)判定条件覆盖率:6/12 (50%)
前面我们已经分析过了,判定条件覆盖率实际上是判定覆盖率和条件覆盖率的组合,所以判定条件覆盖率等与,2/4 (判定覆盖率)+ 4/8(条件覆盖率)=6/12(注意,这里的“+”代表的是组合,而不是算数相加,所以是分子分母分别相加即可)。
(5)条件组合覆盖率:2/8 (25%)
同样的,在条件覆盖率分析中我们已经提到过了,第一个判定中子条件的组合为T1F2;第二个判定的子条件的组合为T3T4,也是说我们执行到了两种组合;我们在分析流程图的时候已经提到过,总的可能的条件总数为八种组合,所以说条件组合覆盖率为:2/8。
(6)路径覆盖率:1/4 (25%)
在流程图分析中我们已经提到,路径共有四条,而我们走到的路径为只有abe一条,所以路径覆盖率为:1/4。
范例二:
被测程序流程图还是上面范例一的图1。
执行case1:A=2,B=0,X=3;
执行case2:A=1,B=0,X=1。
计算这两种情况下的6种覆盖率。
(1)语句覆盖率:2/2 ()
case1:第一个判定中子条件的值为T1、T2(都为真),所以我们走T这条分支,执行到X=X/A这条语句;接下来,第二个判定,它的子条件的值为T3、T4(都为真),所以我们走T这条分支,这时,语句X=X+1这条语句被执行到了。也是说,我们把两条语句都执行到了,所以语句覆盖率位2/2。
所以说case1这一条用例可以到达的语句覆盖,我们不用再去执行case2了。
(2)判定覆盖率:4/4 ()
case1:我们刚才在分析语句覆盖的时候,我们提到第一个判定语句走的是T分支,第二个判定语句走的也是T分支;
case2:第一个判定语句中子条件的值为F1、T2,所以我们走F分支;第二个判定语句中子条件的值为F3、F4,所以我们依然走F分支;
上面两个用例把我们两个判定中的4个分支都执行到了,所以判定覆盖率为4/4()。
(3)条件覆盖率:7/8()
case1:第一个判定语句中子条件的值为T1、T2,第二个判定条件中子条件的值为T3、T4;
case2:第一个判定语句中子条件的值为F1、T2,第二个判定条件中子条件的值为F3、F4;
这两个用例执行了七种条件,F2没有执行到,所以条件覆盖率为:7/8()。
(4)判定条件覆盖率:11/12。
判定条件覆盖率=判定覆盖率和条件覆盖率的组合 = 4/4 + 7/8 = 11/12。
(5)条件组合覆盖率:4/8 (50%)
case1:第一个判定语句中子条件的组合为T1T2,第二个判定条件中子条件的组合为T3T4;
case2:第一个判定语句中子条件的组合为F1T2,第二个判定条件中子条件的组合为F3F4;
我们可以看出:这两个用例只执行到八种组合中的四种组合,所以条件组合覆盖率为4/8(50%)。
(6)路径覆盖率:2/4(50%)
case1:在这条用例中我们所执行到的路径为:ace。
case2:在这条用例中我们所执行到的路径为:abd。
这两条用例执行到两条路径(ace和abd),还有两条路径(abe和acd)没有执行到,所以路径覆盖率为2/4(50%)。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南