随着自动化的发展,技术债务在自动测试中的问题首次被意识到——当测试数量达到数百和数千时,支持费用常常超过开发成本,架构错误层出不穷。
在自动化的早期,测试编写得很快,常常没有模式、没有标准,也没有后续的重构。结果是自动测试的代码库过时,因应用程序的变化而破坏,维护需要越来越多的精力。
关键特性:
代码覆盖率高的程度是否表明技术债务的缺失?
不,形式上的代码覆盖率并不保证测试基础的质量和可行性:可能存在过时或“不必要”的测试。
一次性编写自动测试模板是否足够以消除技术债务?
不,基础设施和模式随着项目的增长总是需要重新评估和发展。
如果自动测试结构良好,是否可以完全依靠它们而不进行手动测试?
不,总是需要手动执行烟雾/回归/ niche 测试,自动测试是定期“监控”稳定功能的必要条件。
自动测试在没有审查的情况下编写,结构在项目过程中不断变化,部分测试逐渐不再相关——40%的测试因为应用程序的变化而失败。
优点:
缺点:
团队每两周进行一次自动测试的审核和重构,架构按照既定标准维护,测试与当前的用户故事紧密相关。
优点:
缺点: