Проверка — проверка — это одна единица верификации. Запуск — запуск — это одно выполнение всех проверок в рамках политики по отношению к изменению кода. Найденная проблема — найденная проблема — это то, что зафиксировала проверка.
Результаты задачи находятся в её разделе Quality Control , а каждый запуск отслеживается в разделе Настройки → Activity.
Анализ запуска
В запуске отображаются все проверки, их результаты и вывод. Если верификация задачи завершилась неудачно, именно в запуске можно узнать причину.
Читайте информацию сверху вниз. Первая непройденная проверка обычно является основной причиной ошибки — последующие сбои часто являются её следствием. Ошибка сборки с последующими двенадцатью сбоями тестов — это одна проблема, а не тринадцать.
Результаты
Результаты формируются агентами-рецензентами, сканерами и контрольными механизмами. Каждый результат содержит информацию о том, что было обнаружено, где это произошло и насколько серьёзная проблема. Результат, относящийся к конкретной задаче, остаётся привязанным к этой задаче. Сбой теста, не привязанный ни к одной задаче, хранится в Factory до этапа Рецензирования, где его можно исправить или принять с указанием причины. Если проверка не может быть выполнена в рамках проекта — например, unit-тесты без тестового фреймворка — об этом будет указано в соответствующей строке в разделе Quality Control.
Жизненный цикл результатов:
- Выявлено — проверкой или рецензентом.
- Направлено — исправимые результаты возвращаются агенту разработчика для доработки; остальные прикрепляются к pull request.
- Решено — исправлено, принято или подавлено.
Выявлены
- Консультативный шлюз
Агент-рецензент
- Подключённый сканер
Направлены
Подлежат исправлению
Возврат разработчику на доработку
Все остальные
Прикрепляется к pull request
Решены
Исправлены
Изменение устраняет проблему
Приняты
Действительно, здесь не требуется вмешательство. Укажите причину.
Подавлены
Ложное срабатывание или правило не применимо. Укажите причину.
Триаж
Вопрос к каждому результату звучит не как «верно ли это?», а как «влияет ли это на дальнейшие действия?»
- Исправить сейчас — корректность, безопасность и всё, что в любом случае приведёт к отклонению при проверке.
- Принять — верно, но здесь нет необходимости предпринимать действия. Необходимо зафиксировать причину.
- Подавить — ложноположительный результат или правило, не применимое к данному коду.
Подавляйте результаты осознанно и с указанием причины. Непояснённое подавление неотличимо от попытки скрыть неудобную правду, и через полгода никто не сможет определить, что именно произошло.
Если результатов слишком много
Количество результатов — это сигнал о настройках, а не о качестве кода.
Если проверка срабатывает для большинства изменений, она не выявляет проблемы — она описывает вашу кодовую базу. Либо правило не соответствует вашим стандартам, либо оно описывает технический долг, с которым вы решили мириться. В обоих случаях форма проверки неверна.
Результаты и шлюзы
Результат из рекомендательного шлюза — это информация. Тот же результат из блокирующего шлюза останавливает выполнение задачи. Сам результат идентичен; политика определяет его последствия.
Это рычаг, который следует использовать, когда проверка верна, но слишком агрессивна: измените её уровень серьёзности, а не удаляйте её. Подробнее — на странице Политики качества и шлюзы.