使用代码覆盖工具有什么好处?

时间:2010-11-15 04:21:40

标签: unit-testing code-coverage

鉴于对good level of code coverage for unit tests的内容似乎没有硬性规定,使用NCover等代码覆盖率工具的好处是什么呢?

4 个答案:

答案 0 :(得分:5)

正如您所指出的那样,仅根据代码覆盖百分比来衡量软件质量是错误的。但NCover允许您通过单元测试确切地检查代码库的哪些部分被忽略。由于您应该知道代码的哪些部分最常执行以及哪些部分最容易出错,因此NCover对于确保它们至少经过测试非常有用。

答案 1 :(得分:2)

代码覆盖率作为指标为您提供两个重要的知识产权: 首先,它告诉您单元测试所涵盖的内容以及不适用的内容。如果将此与代码的静态分析一起使用,则可以轻松找到经常使用且未经过测试的复杂代码。当前未经过测试的复杂常用代码是您希望为其添加测试的代码。

其次,如果您遵循代码覆盖率的趋势,您可以检测您是否在测试代码时“更好”,或者是否引入了遗留代码(即未经测试的代码);您可能希望进行自动构建运行代码分析,以告知您覆盖百分比是否在下降(表明有人正在检查未经测试的代码)。

答案 2 :(得分:2)

即使您达成了一致的覆盖率,代码覆盖率也只会告诉您是否符合该级别,而不是测试是否有效。但即使有其限制覆盖率(以及您可以从中获得的统计数据,例如CRAP(覆盖范围超过复杂性,Clover可以显示与标记云相同的数据,非常整洁)仍然有用大致了解代码的测试程度以及潜在的错误将隐藏在哪里。

不存在银子弹,但这并不意味着你不应该使用你能找到的每一颗普通子弹。将它们绑定在一起(代码覆盖与CI,趋势和覆盖范围,复杂性和可能的​​代码变异),最终你会找到一种强大的方法来快速通知你潜在的问题。

答案 3 :(得分:1)

在测试套件上运行覆盖工具的主要优点是找到代码测试不佳的区域。我经常通过程序集,命名空间和类来查看我的覆盖率数字,以查找尚未经过测试的代码,但确实应该这样。