TDD (разработка через тестирование)
Практика разработки ПО, где тесты пишутся до фактического кода, следуя циклу: написать падающий тест, написать минимальный код для прохождения, затем рефакторинг.
Определение
TDD следует циклу "Red-Green-Refactor": Red (написать падающий тест), Green (написать минимальный код для прохождения теста), Refactor (улучшить код, сохраняя тесты зелёными). Этот подход гарантирует тестовое покрытие каждой фичи, поощряет простые дизайны и даёт мгновенную обратную связь. TDD был популяризирован Kent Beck как часть Extreme Programming (XP).
Почему это важно
Команды, практикующие TDD, сообщают о снижении плотности багов на 40-90%. TDD создаёт полный набор тестов как побочный продукт разработки, документирует ожидаемое поведение и позволяет уверенный рефакторинг.
Пример
Перед написанием валидатора паролей разработчик пишет тест: expect(validatePassword("abc")).toBe(false). Тест падает. Он реализует минимальную логику валидации для прохождения, затем рефакторит для ясности.