# 测试驱动开发

> 测试驱动开发（英語：Test-driven development，縮寫為TDD）是一種软件开发过程中的應用方法，由极限编程中倡导，以其倡导先写测试程序，然后编码实现其功能得名。测试驱动开发始于20世纪90年代。测试驱动开发的目的是取得快速反馈并使用“illustrate the main line”方法来构建程序。 测试驱动开发是戴两顶帽子思考的开发方式：先戴上实现功能的帽子，在测试的辅助下，快速实现其功能；再戴上重构的帽子，在测试的保护下，通过去除冗余的代码，提高代码品質。测试驱动着整个开发过程：首先，驱动代码的设计和功能的实现；其后，驱动代码的再设计和重构。

- ID: m02184
- 分类: technical
- 领域: 软件工程

## 定义

一种开发流程：先写测试用例（会失败），再写刚好能通过测试的代码，最后重构。即“红-绿-重构”循环。脚手架作用：以终为始。它强迫我们在动手之前先定义“什么是成功”（测试用例）。不仅用于写代码，写方案时也可以“先写验收标准，再写方案内容”，保证目标聚焦。

## 机制

TDD：先为功能写一条会失败的单元测试(红)，再写最小实现使其通过(绿)，随后重构去除重复与坏味；以测试锁定行为、驱动设计。

## 练习

把需求写成可运行的小测试并看其失败；写刚好够用的代码通过测试；重构并保证测试仍绿；小步循环累积。

## 脚手架用法

以终为始。它强迫我们在动手之前先定义“什么是成功”（测试用例）。不仅用于写代码，写方案时也可以“先写验收标准，再写方案内容”，保证目标聚焦。

[阅读网页](https://thinkingmodels.site/entries/detail/m02184)
