Что такое TDD

«Что такое TDD» — вопрос из категории Методологии разработки, который задают на 23% собеседований Менеджер Проектов. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

TDD (Test-Driven Development) — это методология разработки, при которой сначала пишут тест, а затем код, который его проходит.

Основные этапы TDD:

  1. Red — пишем тест для новой функциональности (он падает).
  2. Green — пишем минимальный код, чтобы тест прошел.
  3. Refactor — улучшаем код, сохраняя его работоспособность.

Пример (Python):

# 1. Red: тест для функции сложения
def test_add():
    assert add(2, 3) == 5  # Ошибка, т.к. `add` не существует

# 2. Green: минимальная реализация
def add(a, b):
    return a + b  # Теперь тест проходит

# 3. Refactor: можно оптимизировать, но в данном случае не нужно

Преимущества:

  • Чистый, тестируемый код.
  • Раннее выявление ошибок.
  • Уверенность при рефакторинге.

Недостатки:

  • Замедляет разработку на старте.
  • Требует дисциплины.