SonarQube

SonarQube
Логотип программы SonarQube
Скриншот программы SonarQube
Интерфейс версии 10+
Тип Статический анализатор кода
Разработчик SonarSource
Написана на Java
Операционная система Кроссплатформенное
Дата выпуска 14 декабря 2007
Аппаратная платформа Java Virtual Machine
Последняя версия 10.2.1.78527 (сентябрь 2023 (2023-09))
Репозиторий github.com/SonarSource/s…
Лицензия GNU LGPLv3
Сайт sonarqube.org
Логотип Викисклада Медиафайлы на Викискладе

SonarQube (бывший Sonar[1]) — платформа с открытым исходным кодом для непрерывного анализа (англ. continuous inspection) и измерения качества программного кода (англ. Continuous Code 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].

Бесплатная версия программы поддерживает различные языки программирования, сценариев или разметки: Java, C Sharp, JavaScript/TypeScript, AWS CloudFormation, Terraform, Docker, Kubernetes, Kotlin, Ruby, Go, Scala, Flex, Python, PHP, HTML, CSS, XML, Visual Basic .NET[9]. Версия для разработчиков дополнительно поддерживает C, C++, Objective-C, Swift, ABAP, Transact-SQL и PL/SQL[10]. Корпоративная версия отличается поддержкой Cobol, PL/I, Apex, RPG и Visual Basic 6[11].

Примечания

  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. ↑ SonarQube Free & Open Source Community Edition (англ.). www.sonarsource.com. Дата обращения: 18 октября 2023. Архивировано 18 октября 2023 года.
  10. ↑ Try Now Developer Edition (англ.). www.sonarsource.com. Дата обращения: 18 октября 2023. Архивировано 18 октября 2023 года.
  11. ↑ Clean Code Programming Languages (англ.). www.sonarsource.com. Дата обращения: 18 октября 2023. Архивировано 18 октября 2023 года.

Литература

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