测试驱动开发(TDD)的实践与挑战应对
1. 单元测试成本与TDD的价值
在考虑为测试驱动开发(TDD)中的单元测试付费时,需要审视当前的流程。当前的流程可能是临时的,比如编写测试主程序、记录单元测试步骤或单步调试代码。这些活动实施成本高,但回报有限。实际上,我们已经在为单元测试买单,要么是直接的上述方式,要么是通过漫长的调试周期间接付出代价。
TDD值得投入,因为在TDD中,每次代码更改都会运行测试,测试会随着代码一起演进,而且投资会得到丰厚的回报。
2. 为何不先写代码再写测试
从传统开发流程(DLP)转向TDD并非易事,常见的反应是“先写代码,之后再写测试”,这被称为“后测试开发”。虽然写测试总是有益的,但先写测试再驱动生产代码的TDD能带来更多好处:
- 影响设计 :TDD能带来更好的API设计和更具内聚性、松耦合的模块,而后测试开发在此方面的积极影响较小。
- 预防缺陷 :TDD能立即发现小错误,而后测试开发可能会遗漏一些错误,这些错误最终会进入缺陷数据库。
- 定位问题 :后测试开发需要花费时间查找测试失败的根本原因,而TDD中根本原因通常很明显。
- 测试覆盖 :TDD更严谨,能提供更好的测试覆盖,而后测试开发会影响测试覆盖度。
3. 测试维护的必要性
确实,采用TDD需要维护测试。但如果没有测试,就需要进行繁琐的手动重测。测试带来的价值使得维护工作是值得的。测试需要保持简洁、表达清晰且无重复,掌握这些技能需要
超级会员免费看
订阅专栏 解锁全文
1084

被折叠的 条评论
为什么被折叠?



