Вебинар: Тимлид: ожидания, реальность и внутренние вопросы - 15.04
Статический анализатор PVS-Studio — это инструмент для поиска ошибок в коде на протяжении всего жизненного цикла проекта. В этой статье разберём основные особенности нашего анализатора, сценарии и варианты анализа, а также узнаем всё, что нужно знать для старта.

PVS-Studio — это статический анализатор кода и SAST-инструмент для поиска потенциальных ошибок и уязвимостей в исходном коде проектов на C, C++, C# и Java.
Работает на Windows, Linux и macOS, а из отечественных ОС на Astra Linux, altLinux и РЕД ОС. Анализатор имеет несколько сценариев работы и множество интеграций в различные инструменты. PVS-Studio — это B2B-решение, которым пользуются многие команды и компании по всему миру.
Работать с PVS-Studio можно в разных форматах: от использования как плагина для IDE до автоматизации проверок на вашем сервере. Выбор остаётся за вами. Конечно же можно (и нужно) использовать все варианты одновременно для дополнительной возможности обезопасить себя от ошибок посредством интеграции на всех этапах.
Один из самых удобных способов использования анализатора — запуск на машинах разработчиков с помощью плагина для IDE или консоли.
Это также самый универсальный подход по вариантам работы в различных платформах:
Этот вариант использования анализатора является эффективным благодаря раннему выявлению ошибок прямо во время разработки нового функционала или доработки существующего, позволяя быстро вносить изменения в код.
Но ограничиваться этим сценарием не стоит. Для дополнительной страховки — к примеру, от возможности попадания ошибок в систему контроля версий — лучше иметь второй уровень защиты — регулярный запуск статического анализатора на сборочном сервере.
Лучшим вариантом будет построение двухуровневой системы проверки исходного кода: локально на машинах разработчиков и на сборочном сервере. Чем раньше обнаружена ошибка, тем меньше стоимость и сложность её исправления. Также мы рекомендуем использование режима инкрементального анализа, который позволяет автоматически запускать проверку только изменённого кода после сборки проекта. Это позволяет оптимизировать и ускорить работу конвейера.
Проверка доступна для pull-request'ов, чтобы упростить процесс обзора кода. Даже в случае попадания ошибки в систему контроля версий её удастся своевременно выявить и исправить, что может спасти время, деньги и репутацию продукта.
Помимо плюсов раннего исправления, нужно учитывать важность именно регулярности статического анализа. Если анализировать изменения единожды, например, перед релизом, то это чревато проблемами:
Более подробно про регулярное использование PVS-Studio, интеграции в инструменты CI и рекомендации по настройке можно узнать на этой странице.
Помимо вашей внутренней инфраструктуры вы всегда можете настроить анализ на сервисах непрерывной интеграции в облаке. PVS-Studio интегрируется в большинство самых известных облачных CI. Полный список и инструкции к ним можно найти на этой странице.
Примечание. PVS-Studio можно использовать для анализа в режиме коммитов и слияния веток (pull/merge requests). В этом режиме можно проанализировать только те файлы, которые были изменены относительно текущего состояния ветки. Это сократит время анализа и упростит просмотр его результатов. Более подробно написано в документации.
Анализ проектов можно интегрировать в ночные сборки и каждое утро получать подробный отчёт о состоянии кодовой базы. Благодаря регулярному оперативному получению информации обо всех ошибках можно сразу исправлять проблемный код.
Отличительной особенностью этого сценария является то, что анализатор обладает всем контекстом проекта. Это повышает эффективность работы инструмента за счёт межмодульного анализа, который выявляет проблемы в разных частях программы.
К примеру, потенциальная ошибка возникла в одном файле (допустим, не проверили объект на null), а последствия случились в другом месте программы (обратились к этому объекту и произошёл NullReferenceException).
А чтобы ещё сильнее повысить эффективность статического анализатора, можно обратиться к инструментам контроля качества кода (веб-дашборд). Они позволяют улучшить взаимодействие с отчётом и дают возможность не менять привычный пайплайн работы. Благодаря им появляется дополнительный функционал взаимодействия с результатами анализа PVS-Studio: визуализация, объединение результатов и управление процессом устранения ошибок, а также многое другое.
Полный список поддерживаемых инструментов и инструкции к интеграциям можно найти в документации.
PVS-Studio — SAST-решение (Static Application Security Testing), которое ищет дефекты безопасности и помогает повысить защищённость кода.
Надёжность особенно важна в тех сферах, где дефекты ПО критичны, например в космической или медицинской отрасли, машиностроении. Ошибки в приложениях с высокими требованиями к надёжности могут привести к потерям миллионов долларов или даже человеческим жертвам.
Для написания надёжного кода разработчики используют специальные стандарты, например MISRA C, MISRA C++, AUTOSAR Coding Guidelines.
PVS-Studio помогает искать отклонения от этих стандартов. Таблицы соответствия диагностик PVS-Studio:
Защищённый код устойчив к атакам злоумышленников: SQL-инъекциям, XEE, XXE и т. д. Защищённость особенно важна в приложениях, которые работают с пользовательскими данными (в банковском ПО, веб-приложениях и т. д.).
Чтобы приложения были защищёнными, команды выстраивают цикл безопасной разработки (SSDLC). Один из его этапов — поиск проблем безопасности с помощью SAST (Static Application Security Testing).
Для написания безопасного кода также существуют специальные стандарты. Таблицы соответствия диагностик PVS-Studio списку потенциальных уязвимостей (CWE) и стандартам безопасной разработки:
Среди всех дефектов безопасности выделяют наиболее опасные и распространённые. Здесь можно узнать о том, как PVS-Studio помогает в борьбе с ними:
Помимо международных стандартов надёжности и безопасности PVS-Studio разрабатывается с учётом требований, предъявляемых к статическим анализаторам согласно ГОСТ Р 71207—2024. PVS-Studio выявляет критические ошибки и может использоваться при разработке безопасного программного обеспечения по ГОСТ Р 71207—2024 и ГОСТ Р 56939—2024.
Детальная информация по поддержке стандартов представлена в публикации: "Статический анализатор кода PVS-Studio в 2026: ГОСТ Р 71207, ГОСТ Р 56939, приказ ФСТЭК N117".
Статический анализатор PVS-Studio успешно применяется испытательными лабораториями, аккредитованными в системах сертификации средств защиты информации ФСТЭК России в рамках работ по сертификационным испытаниям программных продуктов. Более подробно про сертификацию ФСТЭК можно прочитать на этой странице.
Перед началом работы мы советуем ознакомиться с вариантами лицензий PVS-Studio и подобрать наиболее подходящую для вас.
PVS-Studio — это командный инструмент, поэтому у нас нет single user license. Лицензии пакетные по числу человек в команде. Однако у нас политика гибкого лицензирования, что упрощает работу с инструментом. Вот основные особенности:
Два основных типа лицензии
Team-лицензия
Team-лицензия предназначена для небольших команд. Предоставляется командам до 9 разработчиков (включительно).
Включает в себя базовую поддержку:
Включает в себя весь основной функционал анализатора, но имеет ряд функциональных ограничений, относящихся к инструментам управления качеством процесса разработки (недоступны автоматические уведомления, интеграция с облачными сервисами, ограничения на инкрементальный анализ и др.)
Примечание. Более подробно про то, что входит в разные виды лицензий PVS-Studio, можно прочитать на этой странице
Enterprise-лицензия
Лицензии Enterprise типа предназначены для средних и больших команд и не имеют ограничений по использованию возможностей анализатора. Одна Enterprise-лицензия также может использоваться сразу несколькими командами в компании, в том числе несколькими небольшими командами.
Включает в себя весь основной функционал анализатора и дополнительные особенности этого варианта лицензирования. В них входят:
Запросить пробную Enterprise-лицензию можно здесь.
Если вы только начали изучать инструмент статического анализа и хотели бы узнать, на что он способен, то можете воспользоваться механизмом Best Warnings. Он предназначен специально для первого знакомства со статическим анализатором PVS-Studio.
Этот механизм покажет наиболее важные и достоверные предупреждения в отчёте для вашего проекта. Чтобы отобразить самые интересные предупреждения, нужно нажать кнопку Best:

Отчёт содержит 10 предупреждений, на основе которых можно сделать вывод о потенциальной полезности остальных сообщений анализатора.
В PVS-Studio существует механизм массового подавления предупреждений. Он применяется, например, когда анализатор впервые внедряется в уже существующий проект и выдаёт большое количество предупреждений на весь код.
Для того, чтобы работать с инструментом на новом коде, но при этом иметь возможность вернуться к выданным на legacy-код предупреждениям, и используется массовое подавление.
В результате в отчёт будут попадать только предупреждения для нового кода. Использование этого режима не требует модификации файлов с исходным кодом проекта.
Подробнее об этом режиме можно почитать в документации.
Недавно в блоге мы начали новую серию материалов, где компании делятся опытом по работе с PVS-Studio.
В кейсе разбирается опыт внедрения анализатора в разработку сертифицируемой защищённой ОС: как PVS-Studio стал частью полного цикла безопасной разработки от интеграции в специальную версию IDE до регулярной проверки кода и прохождения сертификации.
Дополнительно рассматривается, как инструмент помогает соответствовать требованиям сертификационных органов.
Более подробно про опыт интеграции PVS-Studio написано в статье "Как СВД ВС использует PVS-Studio в сертифицируемой разработке защищённой ОС".
В кейсе компании Eltex — одного из крупнейших производителей сетевого оборудования в России — рассмотрели пример автоматизации поиска ошибок и снижения нагрузки на code review с помощью PVS-Studio.
В материале рассказываем, как инструмент встраивается в разработку и сборку проекта для выявления потенциальных уязвимостей на ранних этапах.
Более подробно про результаты интеграции PVS-Studio написано в статье "Как крупнейший в РФ производитель сетевого оборудования Eltex сделал разработку безопаснее благодаря PVS-Studio".
Если вы заинтересовались инструментом, то попробуйте анализатор на вашем проекте и составьте мнение об анализе сами. Получить пробную лицензию можно здесь.
Вы можете ознакомиться с полной версией документации по этой ссылке.
Если у вас остались вопросы про настройку анализатора или работу инструмента, вы можете задать их в комментариях под статьёй или в форме обратной связи.
0