SONARQUBEWas ist „SonarQube“?

SonarQube ist eine Open Source Plattform zur kontinuierlichen Überprüfung und Messung der Code Quality. Das Tool unterstützt die Codeanalyse und Fehlersuche gemäß den Regeln der MISRA C-, MISRA C ++ -, MITRE / CWE- und CERT Secure Coding-Standards. SonarQube erkennt die Programmierfehler aus OWASP Top 10 und CWE / SANS Top 25. Trotz der Tatsache, dass die Plattform verschiedene vorgefertigte Tools verwendet, bringt SonarQube die Ergebnisse in ein einziges Dashboard, um die Verläufe zu speichern und so den allgemeinen Trend zu erkennen, der die Softwarequalität während der Entwicklung ändert.

SonarQube besteht aus drei Komponenten:

  • Modul für Build-Management-Tools wie Apache Maven oder Apache Ant. Hier analysiert es (basierend auf anderen Modulen) den Quellcode auf verschiedene Qualitätsmerkmale.
  • Die Datenbank, in der die Ergebnisse der Qualitätsanalyse gespeichert sind.
  • Website zur Verwaltung und Auswertung der Resultate.

Mit dieser Architektur können die Entwickler den Quellcode auf dem Entwicklungscomputer überprüfen, SonarQube in den Entwicklungsprozess integrieren und Qualitätsmetriken auf dem Buildserver für die kontinuierliche Integration definieren.

SonarQube ist modular aufgebaut und vereint einige bekannte Entwicklungstools für die Analyse der Codequalität und Code Security, darunter PMD und Checkstyle zum Erkennen von doppeltem Code und zum Überprüfen von Codierungsempfehlungen, FindBugs zum Erkennen potenzieller Fehler sowie Surefire und Cobertura zum Messen der Qualität von Komponententests.

Mit SonarQube können die Entwickler nicht nur Ergebnisse nach bestimmten Bereichen anzeigen, sondern auch die Resultate nach einzelnen Indikatoren und Codezeilen aufschlüsseln sowie aparte Merkmale verknüpfen und deren historische Entwicklung veranschaulichen (Drilldown).

Mit SonarQube können die Entwickler Erweiterungen über einen Plug-in-Mechanismus integrieren. Neben Erweiterungen für die Analyse zusätzlicher Programmiersprachen gibt es Plug-ins für zusätzliche Indikatoren, die Verwaltung, Schnittstellen zu Entwicklungsumgebungen, Visualisierung, Integration und technische Schuldenberechnung.

Funktionsweise

SonarQube misst die Code Quality der Software anhand von sieben Indikatoren (und zugehörigen Metriken). Dies sind:

  • Mögliche Fehler
  • Programmierstil
  • Tests
  • Wiederholungen von Codeabschnitten
  • Kommentare
  • Architektur und Design
  • Komplexität

Tests werden daher nicht nur unter dem Gesichtspunkt einer erfolgreichen Ausführung bewertet, sondern auch anhand der Testabdeckung des Quellcodes. Im Vordergrund von SonarQube steht die Qualitätsmessung nach dem Konzept der technischen Verschuldung, die als Plug-in implementiert wird. Die Verschuldung wird in US-Dollar und Personen-Tagen sowie nach Indikatortypen in Prozent berechnet.

Mit SonarQube können die Entwickler mehrsprachige Projekte analysieren, obwohl für jede Sprache eine andere Analyse durchgeführt wird. Die analysierte Sprache muss explizit angegeben werden. Die Open Source Version des Programms unterstützt die folgenden Plug-ins:

  • CSS
  • Erlang
  • Java Properties
  • Json
  • Puppet

Für die kostenpflichtige Version (Enterprise) stehen folgende Plug-ins zur Verfügung:

  • ABAP
  • C / C ++
  • C #
  • COBOL
  • Flex / ActionScript
  • Groovy
  • Java
  • JavaScript
  • Objective-C
  • PHP
  • PL / I
  • PL / SQL
  • Python
  • Swift
  • VB.NET
  • Visual Basic 6
  • Web
  • XML

Seit 2016 ist ein Plug-in für die 1C-Sprache für die offene Version von SonarQube erschienen.

SonarQube unterstützt Entwickler bei der Sicherstellung der Qualität ihres Codes, indem der Quellcode nach bestimmten Regeln analysiert wird. Die Analyse besteht aus zwei Ebenen. Regeln können unter anderem unter Berücksichtigung des Grads der Codekomplexität, potenzieller Fehler, der Einhaltung der Code-Richtlinien, der Code Security, der Testabdeckung, der Codeduplizierung und der Kommentare erstellt werden. Qualitätsprofile setzen sich aus verfügbaren Regeln zusammen.

Qualitäts-Haltepunkte legen Maximal- oder Minimalwerte für Metriken wie Code Coverage> 80 % oder Sicherheitsbewertung A oder besser fest. Für jedes Projekt können individuelle hochwertige Profile festgelegt werden. Die Analyseergebnisse werden in einer Datenbank gespeichert und können über die Weboberfläche abgerufen werden. Durch die Integration von SonarQube in CI / CD-Pipelines kann der Entwicklungsprozess automatisch unterstützt werden.

Als Teil der Toolbox behält SonarQube die Codequalität bei. Testergebnisse können einfach über die SonarQube-Weboberfläche abgerufen oder auf Dashboards wie dem Cockpit übersichtlich angezeigt werden. Bei der Integration der Analyse in die Jenkins-Build-Pipeline gibt es zwei Möglichkeiten, wenn der Qualitätsschwellenwert nicht erreicht wird oder Fehler auftreten:

  • Entwickler brechen den Build mit einem Fehler ab.
  • Entwickeln mit der Warnung weiter.

 

Vor- und Nachteile von diesem Werkzeug

Vorteile

  • Erkennt Programmierfehler aus OWASP Top 10 und CWE / SANS Top 25
  • SonarQube unterstützt bis zu 27 Programmiersprachen für die Codeanalyse.
  • Dank seines modularen Aufbaus kann das Analysetool problemlos mit Plugins erweitert werden.

Nachteile

  • Kostenpflichtige Version für viele populäre Programmiersprachen

 

Verwandte Begriffe