SonarQube

Pause

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

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

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

Общие сведения

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

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

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

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

Возможности

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

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

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

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

Примечания

  1. ↑ Sonar becomes the SonarQube platform | SonarSource. www.sonarsource.com. Дата обращения: 13 января 2016. Архивировано из оригинала 21 февраля 2016 года.
  2. ↑ Tags - SonarQube Documentation - SonarQube. docs.sonarqube.org. Дата обращения: 14 января 2016. Архивировано из оригинала 30 октября 2015 года.
  3. ↑ Rules - SonarQube. nemo.sonarqube.org. Дата обращения: 14 января 2016. Архивировано из оригинала 24 октября 2015 года.
  4. ↑ Campbell, Papapetrou, 2013, 1.1.1. Proven technologies.
  5. ↑ Campbell, Papapetrou, 2013, 1.3. Seven Axes of Quality.
  6. ↑ Campbell, Papapetrou, 2013, 1.3.2. Tests.
  7. ↑ Campbell, Papapetrou, 2013, 1.6.1. Technical debt.
  8. ↑ Campbell, Papapetrou, 2013, 1.2.3. Analyzing multilanguage projects.
  9. ↑ 1 2 Plugin Library - Plugins - SonarQube. docs.sonarqube.org. Дата обращения: 14 января 2016. Архивировано 20 января 2016 года.
  10. ↑ Other Plugins - Plugins - Doc SonarQube. docs.sonarqube.org. Дата обращения: 12 декабря 2017. Архивировано 28 ноября 2016 года.

Литература

  • G. Ann Campbell, Patroklos P. Papapetrou. SonarQube in Action. — Manning Publications, 2013. — ISBN 9781617290954.
Pause