Quality Gates (контрольные точки качества) — это набор критериев, которые должны быть выполнены до перехода к следующей фазе жизненного цикла разработки программного обеспечения (SDLC).
Примеры:
-
Планирование (Requirements/Design Phase):
- Требования задокументированы, однозначны и верифицируемы.
- Архитектура и дизайн утверждены.
- Оценки объемов работ согласованы.
-
Разработка (Development Phase):
- Успешное прохождение юнит-тестов (определенный процент покрытия кода).
- Прохождение статического анализа кода (отсутствие критических ошибок и нарушений стиля).
- Ревью кода проведено и приняты исправления.
-
Тестирование (Testing Phase):
- Прохождение интеграционных тестов.
- Прохождение системных тестов.
- Прохождение регрессионных тестов (определенный процент успеха).
- Приемочные тесты успешно выполнены (или есть список утвержденных дефектов для пропуска).
- Уровень критичности открытых дефектов соответствует критериям (например, нет критических или блокирующих дефектов).
- Покрытие тестами (например, требование к покрытию функциональности).
- Тестирование производительности и безопасности, если применимо, прошло успешно или с приемлемыми результатами.
- Документация (например, пользовательская, техническая) актуализирована.
-
Релиз (Release Phase):
- Все необходимые артефакты сборки готовы.
- План развертывания утвержден.
- План отката (rollback) утвержден.
- Выполнено тестирование в предпродакшен среде (UAT, Staging).
-
Поддержка (Maintenance Phase):
- Документация по решению проблем обновлена.
- Мониторинг настроен и функционирует.
Инструменты, которые используются для автоматизации Quality Gates:
- CI/CD системы: Jenkins, GitLab CI, GitHub Actions (для запуска тестов, анализа кода).
- Системы управления тестами: TestRail, Zephyr (для отслеживания результатов тестов).
- Инструменты статического анализа кода: SonarQube, Fortify, Checkstyle.
- Системы управления дефектами: Jira, Bugzilla (для отслеживания статуса дефектов).
- Инструменты покрытия кода: JaCoCo, Cobertura.
Пример интеграции Quality Gate в CI/CD пайплайн:
yaml