SonarQube
SonarQube
| |
---|---|
![]() | |
![]() SonarQube Dashboard | |
Basisdaten
| |
Entwickler | SonarSource |
Erscheinungsjahr | 14. Dezember 2007 |
Aktuelle Version | 10.3 (November 2023) |
Betriebssystem | GNU/Linux, Microsoft Windows, macOS |
Programmiersprache | Java, Kotlin, Visual Basic, C, C++, JavaScript, TypeScript, PHP, Python, Terraform, COBOL, Cascading Style Sheets, HTML, Go, Objective-C, Swift, RPG, PL/SQL, Ruby, Scala, Transact SQL, XML, Visual Basic 6 |
Kategorie | Entwicklungswerkzeug |
Lizenz | GNU LGPL |
www.sonarqube.org |
SonarQube (ehemals Sonar[1][2]) ist eine Plattform für die statische Analyse und Bewertung der technischen Qualität von Quelltext. SonarQube analysiert den Quelltext hinsichtlich verschiedener Qualitätsbereiche und stellt die Ergebnisse über eine Website dar. SonarQube ist in Java programmiert, unterstützt aber neben der Analyse von Java-Programmen mit entsprechenden Plugins unter anderem die Programmiersprachen JavaScript, Groovy, Flex, PHP, PL/SQL, C#, Cobol, die des .Net-Frameworks und Visual Basic 6.[3]
Funktionsweise
[Bearbeiten | Quelltext bearbeiten]SonarQube besteht aus drei Komponenten:
- Einem Modul für Build-Management-Tools wie Apache Maven oder Apache Ant. Dieses analysiert (basierend auf weiteren Modulen) den Quelltext hinsichtlich verschiedener Qualitätsmerkmale.
- Einer Datenbank, in der die Ergebnisse der Qualitätsanalyse gespeichert werden.
- Einer Website für Management und Auswertung der Ergebnisse.
Durch diese Architektur ist sowohl eine Prüfung des Quelltextes auf dem Entwicklungsrechner möglich als auch eine Einbindung von SonarQube in den Entwicklungsprozess und eine Ermittlung der Qualitätsmetriken auf einem Build-Server für die kontinuierliche Integration.
SonarQube analysiert den Quelltext hinsichtlich folgender Qualitätsbereiche:
- Doppelter Code
- Abdeckung durch Modultests
- Komplexität
- Potentielle Fehler
- Kodierrichtlinien
- Kommentare
Modularer Aufbau und Erweiterungen
[Bearbeiten | Quelltext bearbeiten]SonarQube ist modular aufgebaut und integriert selbst einige bekannte Entwicklungswerkzeuge zur Analyse der Codequalität, darunter PMD und Checkstyle für die Erkennung von doppeltem Code und Prüfung von Kodierrichtlinien, FindBugs zum Aufdecken potentieller Fehler sowie Surefire und Cobertura zur Messung der Qualität der Modultests.
Neben der Anzeige der Ergebnisse der einzelnen Bereiche ermöglicht SonarQube das Herunterbrechen (engl. drill-down) der Ergebnisse bis auf die einzelne Metrik und Codezeile sowie die Verknüpfung der einzelnen Metriken und die Darstellung ihrer historischen Entwicklung.
SonarQube ermöglicht über einen Plugin-Mechanismus Erweiterungen zu integrieren. Neben den Erweiterungen für die Analyse zusätzlicher Programmiersprachen gibt es Plugins für ergänzende Metriken, Governance, Schnittstellen zu Entwicklungsumgebungen, Visualisierungen, Integration sowie zur Berechnung der technischen Schuld.[4]
Literatur
[Bearbeiten | Quelltext bearbeiten]- Brian Chaplin: Use Sonar to Develop a Quality Feedback Loop into the Build Cycle. Hrsg.: TheServerSide.com. 29. Juni 2010 (englisch, theserverside.com [abgerufen am 18. Juli 2010]).
- G. Ann Campbell and Patroklos P. Papapetrou: SonarQube in Action. Hrsg.: www.manning.com. Oktober 2013 (englisch, manning.com).
Weblinks
[Bearbeiten | Quelltext bearbeiten]Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ SONAR is becoming SONARQUBE ( des vom 24. Juli 2013 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis. SonarQube project mailing list
- ↑ Homepage
- ↑ Multi-Language | SonarQube. Abgerufen am 25. November 2017.
- ↑ Technical Debt Evaluation (SQALE) – SonarSource ( vom 26. April 2012 im Internet Archive)