Какие модели и методологии разработки ПО вы знаете?

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

Ответ

Каскадная (Waterfall) модель

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

Гибкие методологии (Agile)

  • Принцип: Итеративная и инкрементальная разработка короткими циклами (спринтами), быстрая обратная связь.
  • Scrum: Работа в спринтах (2-4 недели), роли (Product Owner, Scrum Master, команда), артефакты (бэклог продукта, бэклог спринта).
  • Kanban: Визуализация потока работ (доска Kanban), ограничение незавершенной работы (WIP), непрерывная поставка.

V-образная модель (V-Model)

  • Принцип: Расширение Waterfall, где тестирование планируется параллельно каждому этапу разработки.
  • Соответствие этапов:
    • Требования пользователя ↔ Приемочное тестирование (UAT).
    • Системные требования ↔ Системное тестирование.
    • Архитектура ПО ↔ Интеграционное тестирование.
    • Детальный дизайн ↔ Модульное (юнит) тестирование.
  • Схема:
    Требования → Архитектура → Дизайн → Кодирование
    ↓           ↓           ↓         ↓
    UAT   → Системное → Интеграц. → Юнит-тесты

DevOps

  • Принцип: Культура и практики, объединяющие разработку (Dev) и эксплуатацию (Ops) для ускорения жизненного цикла ПО.
  • Ключевые практики: Непрерывная интеграция (CI), непрерывная поставка/развертывание (CD), инфраструктура как код (IaC), мониторинг.

Спиральная модель (Spiral)

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