SonarQube: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
м бот: добавление заголовков в сноски; исправление двойных сносок, см. ЧаВо
пунктуация
(не показаны 44 промежуточные версии 22 участников)
Строка 1: Строка 1:
{{Карточка программы
'''SonarQube''' (бывший '''Sonar'''<ref>{{Cite web|url = http://sonarqube.15.x6.nabble.com/SONAR-is-becoming-SONARQUBE-td5010134.html|title = Sonar|author = |date = |publisher = }}</ref>) - это решение с открытым исходным кодом для непрерывного инспектирования качества кода.{{Карточка программы
| name = SonarQube
| name = SonarQube
| logo = Sonar-logo.png
| logo = Sonarqube-48x200.png
| screenshot = Sonar-snapshot.jpg
| screenshot = Sonarqube_hero@2x.webp
| caption =
| caption = Интерфейс версии 10+
| developer = SonarSource
| developer = SonarSource
| latest_release_version = 4.5
| latest_release_version = 10.2.1.78527
| latest_release_date = [[29 сентября]] [[2014 год]]а
| latest_release_date = {{start date and age|2023|09}}
| programming language =
| programming language = [[Java]]
| operating_system = [[Кроссплатформенное программное обеспечение|Кроссплатформенное]]
| operating_system = [[Кроссплатформенное программное обеспечение|Кроссплатформенное]]
| language =
| language =
| genre = [[Статический анализ кода|Статистический анализатор кода]]
| genre = [[Статический анализ кода|Статический анализатор кода]]
| license = [[GNU LGPL|Lesser GNU General Public License]]
| license = [[GNU LGPL|GNU LGPLv3]]
| website = http://www.sonarqube.org/
| website = http://www.sonarqube.org/
}}
}}
'''SonarQube''' (бывший '''Sonar'''<ref>{{Cite web|accessdate = 2016-01-13|title = Sonar becomes the SonarQube platform {{!}} SonarSource|url = http://www.sonarsource.com/company/news/sonarsource-news/sonar-becomes-the-sonarqube-platform/|publisher = www.sonarsource.com|deadlink = yes|archiveurl = https://web.archive.org/web/20160221154511/http://www.sonarsource.com/company/news/sonarsource-news/sonar-becomes-the-sonarqube-platform/|archivedate = 2016-02-21}}</ref>) — платформа с открытым исходным кодом для непрерывного анализа ({{lang-en|continuous inspection}}) и измерения качества программного кода.

Поддерживает анализ кода и поиск ошибок согласно правилам стандартов программирования [[MISRA C]], [[MISRA C++]], [[Common Weakness Enumeration|MITRE/CWE]] и [[CERT Secure Coding Standards]]. Также распознаёт ошибки из списков [[OWASP Top Ten|OWASP Топ-10]] и [[CWE/SANS Top 25 Coding Errors|CWE/SANS Топ-25 ошибок программирования]]<ref>{{Cite web|accessdate = 2016-01-14|title = Tags - SonarQube Documentation - SonarQube|url = http://docs.sonarqube.org/display/SONAR/Tags|publisher = docs.sonarqube.org|deadlink = yes|archiveurl = https://web.archive.org/web/20151030080810/http://docs.sonarqube.org/display/SONAR/Tags|archivedate = 2015-10-30}}</ref><ref>{{Cite web|accessdate = 2016-01-14|title = Rules - SonarQube|url = http://nemo.sonarqube.org/coding_rules|publisher = nemo.sonarqube.org|archiveurl = https://web.archive.org/web/20151024052047/http://nemo.sonarqube.org/coding_rules|archivedate = 2015-10-24|deadlink = yes}}</ref>.

Несмотря на то, что платформа использует различные готовые инструменты, SonarQube сводит результаты к единой информационной панели ({{lang-en|dashboard}}), ведя историю прогонов и позволяя тем самым увидеть общую тенденцию изменения качества программного обеспечения в ходе разработки{{sfn|Campbell, Papapetrou|2013|loc=1.1.1. Proven technologies}}.

== Принципы работы ==
SonarQube измеряет качество программного кода в соответствии с семью показателями (и соответствующими [[Метрика программного обеспечения|метриками]]) [[качество программного обеспечения|качества программного обеспечения]], которые разработчики называют {{lang-en|Seven Axes of Quality}}{{sfn|Campbell, Papapetrou|2013|loc=1.3. Seven Axes of Quality}}:

* Потенциальные [[баг|ошибки]] ;
* [[Стиль программирования]];
* [[Тестирование программного обеспечения|Тесты]];
* [[Don’t repeat yourself|Повторения участков кода]];
* [[Комментарии (программирование)|Комментарии]];
* [[Архитектура программного обеспечения|Архитектура]] и [[Проектирование программного обеспечения|проектирование]];
* Сложность.

Таким образом, тесты оцениваются не только с точки зрения успешности исполнения, но и по [[Критерий тестового покрытия|тестовому покрытию]] исходного кода{{sfn|Campbell, Papapetrou|2013|loc=1.3.2. Tests}}.

Во главу угла в SonarQube поставлено измерение качества в соответствии с концепцией [[Технический долг|технического долга]] ({{lang-en|technical debt}}), реализованное в виде плагина. Долг вычисляется в долларах и [[Человеко-день|человеко-днях]], а также по типам показателей, в процентах{{sfn|Campbell, Papapetrou|2013|loc=1.6.1. Technical debt }}.

== Возможности ==
SonarQube позволяет анализировать проекты, написанные на разных [[Язык программирования|языках программирования]], хотя для каждого делается свой анализ. Анализируемый язык необходимо указывать явным образом{{sfn|Campbell, Papapetrou|2013|loc=1.2.3. Analyzing multilanguage projects}}.

Бесплатная версия программы поддерживает различные [[Язык программирования|языки программирования]], сценариев или разметки: [[Java]], [[C Sharp]], [[JavaScript]]/[[TypeScript]], [[AWS CloudFormation]], [[Terraform]], [[Docker]], [[Kubernetes]], [[Kotlin]], [[Ruby]], [[Go]], [[Scala (язык программирования)|Scala]], Flex, [[Python]], [[PHP]], [[HTML]], [[CSS]], [[XML]], [[Visual Basic .NET]]<ref>{{Cite web|url=https://www.sonarsource.com/open-source-editions/sonarqube-community-edition/|title=SonarQube Free & Open Source Community Edition|lang=en|website=www.sonarsource.com|access-date=2023-10-18|archive-date=2023-10-18|archive-url=https://web.archive.org/web/20231018120828/https://www.sonarsource.com/open-source-editions/sonarqube-community-edition/|url-status=live}}</ref>. Версия для разработчиков дополнительно поддерживает [[Си (язык программирования)|C]], [[C++]], [[Objective-C]], [[Swift (язык программирования)|Swift]], [[ABAP/4|ABAP]], [[Transact-SQL]] и [[PL/SQL]]<ref>{{Cite web|url=https://www.sonarsource.com/plans-and-pricing/developer/|title=Try Now Developer Edition|lang=en|website=www.sonarsource.com|access-date=2023-10-18|archive-date=2023-10-18|archive-url=https://web.archive.org/web/20231018120823/https://www.sonarsource.com/plans-and-pricing/developer/|url-status=live}}</ref>. Корпоративная версия отличается поддержкой [[Кобол|Cobol]], [[ПЛ/1|PL/I]], [[Salesforce#Apex|Apex]], [[RPG (язык программирования)|RPG]] и [[Visual Basic|Visual Basic 6]]<ref>{{Cite web|url=https://www.sonarsource.com/knowledge/languages/|title=Clean Code Programming Languages|lang=en|website=www.sonarsource.com|access-date=2023-10-18|archive-date=2023-10-18|archive-url=https://web.archive.org/web/20231018120825/https://www.sonarsource.com/knowledge/languages/|url-status=live}}</ref>.

== Примечания ==
== Примечания ==
{{примечания}}
{{примечания}}


== Литература ==
{{empty}}
* {{книга | автор = G. Ann Campbell, Patroklos P. Papapetrou | заглавие = SonarQube in Action | издательство = Manning Publications | год = 2013 | isbn = 9781617290954 | ref = Campbell, Papapetrou}}
{{compu-soft-stub}}


{{compu-soft-stub}}
{{Изолированная статья}}
{{Стиль}}


[[Категория:Свободное программное обеспечение, написанное на Java]]
[[Категория:Свободное программное обеспечение, написанное на Java]]

Версия от 04:39, 7 декабря 2024

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

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].

Бесплатная версия программы поддерживает различные языки программирования, сценариев или разметки: 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.