Как стать автором
Обновить

Svace: фича-реквесты для отечественного статического анализатора

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.8K

В прошлом году многие российские компании стали оперативно сертифицировать разрабатываемое ПО. Так я познакомилась со статическим анализатором Svace.

 До этого приходилось столкнуться в работе с десятком статических анализаторов, по большей части разработанными зарубежными компаниями. У всех них были предоставлены возможности, упрощающие использование и интеграцию в инфраструктуру, чего я не обнаружила в Svace. Статья будет полезна тем, кто только планирует использовать Svace, а также разработчикам этого анализатора. Вот наша история использования Svace в 2022 году.

Нет возможности глушить ложные срабатывания 

Обычно такая функциональная возможность предоставляется с помощью директив. Но здесь этой возможности нет. Это очень печально, когда не можешь убрать ненужное из списка срабатывания с помощью обычной разметки в коде. А это вроде как обычное дело даже для анализаторов, вышедших на рынок пару лет назад. Приходится изобретать велосипед. Зачем заставлять это делать своих клиентов - не понятно. 

UPD, комментарий официального представителя:

"эта возможность была добавлена в Svacer 4.0.0."

Но дело в том, что Svace и Svacer - разные продукты.

Не предоставляется никакой плагин для интеграции результатов в какую-то систему визуализации

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

Например, есть такие инструменты как SonarQube и TICS для визуализации результатов.

UPD, комментарий официального представителя:

"Для интеграции в сторонние системы вы можете воспользоваться форматом SARIF, специально разработанным для единообразной обработки результатов статических анализаторов: https://svacer.ispras.ru/mediawiki/index.php?title=Help:Sarif. Этот формат достаточно популярен и поддерживается большой частью таких систем, в том числе SonarQube. Мы сознательно концентрировали свои ограниченные ресурсы на обеспечении качества анализа вместо того, чтобы пытаться поддерживать разнообразные плагины для систем визуализации, которых достаточно много."

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

Web-интерфейс для просмотра отчётов содержит баги, что раздражает при работе

Фильтрация по файлам отчётов работает плохо, мягко говоря. Я не всегда могу снять галочку с файла/директории. Там какой-то баг, поэтому приходится снимать чекбокс с папки, кликая по всем подпапкам и файлам внутри него. Такой процесс мало похож на положительный опыт работы. Чекбокс, по которому не работает клик, всегда отображается серым. Проблема в том, что это происходило во всех репозиториях, для которых выполнялась проверка Svace-ом.

 Также нет быстрого и лёгкого способа отфильтровать файлы по части названия файлов: регулярные выражения в поисковой строке не работают, только по полному совпадению названия. А так бы хотелось иметь эту возможность.

UPD, комментарий официального представителя:

"Проблема с галочками проявлялась в редкой ситуации, когда в разных каталогах присутствуют файлы с полностью совпадающим содержимым. Эта проблема уже исправлена 27 июля, исправление войдёт в следующий релиз.

По снимку экрана видно, что вы использовали устаревший и неподдерживаемый интерфейс, который мы не рекомендуем уже несколько лет. Вместо него мы разработали намного более мощный и удобный интерфейс Svacer."

Фича пошагового просмотра воспроизведения проблемы выглядит странно и бесполезно

На станице производителя этот пункт указан как возможность инструмента, но я трудно представляю случаи, когда будет полезно увидеть целых пять шагов по нужной ветке кода для указания потенциальной проблемы кода. Как правило, самостоятельное отслеживание шагов прохождения кода не представляет непосильного труда, даже если вы начинающий программист. Я понимаю, что на эту реализацию уже потрачено много времени, но, как по мне, это бесполезная вещь. Подобную фичу я видела только в Svace.

После обновления до более новой версии Svace, время проверки кода выросло в более чем полтора раза

Это меня поразило. Сначала думала, что билд машины простаивают. Потом глянули, а это действительно сам анализ стал выполняться дольше. Допустим, вы добавили новые проверки, но серьёзно их стало почти в два раз больше? Как-то мало верится.

До начала работы со Svace, я ознакомилась с описанием на официальной станице производителя. Узнав, что "Svace – основной анализатор Samsung с 2015 года", мои ожидания и требования были, как к уже состоявшемуся продукту.

Возможно, Svace - действительно неплохая разработка, но упомянутые недостатки портят все первое впечатление. Продукт должен быть удобным и презентабельным, выгодным для компаний, использующих его. Если для его использования приходится тратить много дополнительного времени и денег, привлекательности в таком продукте становится меньше. По технической части статический анализатор тоже не показал выдающихся результатов. Как по мне, интересных ошибок в коде анализатор нашёл только две-три штуки. Результаты не очень. К тому же есть более достойные российские аналоги. Хотя для процесса сертификации аналогов нет – только Svace :)

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

А вы уже сертифицировали свое ПО?

Теги:
Хабы:
Всего голосов 11: ↑7 и ↓4+3
Комментарии19

Публикации

Истории

Ближайшие события

Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург