John的项目测试覆盖率为85%,但Mike指出,未覆盖的15%可能存在严重问题。John认为这部分代码不重要,甚至已弃用,并手动测试。他们将无法测试的代码添加到Sonar-Exclude以隐藏。Mike认为,85%的覆盖率可能远低于实际,且未覆盖部分可能已损坏。团队若认为代码无法测试,可能是业余或无知。
Adam开发了一个生成PDF发票的代码,实现了100%的单元测试覆盖率。Bill扩展了代码,将PDF保存到对象存储中,同样达到了100%覆盖率。然而,上线后用户收到的是其他用户的发票。调查发现,Adam的代码未测试不同类方法的交互,Bill的代码虽被执行但未测试其功能。团队因100%覆盖率产生了虚假的安全感。
100%测试覆盖率并非目标,关键是通过测试确保代码按预期执行。低于100%覆盖率意味着存在死代码或未测试的代码。几乎所有代码都可以测试,难以测试通常意味着代码质量差。单元测试无法确保单元间协作的正确性,需更大范围的测试。测试无法证明代码完全正确,但能减少大量错误。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。