SonarQube

Veröffentlicht auf 25. Juli 2017

SonarQube ist eine Software-Qualitätsanalyse Software basierend auf Java, zur statischen Analyse von Quellcode wie C/C++, Java, .NET Sprachen (C#, VB), PHP, PL/SQL, Python, JavaScript, Groovy und weiteren Sprachen wie z.B. XML.

Es bindet sich dabei optimal in die Entwicklungsumgebung ein und besitzt Schnittstellen zu bekannten 
* Konfigurationsmanagementwerkzeugen wie Git, SVN, CVS Jazz oder TFVC
* Entwicklungsumgebungen wie MS Visual Studio, Eclipse
* Bauwerkzeuge wie Ant, Maven, Gradle, MSBuild, Makefile
* Continuous Integration Servern wie Hudson, Jenkins, Bamboo, Travis CI, TeamCity, TFS

Die statische Code Analyse findet
* schlechten Stil und Codeeigenschaften
* Architekturelle Fehler
* Fehlermuster
* Performanceprobleme
* Komplexitätsprobleme
* Testabdeckungslücken (Clover, Cobertura)

Diese Fundorte können direkt in SonarQube im Quellcode bis auf die Codezeile hin analysiert, gereviewt und verwaltet werden. Ein Tool zum Codereview oder der Wechsel in die Entwicklungsumgebung wird hinfällig. Ebenso ist es möglich daraus Regeln für seine Continuous Integration Server zu definieren, "nur wer die Codequalität verbessert darf einchecken" oder unsere Software wird nur released wenn das Quality Gate mit folgenden Anforderungen bestanden wird.

Welche Fehler gefunden werden sollen kann von Hand eingestellt werden, eigene Standardregeln werden aber mitgeliefert. Wem das nicht reicht, kann Erweiterungen wie PMD, Checkstyle, FindBugs installieren oder sich einen eigenen Regelsatz (Code Convention oder Kodierrichtlinie, MISRA) als Profil zusammen basteln. Das ständige prüfen bezeichnet man als Continuous Inspection.

Anhand der Metriken lassen sich Trends über mehrere Wochen verfolgen und man kann feststellen, ob man besser wird oder wo es Probleme gibt. Zusammen mit einem CI Server und automatischen Tests ist also SonarQube eine echte Empfehlung für die Erstellung von qualitativer Software. Und auch mancher Projektmanager bekommt endlich mit, was in seiner Entwicklung eigentlich los ist.

Links:
https://docs.sonarqube.org
https://www.sonarqube.org

Kommerzieller Support kann hier angefordert werden:
https://www.sonarsource.com
 

Kommentiere diesen Post