Просмотр и разметка результатов анализа
Раздел "Отчёт"
Панель с исходным кодом
Центральная панель содержит вкладки для отображения исходного кода и документации к диагностическим правилам. При переходе к предупреждению вас автоматически перенесёт к соответствующей строке кода.
Нажатие на значок плитки отображает все скрытые вкладки.
Важно. Редактировать и сохранять файлы с исходным кодом можно только в редакции Atlas Viewer и только до того, как исходники будут запакованы в отчёт формата .pvsmap.
Панель просмотра предупреждений
Общий вид панели
Нижняя панель представляет собой таблицу с фильтрами для навигации по предупреждениям анализатора:
Основные элементы панели предупреждений:
- Имя открытого отчёта (доступно только в редакции Atlas Viewer;
- Меню с вариантами сохранений;
- Кнопки переключения предупреждений;
- Панель-фильтр выбора предупреждений по критичности;
- Панель-фильтр выбора предупреждений по категории;
- Панель-фильтр выбора предупреждений по статусу;
- Панель-фильтр выбора предупреждений по столбцам;
- Основная таблица с предупреждениями анализатора.
Таблица содержит столбцы с информацией о предупреждениях:
- Избранное. Позволяет отметить предупреждение как важное для дальнейшего анализа. Доступно только в редакции Atlas Viewer.
- Код. Отображает идентификатор диагностики. Используется для сортировки предупреждений по коду и быстрого перехода к их документации. По клику на код открывается справка с описанием диагностики и примерами исправления.
- Предупреждение. Основное описание проблемы, найденной анализатором. Используется для первичного понимания её сути без перехода в справку.
- Файл. Название исходного файла, в котором обнаружено предупреждение. Можно включить отображение полного пути к файлу или только имени файла.
- Строка. Номер строки в файле, где обнаружено предупреждение.
Дополнительные столбцы:
- Номер. Порядковый номер предупреждения в отчёте.
- Проект. Имя проекта, к которому относится файл с предупреждением.
- Статус. Статус, установленный у предупреждения.
- Критичность. Критичность, установленная у предупреждения.
- Дата. Дата последнего изменения строки, на которую указал анализатор.
- Автор. Автор последнего изменения строки, на которую указал анализатор.
- Ревизия. Хеш или номер ревизии строки, на которую указал анализатор.
Контекстное меню предупреждений
Для каждого предупреждения доступно контекстное меню:
Через него можно выполнить следующие действия:
- Показать полные пути: в столбце Файл будет отражён полный путь к файлу.
- Показать столбцы: позволяет включить или выключить отображение дополнительных столбцов таблицы.
- Разметить выделенные предупреждения по статусу: разметить несколько выбранных предупреждений одним статусом.
- Разметить все предупреждения из...: разметить предупреждения одним статусом по выбранному пути.
- Копировать выбранные предупреждения: сформирует текст из кода диагностики, предупреждения, имени файла и строки.
- Добавить выбранные предупреждения в избранное. Присутствует только в редакции Atlas Viewer.
Панель-фильтр выбора предупреждений по категории
Один из основных фильтров. Позволяет сосредоточиться на конкретных категориях анализа, которые будут интересны для проекта. Не позволяет включить отображение сразу всего, что нашёл анализатор.
Список категорий:
- General — основные авторские диагностические правила PVS-Studio.
- Optimization — диагностики поиска оптимизаций кода.
- ГОСТ Р 71207 — проверка кода на наличие предупреждений, описанных в ГОСТ Р 71207.
- CWE — диагностики для поиска потенциальных уязвимостей, соответствующих стандарту CWE (Common Weakness Enumeration).
- SEI CERT — диагностики для поиска потенциальных уязвимостей, соответствующих стандарту SEI CERT Coding Standards.
- OWASP ASVS — проверка кода на наличие предупреждений из международного стандарта OWASP Application Security Verification Standard.
- 64-bit Errors — диагностики для поиска ошибок портирования C или C++ кода на 64-битные системы.
- MISRA C 2012 — проверка кода на соответствие стандарту MISRA C 2012.
- MISRA C 2023 — проверка кода на соответствие стандарту MISRA C 2023.
- MISRA C++ 2008 — проверка кода на соответствие стандарту MISRA C++ 2008.
- MISRA C++ 2023 — проверка кода на соответствие стандарту MISRA C++ 2023.
- Customer Specific — предупреждения от диагностик, которые были реализованы по запросу клиентов, но не вписываются в основные категории.
- Analyzer's Fails — предупреждения об ошибках анализатора.
Диагностические правила, относящиеся к нескольким категориям, будут оставаться в таблице при выборе соответствующих категорий. Такие предупреждения не являются дубликатами, что позволяет размечать одну категорию, увеличивая процент разметки другой.
В разделе Статистика можно посмотреть распределение и процент разметки всех предупреждений в отчёте анализатора по категориям.
Панель-фильтр выбора предупреждений по столбцам
Фильтр по столбцам находится на скрываемой панели. Открывается с помощью кнопки с соответствующим значком. Поля ввода текста для фильтрации предупреждений доступны только для включённых столбцов.
Панель-фильтры выбора предупреждений по критичности и статусу
Эти фильтры предназначены для фильтрации предупреждений по ранее сделанной разметке. Её виды описаны в разделе Панель разметки.
Панель разметки
Правая панель разметки используется для классификации предупреждений и принятия решений по ним: отделение реальных дефектов от ложных срабатываний с помощью статуса и комментирования.
Статусы разметки:
- New — новое предупреждение анализатора. Статус может быть установлен только платформой.
- Resolved — предупреждение, которое больше не выдаётся на исходный код. Статус может быть установлен только платформой.
- Reopened — предупреждение, которому ранее статус Resolved, но оно снова появилось в коде. Статус может быть установлен вручную. При ручной разметке выступает альтернативой статусу New, который нельзя установить вручную.
- Confirmed — подтверждённая проблема, требуется исправление кода.
- Conflict — специальный статус, который устанавливается платформой при мерже нескольких отчётов с разметкой результатов анализа. Для разрешения конфликта необходимо вручную установить предупреждению другой подходящий статус.
- False Positive — ложное срабатывание анализатора.
- Wontfix — анализатор формально прав, но код не планируют исправлять.
Уровни критичности:
- Blocker;
- Critical;
- Major;
- Minor;
- Info.
Изначально у всех предупреждений базовый уровень критичности, который при необходимости можно изменить как в процессе разметки уже полученного отчёта, так и задать в профиле качества. При мерже нескольких отчётов с разметкой результатов анализа в случае несовпадения критичности автоматически устанавливается более критичный вариант из сравниваемых.
С разметкой доступно комментирование от имени пользователя.
Раздел "Статистика"
Раздел Статистика позволяет получить информацию о результатах анализа и разметки предупреждений в открытом отчёте анализатора:
Таблица содержит сводные данные по категориям диагностик и статусу разметки. Предупреждения анализатора могут находиться сразу в нескольких категориях, если это предусмотрено разработчиком анализатора. При разметке такого предупреждения процент разметки будет изменяться во всех связанных категориях.
Раздел позволяет сформировать итоговый отчёт разметки в формате HTML, который потом можно распечатать в PDF.