Что означает термин «итерация» в Agile и тестировании?

«Что означает термин «итерация» в Agile и тестировании?» — вопрос из категории Методологии разработки, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В контексте Agile-методологий и тестирования итерация (или спринт в Scrum) — это фиксированный по времени цикл работы (обычно 1-4 недели), в рамках которого команда выполняет полный набор задач: планирование, разработку, тестирование и поставку рабочего фрагмента продукта.

Роль итерации в тестировании:

  • Целостное тестирование: В каждой итерации тестируются все новые функции и проводится регрессионное тестирование.
  • Ритм и предсказуемость: Регулярные релизы создают стабильный рабочий цикл.
  • Фокус на качестве: Поскольку итог итерации — потенциально готовый к выпуску продукт, качество должно быть высоким на всех этапах.

Ключевые отличия от "фазы": Итерация — это не этап (вроде "фазы тестирования"), а полный мини-цикл разработки, где тестирование интегрировано в процесс.

Пример (концептуальный):

# Итерация как цикл в процессе разработки
backlog = ["Аутентификация", "Личный кабинет", "Оплата"]

for iteration_number, feature in enumerate(backlog, start=1):
    print(f"Итерация {iteration_number}: Разработка '{feature}'")
    # В рамках этой итерации:
    # - Пишется код для feature
    # - Пишутся и выполняются автотесты
    # - Проводится ручное тестирование
    # - Фича демонстрируется заказчику
    # - Собирается обратная связь