代码覆盖率

代码覆盖率 是一个度量指标(以百分比表示),计算由测试调用的代码元素数量与代码元素总数的比例。代码元素可以是任何内容,但通常是代码行、代码块或函数。

代码覆盖率是一个重要的指标,因为它能告诉你哪些部分的代码没有被测试套件覆盖。我喜欢在完成代码更改之前查看代码覆盖率,因为我经常忘记为边界情况(例如异常处理)或更复杂的语句(例如 Lambda 表达式)编写测试。在编码时添加这些测试是没有问题的,但事后添加它们就会变得更加困难。

然而,你不应过于关注绝对的覆盖率数值,因为代码覆盖率本身并不说明测试的质量。拥有 70% 的代码覆盖率和高质量的测试,比拥有 90% 的代码覆盖率和低质量的测试要好得多。根据你使用的编程语言和框架,可能存在一些测试工作量很大但价值较低的代码。通常,你可以将这些代码从代码覆盖率计算中排除,这也是为什么代码覆盖率的绝对值是有限制的原因。然而,通过在每个管道中测量这个值,并专注于新代码,可以帮助随着时间的推移提高自动化测试的质量。