Цикл Red-Green-Refactor
- Red — написать тест для нового поведения. Он проваливается, потому что кода ещё нет
- Green — написать минимальный код, чтобы тест прошёл. Любым способом
- Refactor — улучшить код без изменения поведения. Тест остаётся зелёным
Преимущества
- Новый код покрыт на 100% по определению
- Дизайн получается тестируемым — нет жёстких зависимостей
- Тесты документируют поведение
Критика
Замедляет начальную разработку. Сложно применить к UI, legacy-коду и интеграциям. Большинство команд применяет TDD избирательно, а не повсеместно.