TDD是什么
TDD是测试驱动开发(Test-Driven Development)的英文简称,是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只适用于XP(Extreme Programming),同样可以适用于其他开发方法和过程。
TDD的基本思路就是通过测试来推动整个开发的进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程。
TDD的重要目的不仅仅是测试软件,测试工作保证代码质量仅仅是其中一部分,而且是在开发过程中帮助客户和程序员去除模棱两可的需求。TDD首先考虑使用需求(对象、功能、过程、接口等),主要是编写测试用例框架对功能的过程和接口进行设计,而测试框架可以持续进行验证。
摘自百度百科
- 测试驱动:测试用例先行。首先编写好测试用例,期待值,实际值,开发的目的是让测试通过,开发的目的是让测试通过
- 测试可以帮助我们针对实际使用来塑造设计,也可在验证实现之前先验证代码设计,将其作为设计工具,用来引导我们的代码
- 需要像生产代码一样对待测试代码
开发流程
传统上的开发流程通常是使用自动化测试工具来进行质量保证,从而验证正确性。其中自动化测试工具就是验证工具:需要程序员先进行代码设计、然后进行编码、最后进行测试。
而TDD则是将测试作为设计工具,则会按照 测试、编码、重构的循环往复的过程进行,步骤可大致分为以下几步:
- 分析需求,把需求拆分为具体的任务。
- 从任务列表中取出一个任务,并对其编写测试用例。
- 由于没有实际的功能代码,测试代码不大可能会通过(红)。
- 编写对应的功能代码,尽快让测试代码通过(绿)。
- 对代码进行重构,并保证测试通过(重构)。
- 重复以上步骤。