﻿---
title: Test-Driven Development (TDD)
description: "Разработка через короткие циклы: сначала падающий тест, затем минимальный код и рефакторинг с повторным запуском проверок."
---

## Цикл TDD

**Test-Driven Development (TDD)** — техника разработки, при которой работа над небольшим поведением начинается с автоматического теста. Классический цикл состоит из трёх шагов:

1. **Red:** написать тест для ещё не реализованного поведения и убедиться, что он падает по ожидаемой причине.
2. **Green:** добавить минимальный код, чтобы тест прошёл.
3. **Refactor:** улучшить структуру кода, сохраняя тесты зелёными.

Короткий цикл повторяется для следующего поведения. Тест помогает уточнить ожидаемый результат, но сам по себе не доказывает отсутствие всех дефектов.

## TDD с AI-ассистентом

Попросите агента сначала сформулировать сценарии и тесты, но проверьте, что они отражают требования, а не предполагаемую реализацию. Убедитесь, что новый тест действительно падает до изменения кода; иначе он может быть не связан с нужным поведением. Затем поручите минимальную реализацию, запустите тесты и изучите итоговый diff.

Для задачи, сформулированной через [SDD](https://wpcraft.ru/kb/ai/coding/sdd.md), критерии приемки помогают выбрать сценарии тестирования. При этом не каждое требование удобно проверять unit-тестом: используйте подходящий уровень — модульный, интеграционный, системный или ручную проверку.

## Границы применения

TDD особенно полезен там, где поведение можно выразить конкретными примерами и проверять быстро. Для визуального качества, исследовательских прототипов и характеристик, зависящих от реальной инфраструктуры, тесты дополняют другими методами проверки. Не следует писать тесты только ради покрытия: важнее, чтобы они обнаруживали нежелательное изменение поведения.

## Материалы и источники

- [Исходное видео об AI-driven SDLC](https://www.youtube.com/watch?v=zbmuiaPuiNM)