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

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

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

Принципы работы SonarQube измеряет качество программного кода в соответствии с семью показателями (и соответствующими метриками) качества программного обеспечения, которые разработчики называют "Семью осями качества" ():

потенциальные ошибки; стиль программирования; тесты; повторения участков кода; комментарии; архитектура и проектирование; сложность.

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

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

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

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

Примечания

Литература

Категория:Свободное программное обеспечение, написанное на Java Категория:Программное обеспечение с лицензией GNU LGPL Категория:Статические анализаторы кода