Документация

Проверки, запуски и результаты

Анализ результатов проверки, классификация обнаруженных проблем и принятие решения о дальнейших действиях.

Проверка — проверка — это одна единица верификации. Запуск — запуск — это одно выполнение всех проверок в рамках политики по отношению к изменению кода. Найденная проблема — найденная проблема — это то, что зафиксировала проверка.

Результаты задачи находятся в её разделе Quality Control , а каждый запуск отслеживается в разделе Настройки → Activity.

Анализ запуска

В запуске отображаются все проверки, их результаты и вывод. Если верификация задачи завершилась неудачно, именно в запуске можно узнать причину.

Читайте информацию сверху вниз. Первая непройденная проверка обычно является основной причиной ошибки — последующие сбои часто являются её следствием. Ошибка сборки с последующими двенадцатью сбоями тестов — это одна проблема, а не тринадцать.

Результаты

Результаты формируются агентами-рецензентами, сканерами и контрольными механизмами. Каждый результат содержит информацию о том, что было обнаружено, где это произошло и насколько серьёзная проблема. Результат, относящийся к конкретной задаче, остаётся привязанным к этой задаче. Сбой теста, не привязанный ни к одной задаче, хранится в Factory до этапа Рецензирования, где его можно исправить или принять с указанием причины. Если проверка не может быть выполнена в рамках проекта — например, unit-тесты без тестового фреймворка — об этом будет указано в соответствующей строке в разделе Quality Control.

Жизненный цикл результатов:

  1. Выявлено — проверкой или рецензентом.
  2. Направлено — исправимые результаты возвращаются агенту разработчика для доработки; остальные прикрепляются к pull request.
  3. Решено — исправлено, принято или подавлено.

Выявлены

  • Консультативный шлюз
  • Агент-рецензент
  • Подключённый сканер

Направлены

Подлежат исправлению

Возврат разработчику на доработку

Все остальные

Прикрепляется к pull request

Решены

  • Исправлены

    Изменение устраняет проблему

  • Приняты

    Действительно, здесь не требуется вмешательство. Укажите причину.

  • Подавлены

    Ложное срабатывание или правило не применимо. Укажите причину.

Исправляемые замечания обрабатываются внутри запуска. Остальные попадают в pull request, и каждое замечание либо исправляется, либо принимается, либо отклоняется с указанием причины для последних двух случаев.

Триаж

Вопрос к каждому результату звучит не как «верно ли это?», а как «влияет ли это на дальнейшие действия?»

  • Исправить сейчас — корректность, безопасность и всё, что в любом случае приведёт к отклонению при проверке.
  • Принять — верно, но здесь нет необходимости предпринимать действия. Необходимо зафиксировать причину.
  • Подавить — ложноположительный результат или правило, не применимое к данному коду.

Подавляйте результаты осознанно и с указанием причины. Непояснённое подавление неотличимо от попытки скрыть неудобную правду, и через полгода никто не сможет определить, что именно произошло.

Если результатов слишком много

Количество результатов — это сигнал о настройках, а не о качестве кода.

Если проверка срабатывает для большинства изменений, она не выявляет проблемы — она описывает вашу кодовую базу. Либо правило не соответствует вашим стандартам, либо оно описывает технический долг, с которым вы решили мириться. В обоих случаях форма проверки неверна.

Результаты и шлюзы

Результат из рекомендательного шлюза — это информация. Тот же результат из блокирующего шлюза останавливает выполнение задачи. Сам результат идентичен; политика определяет его последствия.

Это рычаг, который следует использовать, когда проверка верна, но слишком агрессивна: измените её уровень серьёзности, а не удаляйте её. Подробнее — на странице Политики качества и шлюзы.