测试覆盖率的几种类型
发布时间:2024-02-19

1.语句覆盖率


语句覆盖率的含义是选择足够多的测试数据,使被测程序中的每条语句至少执行一次,计算语句覆盖率的公式如下。

语句覆盖率=(至少执行一次的语句数量/可执行的语句总数)×100%

在测试时,首先设计若干个测试用例,然后运行被测程序,使程序中的每个可执行语句至少执行一次。所谓“若干个”,自然是越少越好。

从程序中的每条语句都得到执行这一点看,通过覆盖率能够全面地检验每一条语句,但是语句覆盖率不能反映程序的执行逻辑,这是其最严重的缺点。

假如这一段程序中用于判定的逻辑运算有问题,如果第一个判定运算符“&&”误写成了运算符“||”,或第二个运算符“||”误写成了运算符“&&”,那么使用上述的测试用例仍然可以达到100%的语句覆盖率,但上述的逻辑错误无法发现。

即使语句覆盖率达到了100%,也会有发现不了的缺陷,因此一般认为语句覆盖率是很弱的逻辑覆盖率。

 

2. 判定覆盖率

 

比语句覆盖率稍强的覆盖率标准是判定覆盖率。判定覆盖率的含义是设计足够的测试用例,使得程序中每个判定的每个分支至少执行一次,或者使得程序中的每个“真”分支和“假”分支至少执行一次,因此也称分支覆盖率(branch coverage)。计算判定覆盖率的公式如下:

判定覆盖率=(执行的判定分支数量/判定分支的总数)×100%

这组测试用例覆盖了所有的分支,能达到100%的判定覆盖率。

判定覆盖率的缺点是很明显的,当在分支中使用复杂的条件时,判定覆盖率就显得不足了。

即使判定覆盖率达到了 100%,也会有缺陷发现不了,所以覆盖率只是我们度量的手段。


3. 条件覆盖率


条件覆盖率的含义是在测试时,运行被测程序后,所有判断语句中每个条件的可能取值(真值和假值)出现过的比例。计算条件覆盖率的公式如下。

条件覆盖率=(条件操作数至少被判断一次的数量/条件操作数的总数)x100%

设计若干测试用例,执行被测程序以后,要使每个判断中每个条件的可能取值至少满足一次。

该组测试用例能达到100%的条件覆盖率,但是判定覆盖率只有50%,覆盖了条件的测试用例不一定覆盖了分支。为了解次这一问题,需要兼顾条件和分支,采用判定条件覆盖率。


4 判定条件覆盖率


判定条件覆盖率也称分支条件覆盖率(Branch Condition Coverage,BCC),它的含义是在测试时,运行被测程序后,所有判断语向中每个条件的所有可能值(为真为假〕和每个判断本身的判定结果(为真为假)出现次数的比例。计算判定条件覆盖率的公式如下。

判定条件覆盖率=[条件操作数值和判定结果至少被判断一次的数量/(条件操作数値总数+判定結果总数)]x100%

从上式看出,判定条件覆盖率实际上就是判定覆盖率和条件覆盖率的组合。


5. 条件组合覆盖率


条件组合覆盖率的含义是在测试时,运行被测程序后,所有语句中原子条件所有可能的取值结果组合出现次数的比例。计算条件组合覆盖率的公式如下。

条件组合覆盖率=(至少执行一次的条件组合/总的可能的条件组合数)x100%

设计若干测试用例,执行被测程序以后,使得每个判定中条件的各种可能组合都至少出现一次。


6.路径覆盖率


路径覆盖率的含义是在测试时,运行被测程序后,程序中所有可能的路径执行过的比例。计算路径覆盖率的公式如下。

路径覆盖率=(至少执行一次的路径数/总的路径数)×100%

设计足够多的测试用例,要求覆盖程序中所有可能的路径。


在前面讨论的多种覆盖准则中,有的虽提到了所走路径,但尚末涉及路径覆盖率,而路径全面覆盖在软件测试中是一个重要问题,因为程序要取得正确的结果,就必须消除遇到的各种障碍,沿着特定的路径顺利执行。如果程序中的每一条路径都得到了验证,才能说程序受到了全面检验。

 


更多软件测试相关推荐:

软件测试更多干货文章

软件测试就业培训


文章来源:网络  版权归原作者所有

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8103),我们将立即处理

相关阅读
/