TDD(测试开发驱动)
什么是测试驱动开发
定义
来自于百度百科:一种不同于传统软件开发流程的新型开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。
TDD出自于极限编程
TDD:
- 狭义:单元测试驱动开发UTDD
- 广义:验收测试驱动开发ATDD、行为驱动开发BDD
TDD编码方式
- 先分解任务,分离关注点
- 列Example,用实例化需求,澄清需求细节
- 写测试,只关注需求,程序的输入输出,不关心中间过程
- 写实现,不考虑别的需求,用最简单的方式满足当前这个小需求即可
- 重构,用手法消除代码里的坏味道
- 写完,手动测试一下,基本没什么问题,有问题补个用例,修复
- 转测试,小问题,补用例,修复
- 代码整洁且用例齐全,信心满满地提交
含义
Task-Driven Development
Test First Development
Test-Driven Design
为什么要进行测试驱动开发
效率:提前确认需求,减少开发中的中断和等待;小步快走,节省调试时间
质量:高测试覆盖率;自动回归测试
如何做TDD
两种途径:做设计VS不做设计
如何学习
资料:《有效的单元测试》、《clean code》
资料:
《深度解读 - TDD》
编程的精进之法
像机器一样思考(一)—— 宏观的基础
像机器一样思考(二)—— 数据的细节
像机器一样思考(三)—— 穷尽就是力量
像机器一样思考(四)—— 一图抵千言