Written by - kok-s0s
Mercury 项目采用非常短的(半天)、严格限制的迭代周期。开发团队对所有更改进行了技术审查,并且,有趣的是,引用了 “极限编程中的测试优先于开发” 的理念,在每次微小改动之前进行计划和编写单元测试。--- Craig Larman and Victor R. Basili, Iterative and Incremental Development:A Brief History.IEEE, 2003
一套单元测试基本上要比没有测试的要好得多。但是在许多项目中,单元测试的编写与实现的代码是并行的,有时甚至在完成需要开发的模块之后才编写。即普通旧单元测试(POUT)。基本上,POUT 意味着软件是 “代码优先”,而不是测试优先。
其缺点:
测试驱动开发彻底颠覆了传统开发,对于还没有处理过 TDD 的开发人员来说,这种方法代表着思考方法的转变。
TDD 开发在编写相关的产品代码之前一定要先编写测试代码。严格按照步骤执行:当编写完成每个测试后,只编写足以让测试通过的产品代码,直到所有的模块需求开发结束。
TDD 的流程通常包括以下几个步骤:
TDD 是一种迭代式的开发方法,通过编写测试用例来指导代码的开发和重构,以提高代码的可靠性和质量。关键在于编写清晰、具体和可执行的测试用例,以及持续地运行测试用例并及时修复问题。
当测试百分百通过时,这一事实会给开发者莫大的力量!有了这个无漏洞的单元测试安全网,开发者可以进行无所畏惧的重构。代码的坏味道(例如重复的代码)或者设计问题现在可以修复了。不必害怕破坏功能,因为定期执行的单元测试会立即给我们反馈。令人高兴的是:如果一个或多个测试在重构阶段失败,导致这一结果的代码更改会非常小。
BOB 叔叔关于 TDD 的三大原则:
测试驱动开发(TDD)主要适用于软件组件增量设计和开发的工具和技术。
优势:
原型设计 - 不建议
框架、库、技术或架构模式的基本决策 - 不管用
Top