代码覆盖率的真正目的
2011-09-07 12:24
441 查看
In a sentence: Code coverage tells you what you definitely haven't tested, not what youhave.
Part of building a valuable unit test suite is finding the most important, high-risk code and asking hard questions of it. You want to make sure the tough stuff works as a priority. Coverage figures have no notion of the 'importance' of code, nor the quality
of tests.
In my experience, many of the most important tests you will ever write are the tests that barely add any coverage at all (edge cases that add a few extra % here and there, but find loads of bugs).
The problem with setting hard and (potentially counter-productive) coverage targets is that developers may have to start bending over backwards to test their code. There's making code testable, and then there's just torture. If you hit 100% coverage with
great tests then that's fantastic, but in most situations the extra effort is just not worth it.
Furthermore, people start obsessing/fiddling with numbers rather than focussing on the quality of the tests. I've seen badly written tests that have 90+% coverage, just as I've seen excellent tests that only have 60-70% coverage.
Again, I tend to look at coverage as an indicator of what definitely hasn't been tested.
Part of building a valuable unit test suite is finding the most important, high-risk code and asking hard questions of it. You want to make sure the tough stuff works as a priority. Coverage figures have no notion of the 'importance' of code, nor the quality
of tests.
In my experience, many of the most important tests you will ever write are the tests that barely add any coverage at all (edge cases that add a few extra % here and there, but find loads of bugs).
The problem with setting hard and (potentially counter-productive) coverage targets is that developers may have to start bending over backwards to test their code. There's making code testable, and then there's just torture. If you hit 100% coverage with
great tests then that's fantastic, but in most situations the extra effort is just not worth it.
Furthermore, people start obsessing/fiddling with numbers rather than focussing on the quality of the tests. I've seen badly written tests that have 90+% coverage, just as I've seen excellent tests that only have 60-70% coverage.
Again, I tend to look at coverage as an indicator of what definitely hasn't been tested.
相关文章推荐
- phing生成phpunit报告,代码覆盖率
- android+jacoco多模块项目中统计子模块代码覆盖率
- 苹果iOS8使用随机MAC地址发送probe request的真正目的
- 代码覆盖率分析
- 代码覆盖率测试
- 代码覆盖率工具 Istanbul 入门教程
- 代码清单1-1 我们第一个真正意义上的程序
- 使用gcov完成代码覆盖率的测试
- [导入]真正目的
- 真正合格完成一些代码工作的程序员,应该具有的素质。
- 迅雷使用积分制的真正作用和目的 [揭密迅雷]
- C/C++代码覆盖率生成
- VS社区版 使用 OpenCover 获取测试代码覆盖率
- 一步一图一代码,一定要让你真正彻底明白红黑树
- ant中使用cobertura分析测试用例的代码覆盖率
- [置顶] Android 使用Ant+Emma+Junit收集android代码覆盖率(来自联想的一位同事2012.12.24)
- 写代码真正该注意的地方
- 使用Rational PureCoverage测试代码覆盖率
- Petya爆发 黑客一分钱都没捞着!?真正目的居然是……
- Linux平台代码覆盖率测试工具gcov简介