关于代码覆盖率的统计方式了解可参考:
http://www.cnblogs.com/coderzh/archive/2009/03/29/1424344.html
被测试代码如下:
public class App {
public int foo(int a,int b){
int returnInt = 0 ;
if(a<10){
returnInt +=1;
}
if(b<10){
returnInt +=10;
}
return returnInt;
}
}
TestCase | 工具 | 结果 |
---|---|---|
a=5,b=5 | Jacoco | |
a=5,b=5;a=15,b=15 | Jacoco | |
a=5,b=5 | Cobertura | |
a=5,b=5;a=15,b=15 | Cobertura |
结论
1.都是使用行覆盖和分支覆盖来统计;
2.覆盖率100%不能说明Testcase的完整性;
3.覆盖率只是一种手段并不能说明问题,最好在Testcase设计完后根据覆盖率在进行补充;
4.jacoco是字节码级别的覆盖率统计,一个判断分支如果覆盖了其中的一部分会显示为黄色;
5.cobertura使用的是源码级的对于一个判断分支若未覆盖正反两种情况则认为代码未覆盖;