自动化测试帮助我们更快地编写代码。单元测试立即告诉我们何时出现错误。集成测试使我们平静下来,减少将故障交付给用户的恐惧。但是“我们”是谁?程序员。那么我们的雇主呢?自动化测试如何帮助他们?自动化测试保护他们的投资。
我们对代码库进行的每一次更改都会给雇主带来成本。无论他们是按月支付我们还是按代码行数支付,最终结论都是一样的:到达存储库并最终发布给最终用户的是代码。
这就是企业正在投资的东西—新功能或错误修复。他们所关心的是所编写和发布的代码。
即使他们说他们在投资人员时,他们真正想要的是代码。人只是一个中间产物。最终资产是代码库。
他们想要保护那个资产。
投资损失可能是今天写的一百行明天不起作用。想想这样的情况:我们期望支付修理车身的钱后汽车能正常工作。如果其他地方出了问题我们并不介意再次支付—但不希望是他们昨天修理过的同一个部分。我们希望修复后的部件在行驶时能正常工作。我们希望已经修好的部分有保修。
同样,我们的雇主希望我们提交代码并领取薪水后代码能正常工作。他们希望有保修,即代码修好后不会再次出现错误。自动化测试可以提供这种保修。
延续这个比喻:“驾驶”代码库意味着积极修改其部分—重构或扩展。我们驾驶得越激进,破坏风险就越高。没有经过测试覆盖的代码部分首先会出现问题。
测试覆盖率保证了以前正常运行的部分—已经付费过的部分—即使在重构的压力下仍然正常工作。
因此,如果对代码库的贡献没有支持测试,就是对雇主金钱的浪费。
Translated by ChatGPT gpt-3.5-turbo/42 on 2025-06-08 at 08:26