Конспект «Тестирование ПО и обеспечение качества»
Модуль «Модели, методологии и фреймворки в разрезе управления качеством программного продукта»
Общая цель модуля
- Мы знакомимся с процессами разработки ПО с «вертолётного взгляда» — от общих моделей до конкретных методологий и фреймворков.
- Важно понимать: каждая модель влияет на качество продукта, так как определяет, когда и как тестировщик подключается к процессу. Чем раньше он включён — тем больше влияние на качество конечного продукта.
Жизненный цикл разработки ПО
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 — тестирование интегрировано в команду, постоянное, тестировщик участвует во всём процессе.