Многие разработчики слышали о статическом анализаторе PVS-Studio, но не все знают, что анализатор можно использовать бесплатно на постоянной основе. В этой статье мы разберём, какие существуют варианты бесплатного лицензирования, для кого они подходят и как начать пользоваться инструментом.

Введение
PVS-Studio — это инструмент для поиска потенциальных ошибок и уязвимостей в коде на C, C++, C# и Java. Он работает на Windows, Linux и macOS и имеет множество сценариев интеграции: от плагина в IDE до использования в системах контроля версий или качества кода. В коммерческом сегменте PVS-Studio — платное B2B-решение, которым пользуются многие команды и компании по всему миру.
Команда PVS-Studio не только занимается разработкой анализатора: уже 17 лет мы участвуем в развитии технического сообщества, помогаем повышать качество и надёжность открытого ПО. Мы часто проверяем проекты сообщества, и благодаря нашим публикациям, было исправлено множество ошибок.
Существует множество некоммерческих проектов энтузиастов, которые заботятся о качестве кода. Но проверить все проекты своими руками мы не сможем, тем более учитывая, что они не всегда бывают в открытом доступе. Именно поэтому мы ввели несколько способов бесплатного лицензирования PVS-Studio.
Будет несколько статей на эту тему. В первой части мы разберём основные условия лицензирования и туториал по началу работы с анализатором. В других частях поговорим о том, как пользоваться инструментом и настроить его под свой проект. И, конечно же, разберём ошибки, которые нашёл анализатор в реальных проектах.
Примечание. Прежде чем появятся предложения о более "простом" способ в виде индивидуальных лицензий, сразу стоит сказать, что да, мы пробовали. Не вышло :) Если хотите узнать о результатах эксперимента, предлагаю ознакомиться с этой статьёй.
Получаем лицензию
Существует несколько вариантов бесплатного лицензирования статического анализатора кода PVS-Studio:
открытые проекты;
закрытые проекты;
для студентов и преподавателей;
для экспертов безопасности;
Microsoft MVP.
Давайте рассмотрим каждый из вариантов более подробно.
Примечание. Если вы хотите попробовать PVS-Studio, описанные в статье методы вам НЕ подойдут! Для знакомства с инструментом следует воспользоваться триальным ключом, который можно получить на этой странице. И только если вы решили, что хотите использовать PVS-Studio бесплатно, выберите подходящий способ из этой статьи.
Для открытых проектов
Если вы участвуете в разработке открытого проекта, то можете получить бесплатную лицензию PVS-Studio без ограничений.
Это самый популярный и простой способ бесплатного использования анализатора на постоянной основе. Если у вас открытый проект, мы рекомендуем использовать именно его.
Отметим, что проект должен быть размещён на GitHub, GitLab или Bitbucket. Чтобы получить лицензию, необходимо:
Перейти на эту страницу и ознакомиться с условиями лицензирования;
Выполнить условия лицензирования (упоминание в REAMDE.md и т.д.)
Ввести необходимые данные (почта, ссылка на проект);
Отправить запрос на бесплатную лицензию;
По истечении срока действия лицензии вы сможете этим же способом получить новый лицензионный ключ.
Примечание. Подробнее про условия лицензирования можно прочитать в статье "Статический анализ в open source проектах с помощью PVS-Studio".
Этот способ подразумевает упоминание PVS-Studio в README.md и коммитах/Pull Request'ах. Если вас не устраивает такой подход, вы можете воспользоваться способом из раздела "Закрытые проекты", который основан на комментариях в коде.
Закрытые проекты
Не все "небольшие" проекты лежат в открытом доступе. Они могут быть закрытыми, например инди-игры или академические проекты, и мы это понимаем.
Именно поэтому мы реализовали вариант бесплатного лицензирования, основанный на добавлении в код комментариев специального вида. Идея в том, что такие комментарии неприемлемы в больших корпоративных проектах, но программисты вполне могут добавлять их в свои индивидуальные проекты. Более подробно о причинах, почему был выбран именно такой подход, мы рассказали в этой статье.
Чтобы получить такую лицензию, необходимо выполнить основное условие: внести две строки с комментарием во все компилируемые файлы проекта. Комментарии отличаются в зависимости от направления проекта.
Примечание. Имеются в виду файлы с расширениями
.c
,.cc
,.cpp
,.cs
,.java
и так далее. Заголовочные h-файлы менять не требуется.
Если вы индивидуальный разработчик и хотите получить лицензию, комментарий должен быть таким:
// This is an independent project of an individual developer. Dear PVS-Studio, please check it.
// PVS-Studio Static Code Analyzer for C, C++, C#, and Java: https://pvs-studio.com
Помимо этого, для открытых проектов такой вариант лицензирования тоже доступен, как альтернатива способу из раздела "Открытые проекты". Комментарий будет выглядеть так:
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
// PVS-Studio Static Code Analyzer for C, C++, C#, and Java: https://pvs-studio.com
После этого можно переходить к пункту "Установка".
Примечание. Помимо описанного здесь способа бесплатного использования анализатора, вы по-прежнему можете скачать с сайта триальную версию. Этот способ подходит для ознакомления с инструментом.
Автоматизация
Если в вашем проекте много файлов, можете воспользоваться вспомогательной утилитой. Необходимо указать ей, какой комментарий вставлять, и каталог с кодом. Затем утилита рекурсивно обойдёт все файлы в папке и вложенных папках, добавляя в файлы с исходным кодом соответствующие комментарии. Скачать утилиту вместе с исходным кодом можно здесь: how-to-use-pvs-studio-free.
Дополнительные детали и условия описаны в статье "Как использовать PVS-Studio бесплатно".
Студентам и преподавателям
Если вы являетесь студентом, преподавателем или представителем учебной организации, наша команда предлагает бесплатно воспользоваться инструментом PVS-Studio для изучения и практики использования статических анализаторов кода, а также углубления знаний и особенностей языков программирования.
Предоставление бесплатной лицензии подразумевает использование специальных комментариев в файлах. Условия и шаги для получения этой лицензии идентичны тем, что приведены в разделе "Закрытые проекты", и отличаются видом комментариев.
Комментарии для академической лицензии:
// This is a personal academic project. Dear PVS-Studio, please check it.
// PVS-Studio Static Code Analyzer for C, C++, C#, and Java: https://pvs-studio.com
Более подробно про этот способ лицензирования можно прочитать на этой странице.
Эксперты безопасности
Публичные эксперты в сфере информационной безопасности, которые, к примеру, занимаются поиском уязвимостей, могут обратиться к нам и получить бесплатную лицензию на использование анализатора PVS-Studio.
Для её получения и поддержки потребуется подтвердить свою деятельность в области безопасности и публичное участие в ней, например, наличие статей, публикаций и т.п. Эти детали будут уточнены в процессе общения.
Более подробно про данный способ лицензирования можно прочитать в статье "Предоставляем анализатор PVS-Studio экспертам безопасности".
Microsoft MVP
Мы уважаем вклад MVP специалистов в IT-комьюнити и хотели бы поддержать людей, которые привносят в сферу IT много хорошего.
Поэтому, если вы являетесь специалистом Microsoft MVP, мы будем рады подарить вам бесплатную лицензию PVS-Studio на год. Затем лицензию можно будет продлить.
Оставить заявку можно на этой странице.
Начало работы
Сначала стоит подготовьте окружение, которое поддерживает анализатор PVS-Studio. Системные требования и поддерживаемые интеграции вы можете найти в документации.
Как только вы выполните все условия выбранного способа лицензирования и получите ключ, можно переходить к установке. Её этапы зависят от того, как и где вы будете использовать анализатор.
Тестовым проектом, на котором рассмотрим опыт первого запуска, будет "OSU!" — известная open source игра на C#. В качестве IDE, куда мы будем интегрировать плагин PVS-Studio, возьмём Visual Studio 2022.
Примечание. Статический анализатор PVS-Studio можно использовать не только как плагин для IDE. Сценариев использования много: интеграция в CI/CD системы, системы проверки качества/безопасности кода, игровые движки и многое другое. Полный список возможных сценариев использования можно найти на нашей главной странице.
Установка
В качестве примера разберём сценарий с установкой плагина для Visual Studio из Marketplace.
Для начала в Visual Studio нужно перейти в меню управления плагинами (Manage Extensions) по пути Extensions > Manage Extensions и ввести в поиске PVS-Studio. В результатах появится нужный плагин:

Затем нужно нажать кнопку Download, и начнётся автоматическая загрузка установщика PVS-Studio для Windows. Он содержит не только сам плагин, но также ядро анализатора и вспомогательные инструменты.
Установщик попросит закрыть все активные процессы в доступных средах разработки и предложит на выбор плагины для всех установленных в системе IDE:

Ввод лицензии
Первое, что нужно сделать после установки, — ввести лицензию.
Установщик предложит вам ввести данные лицензии и активировать её. Это можно сделать сразу или позже через меню плагина. Вводим ключ из этапа "Получаем лицензию":

Если вы шли по сценарию с использованием комментариев в коде (пункт "Закрытые проекты"), то нужно ввести следующий ключ:
Ключ активации
License Name: PVS-Studio Free
License Key: FREE-FREE-FREE-FREE

Примечание. Процесс ввода лицензии подробно описан в документации.
После активации лицензии анализатор готов к работе.
Но не стоит забегать вперёд. Да, вы сразу можете запускать анализ проекта: наш инструмент работает "из коробки". Но мы настойчиво рекомендуем потратить немного времени на его настройку: ограничить файлы для анализа, включить/выключить разные диагностики и так далее. Это не только ускорит работу анализатора, но и позволит минимизировать процент ложных срабатываний. Подробнее тему настройки и работы с отчётом мы разберём в следующей части, а пока вы можете ознакомиться с документацией.
Если у вас остались вопросы касаемо лицензионной политики или любые другие, то задавайте их в комментариях под статьёй или в форме обратной связи.
Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Gleb Aslamov. How to get and use free PVS-Studio license. Part 1: Preparing and getting started.
ErshoFF
Может вы планируете написать статью с названием вроде "Почему статический анализатор не будет работать с языком 1С, и другие особенности кирилических ЯП".