TDD测试驱动开发

TDD(测试开发驱动)

什么是测试驱动开发

定义

来自于百度百科:一种不同于传统软件开发流程的新型开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。

TDD出自于极限编程

TDD测试驱动开发

TDD:

  • 狭义:单元测试驱动开发UTDD
  • 广义:验收测试驱动开发ATDD、行为驱动开发BDD

TDD编码方式

  • 先分解任务,分离关注点
  • 列Example,用实例化需求,澄清需求细节
  • 写测试,只关注需求,程序的输入输出,不关心中间过程
  • 写实现,不考虑别的需求,用最简单的方式满足当前这个小需求即可
  • 重构,用手法消除代码里的坏味道
  • 写完,手动测试一下,基本没什么问题,有问题补个用例,修复
  • 转测试,小问题,补用例,修复
  • 代码整洁且用例齐全,信心满满地提交

含义

Task-Driven Development
Test First Development
Test-Driven Design

为什么要进行测试驱动开发

效率:提前确认需求,减少开发中的中断和等待;小步快走,节省调试时间
质量:高测试覆盖率;自动回归测试

如何做TDD

两种途径:做设计VS不做设计
TDD测试驱动开发

如何学习

TDD测试驱动开发

资料:《有效的单元测试》、《clean code》

资料:
《深度解读 - TDD》
编程的精进之法
像机器一样思考(一)—— 宏观的基础
像机器一样思考(二)—— 数据的细节
像机器一样思考(三)—— 穷尽就是力量
像机器一样思考(四)—— 一图抵千言