0511 874 590 50 info@agile-im.de

Qualitätssicherung mit SonarQube

SonarQube leistet einen wertvollen Beitrag zur technischen Qualitätssicherung. Es analysiert dazu den Sourcecode vieler Programmiersprachen, wie beispielswiese Java, C#, PHP, HTML und CSS. Dabei ermittelt es die technische Qualität und gibt das Analyseergebnis übersichtlich auf einer Webseite, dem Projekt Dashboard, aus.

Auf den ersten Blick können für ein Projekt folgende Werte entnommen werden:

  • Anzahl der Fehler und Schwachstellen
  • Codequalität und Höhe der technischen Schulden
  • Duplizierter Code als prozentualer Anteil und als Anzahl der Code Blöcke
  • Testabdeckung in Prozent und Anzahl der Unit Tests

Projektübersicht

Auf der linken Seite können diese Werte für den gesamten Code entnommen werden. Auf der rechten gelbmarkierten Seite sind zudem die Werte in der s. g. „Leak Period“ sichtbar. Die Leak Period ist frei definierbar. Üblicherweise ist dies die Zeit seit der vorherige Version bis heute. Scrum bzw. Agile Teams bekommen dadurch schnelles Feedback für ihre kurzen Releasezyklen.

Quality Gates

Sonar4Bitbucket und Sonar4Bamboo

Eine weitere wertvolle Funktion von SonarQube sind die Quality Gates. Diese können pro Projekt definiert werden. Sie stellen in Verbindung mit einem Continuous Integration Server sicher, dass nur Code in einer festgelegten Qualität in die Produktivumgebung gelangt. Als Beispiel kann eine Testabdeckung von 80% definiert werden.

Folgende Schwellwerte sind für einen Quality Gate definierbar:

  • Testabdeckung für neuen Code
  • Neue Fehler
  • Neue Schwachstellen
  • Technische Schulden am neuen Code

Nutzergruppe

Visuelle Darstellung der Testabdeckung

Für einen IT-Manager oder Product Owner sind die Übersicht der Projekte und die Projektansicht interessant. Dort lassen sich schnell und einfach die Werte für die Qualitätssicherung einsehen. Qualitätsverantwortliche legen in SonarQube die Quality Gates und die Richtlinien zur Auswertung der Fehler, Schwachstellen und Codequalität fest.

Die Hauptnutzergruppe sind Entwickler. Sie können dazu per Klick auf die jeweiligen Werte in die Tiefe abtauchen und die exakten Codestellen ausfindig machen die verbesserungswürdig sind. Als Hilfestellung können Erklärungen eingeblendet werden, die den Grund zur Verbesserung beschreiben. Weiter leistet SonarQube gute Dienste beim Schreiben von verschachtelten If-Else-Zweigen, damit kein Zweig vergessen wird.

SonarQube soll nicht dazu dienen herauszufinden wie gut oder schlecht ein Entwicklerarbeitet. Vielmehr hilft es den Qualitätsgedanken in die Unternehmenskultur einzubringen und gute Qualität in die tägliche Arbeit zu integrieren.

Integration in Atlassian Bitbucket und Bamboo

SonarQube Integration in Bitbucket und Bamboo

Für Bitbucket und Bamboo gibt es jeweils SonarQube Integrationen. Sind beide Integrationen im Einsatz, erfolgt vor jedem Pull Request eine Analyse durch Sonar und der Entwickler bekommt ein schnelles Feedback zur Qualität. Dies ist daher zur Qualitätssicherung im DevOps Umfeld sehr wertvoll

Im Detail bedeutet dies, dass Bamboo nach einem erfolgreichem Build eine Sonar Analyse startet. Im Pull Request in Bitbucket werden danach die genauen Ergebnisse auf Codezeilen Ebene ausgegeben. Der Entwickler muss dazu beim Code Review Bitbucket nicht verlassen.

Die Testabdeckung und duplizierter Code werden farblich dargestellt und ermöglichen somit ein schnelles Auffinden. Durch einen definierten Quality Gate in SonarQube kann bereits in Bitbucket ein Merge-Check durchgeführt werden. Dieser stellt sicher, dass nur Code in bestimmter Qualität in den Master-Branch gelangt.

Quellen und Links zum Weiterlesen

Wir sind Ihr Atlassian-Partner!

Sie möchten Atlassian Tools neu einführen oder besser ausschöpfen? Ihre Mitarbeiter möchten sich gern mehr um ihr Geschäft kümmern anstatt um Aktualität und Struktur Ihrer Atlassian Landschaft? Sie möchten, dass Ihre Tools an Ihren Entwicklungsprozess angepasst werden? Mit unserer langjährigen Erfahrung unterstützen wir Sie gern bei der Einführung und beim Betrieb oder Erweiterungen Ihrer Atlassian Produkte. Sprechen Sie uns unverbindlich an.

Bleiben Sie aktuell mit unseren AIM News!

Wir senden Ihnen alle wichtigen AIM News und Blog-Updates.

Sie wurden erfolgreich angemeldet!