TDD开发学习

在接触TDD开发之前,我们在实验室进行平台开发,或者开发软件满足通信协议设计需求时,都是要写很长的需求文档,将所有细节想清楚。然后为了满足各个需求,开始进行程序开发设计。开发完成之后,再进行功能测试,书写测试报告,并对测试结果进行分析。这种开发属于传统“瀑布式”开发,并且时需求驱动开发,而不是测试驱动开发。这种开发方式的缺点比较突出,因此开始学习TDD开发方式。

1. TDD开发学习

传统开发的劣势

  • 在不想清楚细节的情况下,直接开发
  • 需求不明确时,协商讨论花费时间
  • 测试出现问题,调试占据很长时间
  • 代码质量不高,需要进行代码重构等,但是重构难度大,测试工作量大。

TDD开发方式

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

含义

  • Task-Driven Development
  • Test First Development
  • Test-Driven Design

好处

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

2. 如何做TDD

做设计

image
  1. 快速新增一个测试
  2. 运行所有的测试,发现新增的测试时失败的
  3. 做一些小小的改动,尽快使测试可以运行
  4. 运行所有测试,并且全部通过
  5. 重构代码,以消除重复设计等

不做设计

你可能感兴趣的:(TDD开发学习)