代码覆盖率是用例衡量代码被覆盖程度的一种度量方式。它最初是白盒测试的一个指标,后来被广泛应用于系统测试领域
代码覆盖率的度量方式有很多种,这里介绍常用的几种
- 语句覆盖
语句覆盖又叫行覆盖,是最常用也是最常见的一种覆盖方式,就是度量被测代码中每个可执行语句是否被执行到了,让我们看一段代码
int foo(int a,int b)
{
return a/b;
}
如果我们设计了这样一组用例
TC :a=1,b=3
很明显,语句覆盖率达到了100%。但是,聪明的你一定想到了,语句覆盖率虽然达到了100%,却没有发现最简单的bug∶ b=0时,会抛出一个除零异常。好吧,看来这个语句覆盖不是很靠谱。语句覆盖常常被人指责为“最弱的覆盖”,它只管覆盖代码中的执行语句,却不考虑各种分支的组合等。
- 判定覆盖
判定覆盖(Decision Coverage)度量程序中每一个判定的分支是否都被测试到了。废话不说,直接上代码:
int foo(int a,int b){
if (a<10||b