пятница, 21 марта 2025 г.

Quality Gate - что это такое?

 С 2017 года я почти ничего не публиковал (и слава Богу :) ). В основном работал в полях, строил процессы, налаживал качество. Но вот в последнее время всё чаще ловлю себя на том, что одни и те же вопросы повторяются от коллег:

— Что такое Quality Gate?
— Почему CI не даёт собрать релиз?
— Как понять, что задача готова к выпуску?

Пожалуй, пора немного «выйти в эфир» и заняться просвещением — начнём с базового, но важного.


Что такое Quality Gate?

Quality Gate (он же «ворота качества») — это набор минимальных требований к коду, сборке или задаче, которые должны быть выполнены, чтобы продукт мог пройти дальше: в релиз, на тестирование или просто в основную ветку.

Если коротко — это фильтр, который автоматически (или вручную) определяет, «достаточно ли хорошо» мы сделали работу.


Примеры того, что может входить в Quality Gate:

  • Покрытие тестами выше 80%;
  • Нет багов с критическим приоритетом;
  • Нет новых уязвимостей;
  • Все тесты прошли в CI;
  • Нет "code smells" или технического долга сверх нормы.

Всё это может быть автоматизировано (например, в Jenkins или SonarQube), либо проверяться вручную — в QA-чеклистах, при ревью или приёмке задач.


Зачем это вообще?

Мы все хотим выпускать хороший продукт, но без системы легко скатиться в "на глазок" и «и так сойдёт». Quality Gate даёт:

  • Снижение числа багов на поздних этапах;
  • Раннее обнаружение проблем;
  • Прозрачные критерии готовности;
  • Экономию времени на ручной проверке.

По сути — это страховка от спешки и технического хаоса.


Что бывает, если не пройти?

Если хотя бы один критерий не выполнен — задача или сборка не может пройти дальше. Это не сбой системы — это сигнал: нужно что-то доработать.


Почему я решил об этом написать

Потому что чем больше команда, тем больше вариативности в понимании слова «готово». И чтобы не тратить время на бесконечные обсуждения «а почему нельзя слить», проще один раз договориться о чётких правилах.

Quality Gate — это не про контроль, а про предсказуемость.
И в условиях ограниченного времени и ресурсов — это одна из немногих гарантий, что мы не закопаемся в баги после релиза.


Комментариев нет:

Отправить комментарий