TDD

Summary

测试驱动开发(Test-Driven-Development) 简称:TDD

Process

- 编写 TODO List
- 编写测试用例test case
- 运行不通过的测试 test RED
- 编写对应的功能代码 code
- 测试通过 test pass GREEN
- 重构 REDACTOR

Principle

- 隔离测试
- 一顶帽子
- 测试列表
- 测试驱动 
    > 完成某个功能函数,首先编写测试代码,考虑如何使用,如何测试;然后在对其进行设计编码。
- 先写断言
- 可测试性
    > 高内聚,接口依赖
- 及时重构
- 小步前进
    > 极限编程

Trap

* 忘记运行测试
* 一次编写太多测试
* 编写太大或者粗粒度的测试
* 编写过于琐碎的测试,省略断言
* 为琐碎的代码编写测试
* 项目中部分使用TDD
* 测试集合维护不力-运行时间过长
* 废弃的测试集合

Scope

测试驱动开发强调的不是负担,而是应该帮助我们减轻工作量的方法。
取决于个人的经验,功能复杂,核心功能的代码就应该编写更全面、细致的测试用例,一般的测试流程即可。

测试范围没有静态的标准,同时也应该可以随着时间改变。对于开始没有编写足够的测试的功能代码,根据bug补全即可。

How

测试用例的编写使用传统的测试技术即可。

Tips

以最初的开发工作量的适度增加为代价,达到最终的缺陷率降低,并且有助于减少后期工作量;
TDD 有助于提高代码质量,高内聚和耦合度。
谨防过渡设计。

测试驱动开发,肯特·贝克(Kent Beck)

-------------The End -------------