Конспект «Тестирование ПО и обеспечение качества»

24 сентября 2025

Модуль «Модели, методологии и фреймворки в разрезе управления качеством программного продукта»

Общая цель модуля

  • Мы знакомимся с процессами разработки ПО с «вертолётного взгляда» — от общих моделей до конкретных методологий и фреймворков.
  • Важно понимать: каждая модель влияет на качество продукта, так как определяет, когда и как тестировщик подключается к процессу. Чем раньше он включён — тем больше влияние на качество конечного продукта.

Жизненный цикл разработки ПО

SDLC (Software Development Life Cycle) — концепция, описывающая этапы создания ПО от идеи до поддержки.

Основные модели разработки

  • Waterfall (каскадная модель)
    Линейная последовательность этапов, почти без возврата назад. Минус — сложно исправлять ошибки после запуска.
  • Prototyping model
    Создаётся быстрый прототип (черновик продукта), чтобы заказчик и команда могли проверить функционал и внести изменения до полноценной разработки.
  • Iterative & Incremental
    Продукт создаётся частями (итерациями). Даёт больше гибкости. Ошибки и недостатки выявляются раньше.
  • Спиральная модель
    Совмещает итеративный подход с анализом рисков: каждый цикл включает планирование, разработку, тестирование и оценку рисков перед следующим шагом. Циклы заканчиваются релизами новой версии или обновлениями текущей.
  • V-model
    Тестирование планируется параллельно с разработкой. Каждому этапу соответствует уровень тестирования.
  • Agile (гибкий подход, своеобразная «философия» разработки)
    Маленькие итерации, быстрые результаты, постоянная обратная связь. Основной стандарт сегодня.

Популярные Agile методологии и фреймворки

Scrum — фреймворк, где важны:

  • роли (Product Owner, Scrum Master, Dev Team)
  • события (Sprint, Daily Scrum, Planning, Sprint Review, Sprint Retrospective)
  • артефакты (Product Backlog, Sprint Backlog, Increment)
  • Тестировщик является частью команды разработки, тестирует инкременты в спринтах, тесно сотрудничает с разработчиками и Product Owner.

Kanban — метод управления работой, где важна визуализация и поток задач.

  • Принципы: визуализация задач на доске, ограничение Work in Progress (WIP), непрерывность процесса.
  • Инструмент: Kanban board (колонки, отражающие этапы процесса создания продукта в команде).
  • Фокус: баланс между загрузкой команды и скоростью выполнения, уменьшение задержек.
  • Тестировщик контролирует качество на своём этапе в потоке задач, обеспечивает быстрый отклик.

Lean — подход к организации процессов, ориентированный на создание максимальной ценности при минимальных потерях.

  • Принципы: ценность для клиента, устранение потерь, оптимизация потока создания ценности, непрерывное совершенствование.
  • Инструменты: Value Stream Mapping, Kaizen, Just-in-Time.
  • Фокус: минимизация «лишнего» (время, ресурсы, ошибки), повышение качества и эффективности.
  • Тестировщик помогает выявлять «потери» в процессах, указывает на ошибки и их причины, снижает дефекты, обеспечивает качество продукта минимальными усилиями.

Модели и роль тестировщика

Понимание модели = понимание, где и как тестирование встроено в процесс.

  • Waterfall — тестировщик подключается в конце, проверяет готовый продукт; ограниченное влияние на качество.
  • Prototyping model — тестировщик проверяет прототип, собирает отзывы пользователей, фиксирует несоответствия и помогает уточнить требования, чтобы избежать ошибок в будущем продукте.
  • Спиральная модель — тестировщик участвует на каждом витке спирали: оценивает риски, тестирует прототипы, даёт обратную связь перед переходом к следующему циклу.
  • Iterative — тестировщик проверяет каждую новую часть продукта; постепенно накапливает сценарии тестирования.
  • V-model — тестировщик участвует с самого начала, планирует тесты параллельно с разработкой; каждый этап имеет свой уровень тестирования.
  • Agile — тестирование интегрировано в команду, постоянное, тестировщик участвует во всём процессе.