В каких проектах или условиях применяется методология Waterfall?

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

Ответ

Waterfall (каскадная модель) применяется в проектах с четкими, неизменными требованиями, жесткими сроками и бюджетом, где процесс разработки проходит через последовательные, не перекрывающиеся этапы.

Типичные сценарии применения:

  • Регуляторные проекты: Разработка ПО для банков, медицинского оборудования, авиации, где каждый этап требует формального одобрения и аудита.
  • Проекты с фиксированным контрактом: Когда требования, сроки и бюджет зафиксированы в договоре с заказчиком.
  • Разработка аппаратного обеспечения: Где этапы (проектирование, производство, сборка) физически последовательны.

Плюсы Waterfall:

  • Простота управления: Четкий план, понятные этапы и контрольные точки.
  • Легкость оценки: Трудозатраты и бюджет проще оценить на старте.
  • Хорошая документация: Каждый этап завершается созданием детальной документации.

Минусы Waterfall:

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

Роль тестирования в Waterfall: Тестирование — это отдельный этап, начинающийся только после полного завершения разработки. Тест-планы создаются на основе спецификаций.

# Тестирование в Waterfall — это валидация против изначальных спецификаций
def test_calculator_waterfall():
    # Спецификация: "Калькулятор должен складывать два числа"
    calc = Calculator()
    # Тест выполняется строго по заранее написанному плану
    assert calc.add(2, 3) == 5  # Проверка соответствия спецификации
    # Новые пожелания (например, сложение трех чисел) не могут быть проверены без изменения контракта.