覆盖率高不等于测试质量高。它仅反映代码是否被执行,无法保证逻辑正确、边界覆盖或缺陷发现能力,需结合变异测试、用例设计方法和缺陷逃逸率等综合评估。
不一定。覆盖率高只是说明代码被测试执行到了,不代表测试本身写得好、逻辑覆盖全、边界考虑周全,更不等于软件没有缺陷。
比如一段函数有 10 行代码,你写了一个测试用例调用了它,所有行都走了一遍——覆盖率 100%,但测试里可能只检查了返回值是否为 None,而没验证实际业务逻辑是否正确、异常分支是否触发、输入非法时是否报错等。
常见情况包括:
为了凑覆盖率数字,有人会写大量“形同虚设”的测试:比如给每个 getter 方法单独写一个测试,只调用不校验;或者对日志打印、空分支、默认返回值做无意义断言。这类测试既不增加信心,还拖慢 CI、提高维护成本。
真正有价值

单看覆盖率容易误判。建议配合以下几点一起评估:
覆盖率是个好帮手,但不是质量终点。写测试的目标是建立信心,不是刷数字。