﻿# Почему статический анализ кода необходимо проводить регулярно, а не время от времени \(к примеру "каждый релиз"\)

Разрабатывая и помогая людям применять инструменты статического анализа кода, мы регулярно сталкиваемся с неэффективным подходом в использовании таких инструментов\. Разработчики запускают инструмент, находят и исправляют интересные программные ошибки, после чего запускают инструмент лишь время от времени\. Например, когда подходит срок выпуска очередной версии\. Это подход обречен на неудачу\. И я расскажу почему\.

Вообще в применении инструментов [статического анализа кода](https://pvs-studio.ru/ru/blog/terms/0046/) самый сложный и "труднопроходимый" этап – это его внедрение\. Дело в том, что любой подобный инструмент всегда выдает довольно много сообщений \(включая ложные срабатывания\) и при первых запусках таких сообщений будет много в любом случае\. Сквозь них надо как\-то "продраться" – либо исправить в коде, либо пометить как ложные срабатывания\. В любом случае, надо сделать так, чтобы анализатор больше не выдавал эти сообщения\. Сделав это, пользователи нередко откладывают инструмент в сторону до "следующего раза", например до подготовки следующей версии своего продукта\.

Это неправильно, поскольку тогда вновь накопится очень много сообщений от анализатора, и разбираться с ними будет просто лень\. Корректный вариант использования статического анализатора кода – это регулярный запуск инструмента и исправление обнаруженных проблем сразу же\. Например, запускать статический анализ можно вместе с ночными сборками ежедневно\.

Есть ещё одна более важная причина, почему запуск статического анализатора от случая к случаю крайне неэффективное действие\. Большинство ошибок, которые могли бы быть моментально выявлены статическим анализом кода, выявляются вместо этого с помощью других методов тестирования\. Цена и время исправления ошибки возрастает в несколько раз\.

В PVS\-Studio есть [механизм](https://pvs-studio.ru/ru/docs/manual/0001/), позволяющий запускать проверку кода из командной строки\. Этот вызов очень удобно вставить в процедуру ночных сборок\. В этом случае будет полностью проверяться все файлы проекта и на утро можно будет посмотреть отчет с обнаруженными новыми ошибками\.

Если проверка всех файлов выполняется очень долго \(что характерно для больших проектов\), то в PVS\-Studio возможно настроить проверку только некоторых файлов\. [Здесь](https://pvs-studio.ru/ru/docs/manual/0005/) описано как это можно сделать\. Если коротко, то можно либо проверять файлы, модифицированные за последний день \(или несколько дней\), а можно проверять только указанные в списке файлы \(сам список – это файл, заданный в командной строке\)\. В этом случае вы получите, во\-первых, каждое утро список новых обнаруженных проблем в коде, а, во\-вторых, на это потребуется совсем мало времени\. Настройка "[Check only Files Modified In](https://pvs-studio.ru/ru/docs/manual/0012/) \(проверять файлы за последний день\) может быть полезна и при ручном запуске PVS\-Studio в процессе написания кода\. Например, закончив правку большого фрагмента программы и добившись, что код компилируется, можно запустить PVS\-Studio\. Анализатор быстро проверит только те файлы, которые правились сегодня\.