覆盖率测试的那些事儿
- 为什么需要覆盖率测试?
- 辩证性的看覆盖率
覆盖测试是衡量测试质量的一个重要指标。在对一个软件产品进行了单元测试、组装测试、集成测试以及接口测试等繁多的测试之后,我们能不能就此对软件的质量产生一定的信心呢?这就需要我们对测试的质量进行考察。
如果测试仅覆盖了代码的一小部分,那么不管我们写了多少测试用例,我们也不能相信软件质量是有保证的。相反,如果测试覆盖到了软件的绝大部分代码,我们就能对软件的质量有一个合理的信心。
代码覆盖率能告诉你产品代码还有哪些地方、哪些功能模块没有测试到,或者说很仔细地测试过。但是它不能告诉你测试效果是否已经足够好了,代码覆盖率为100%不能说明你已经把用户的需求都考虑并且测试到了。相宜才能得当,合理使用代码覆盖率,可以规定一个测试覆盖率的下限。
值得注意的是,不要单纯追求高覆盖率,要同时注意测试用例的质量,如果测试用例本身就写的有错误,那么即使测试覆盖率很高也没有意义。
覆盖率测试基础认知篇:
当谈论覆盖率时我们在谈什么?
代码覆盖率通常指跑完测试后, 由工具自动统计的在跑测试的过程中被测代码的覆盖率, 细分的话包括语句覆盖率, 分支覆盖率, 函数覆盖率等. 由于代码覆盖率可由工具自动产生, 采集成本非常低, 而又比较直观, 所以历来受到开发团队及管理者的欢迎, 有的组织甚至将其作为 KPI 指标之一……[详情]
覆盖率测试实践应用篇:
持续交付实践 | 基于 jacoco 的测试覆盖率统计平台实现
Jacoco是一个开源的覆盖率工具。Jacoco可以嵌入到Ant 、Maven中,并提供了EclEmma Eclipse插件,也可以使用JavaAgent技术监控Java程序。Jacoco提供了多维度的覆盖率统计方法,包含指令级覆盖,分支覆盖、类覆盖、方法覆盖、行覆盖。[详情]