软件研发

测试覆盖率

2018-07-13 10:56:23 | 来源:中培企业IT培训网

测试覆盖率

当你听到谈论单元测试的时候,人们会经常提到测试覆盖率。测试覆盖率是测试用例中执行的应用程序代码的百分比。

为了度量单元测试覆盖率,你需要执行测试并且跟踪执行有或没有被执行的代码。

Coertura就是在Java中度量测试覆盖率的工具。其他类似的工具包括jcoverage和Clover。

Cobertura的工作原理是插装Java字节码,将自己的代码段插入到已经编译好的代码中。测试用例执行时,这些度量代码覆盖率的代码段也被执行。

通常来说,百分之百的代码覆盖率是比较理想的。实际的情况并不总是这样,而且也要权衡成本和效益比。

一个简单的反例就是下面Java代码中的getter方法:

private int positiveValue,

void setPositiveValue (int x) {

this .positiveValue=x;

}

int getPositiveValue () {

return positiveValue;

如果我们为这个方法写一个测试用例,将会获得更高的测试覆盖率。但是从另一个角度来说,这对我们来说并没有什么实际的意义。我们真正测试的是仅仅是Java的实现没有错误。如果setter方法包含了值是否为负的检查,情况就不一样了。一旦方法包含了这样的逻辑,单元测试就显得有意义了。

猜你喜欢