测试驱动开发(TDD)

测试驱动开发(TDD)

在开发过程中有两种类型的测试过程:单元测试 和 测试驱动开发。

单元测试

  • 代码级的测试,每个单元测试都是测试单独类或方法。
  • 单元测试套件可以开销小、速度快的方式穷举覆盖代码
  • 典型的单元测试检查只基于一个代码类的功能,并且不应该涉及与文件系统或数据库的交互

测试驱动开发

  • 更侧重于测试自动化的设计哲学,以通过满足测试要求来验证设计
  • 在编写一个功能的实际代码之前,先为它开法自动化测试,然后开发功能
  • 在测试通过之后,可以重构代码以满足更高的质量标准

集成测试之前

  • 强制在提交集成测试前自动进行一组相关的单元测试和冒烟测试
  • 冒烟测试以快速(但不完整)的方式检查服务的整体功能是否完好,可以发现通过单元测试但破坏整体系统的缺陷
  • 如果通过相关的单元测试和冒烟测试,就可以提交进入集成测试

1. 实现测试

  • 先开始编写测试,而后编写代码
  • 先指定要开发代码的接口规格,然后实现代码。为了能编写测试
  • 开发人员必须先获得所有相关的需求规格、用例和用户故事,将重心从编码切换到理解需求

2. 验证新写的测试会失败

  • 因为还没有实现正确的行为,运行新添加的测试并且确认它会失败

3. 编写实现测试的功能:

  • 开始时,编写实现的功能只需要通过新测试即可
  • 编写的代码不需要多么优雅或者高性能

4. 验证新测试和通过旧测试

  • 能够新的测试表明实现的特性是正确的
  • 旧的测试也能通过,说明没有破坏已有的功能

5. 重构代码

  • 清理代码的同时,让代码更容易理解和维护
  • “重构”实质上是一种趋向良好的“迭代”
posted @ 2017-05-12 07:41  Anliven  阅读(851)  评论(0编辑  收藏  举报