SonarQube

01.10.2021


SonarQube (бывший Sonar) — платформа с открытым исходным кодом для непрерывного анализа (англ. continuous inspection) и измерения качества программного кода.

Поддерживает анализ кода и поиск ошибок согласно правилам стандартов программирования MISRA C, MISRA C++, MITRE/CWE и CERT Secure Coding Standards. Также распознаёт ошибки из списков OWASP Топ-10 и CWE/SANS Топ-25 ошибок программирования.

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

Принципы работы

SonarQube измеряет качество программного кода в соответствии с семью показателями (и соответствующими метриками) качества программного обеспечения, которые разработчики называют англ. Seven Axes of Quality:

  • Потенциальные ошибки
  • Стиль программирования
  • Тесты
  • Повторения участков кода
  • Комментарии
  • Архитектура и проектирование
  • Сложность

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

Во главу угла в SonarQube поставлено измерение качества в соответствии с концепцией технического долга (англ. technical debt), реализованное в виде плагина. Долг вычисляется в долларах и человеко-днях, а также по типам показателей, в процентах.

Возможности

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

Открытая версия программы поддерживает следующие плагины:

  • CSS
  • Erlang
  • Java Properties
  • JSON
  • Puppet

Для платной версии (Enterprise) доступны плагины:

  • ABAP (коммерческий плагин)
  • C/C++ (коммерческий плагин)
  • C#
  • COBOL (коммерческий плагин)
  • Flex / ActionScript
  • Groovy
  • Java
  • JavaScript
  • Objective-C (коммерческий плагин)
  • PHP
  • PL/I (коммерческий плагин)
  • PL/SQL (коммерческий плагин)
  • Python
  • Swift (коммерческий плагин)
  • VB.NET (коммерческий плагин)
  • Visual Basic 6 (коммерческий плагин)
  • Web
  • XML

C 2016 года для открытой версии SonarQube появился плагин для языка 1С.