测试覆盖率
Test Coverage
中级通用测试覆盖率(Test Coverage)表示测试触及了多少预先定义的代码或需求范围,常见口径包括代码行和分支。它帮你发现测试遗漏在哪里,例如支付失败分支从未被执行;但覆盖率高不等于测试能发现错误。
你可能会说:「帮我看看现有测试漏掉了哪些代码路径,尤其是支付失败和退款的情况。」
读之前建议先了解
动手看看支付回调的测试覆盖率
先切换测试用例,再切换覆盖率口径;高亮的面板会告诉你,这次统计的是代码行,还是判断后的两条路径。
只测成功支付时,失败路径从没运行过。代码行覆盖率是 4/5,分支覆盖率是 1/2;看分支更容易定位这处遗漏。
即使显示 100%,如果测试没有核对收据金额或失败原因,代码写错了也可能照样通过。覆盖率不是测试质量分数。
要点看测试覆盖率时,我们到底在看什么?
- 1
先说清楚统计的范围和口径
你看到的百分比取决于怎么算:行覆盖率看代码行是否被执行,分支覆盖率看不同判断路径是否走到。还要确认统计包含哪些文件;同一个数字换了口径或范围,就不能直接比较。
- 2
没覆盖的地方能提示测试缺口
假设后台有一段退款逻辑,成功退款的路径被测到了,余额不足的路径却没走到。覆盖率报告能帮我们定位这个缺口,再决定是否补一条有价值的测试,而不是只盯着总百分比。
- 3
执行过不等于验证过结果
测试运行时经过某行代码,这行就可能被记为已覆盖;但如果测试没有检查退款金额或账户状态,计算错误仍可能漏掉。所以你还得看断言是否对应业务规则,不能把覆盖率当成质量结论。
容易混淆的地方
测试用例是你设计的一次输入、操作与预期结果;测试覆盖率是用某种口径衡量这些测试触及了多少范围。它也不同于测试通过率:全部测试通过,只说明现有测试没报错,没说明遗漏了多少路径。覆盖率报告适合找空白,不负责证明断言写得对。
什么时候用
适合用
- AI Agent 刚为订单模块补完单元测试,你想检查取消、退款等分支是否仍有遗漏。
- 准备合并一次权限逻辑修改,你想定位新代码中哪些判断路径没有被测试触及。
- 团队要持续观察核心模块的测试缺口,可以固定统计口径,对比每次改动后的覆盖范围。
不适合用
- 你想知道新用户能否看懂注册流程;这是体验问题,更适合做可用性测试或观察用户操作。
- 你担心接口在高并发下响应变慢;代码覆盖率回答不了容量问题,可以改做负载测试。
- 你要检查线上支付是否偶发失败;覆盖率看不到实际运行状况,更适合查监控和服务端日志。
练一练选一个答案,看看解释
AI Agent 为退款功能写了测试,报告显示行覆盖率为 92%,但余额不足时的退款处理没有测试。你接下来怎么判断?
让 AI 帮你做复制给 AI Agent 直接用
请为退款模块运行测试并生成覆盖率报告,说明统计范围、行覆盖率和分支覆盖率。重点找出退款失败、重复请求等未覆盖路径;对重要缺口补测试,并写明每条测试验证了什么结果。不要只为提高百分比而增加没有有效断言的测试。