Назад к вопросам
Middle
77
questionbank

Какие вы знаете Quality Gates?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

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 пайплайн:

# Пример в .gitlab-ci.yml
stages:
  - build
  - test
  - analyze
  - deploy # После прохождения Quality Gate

build:
  stage: build
  script:
    - mvn clean install

test:
  stage: test
  script:
    - mvn test
  artifacts: # Сохранение результатов тестов
    paths:
      - target/surefire-reports/

analyze:
  stage: analyze
  script:
    - sonar-scanner # Запуск статического анализа через SonarQube
  allow_failure: false # Пайплайн упадет, если SonarQube Quality Gate не пройден
  variables:
    SONAR_TOKEN: $SONAR_TOKEN # Токен для доступа к SonarQube
    SONAR_HOST_URL: $SONAR_HOST_URL # Адрес SonarQube сервера

deploy:
  stage: deploy
  script:
    - echo "Deploying..." # Действие, которое произойдет только после успешного прохождения всех предыдущих стадий (включая Quality Gate)
  needs: # Указываем зависимости
    - analyze