Blogbeitrag

Verwendung und Verständnis von SonarQube Server für die Codeabdeckung

Manish Kapur photo

Manish Kapur

Senior Director, Produkte und Lösungen

Date

  • SonarQube
  • SonarQube Cloud
  • SonarQube Server

Inhaltsverzeichnis

  • Chevron right iconEinführung
  • Chevron right iconWas ist Codeabdeckung?
  • Chevron right iconEinrichten der Codeabdeckung im SonarQube-Server
  • Chevron right iconAnalyse der Codeabdeckung im SonarQube-Server
  • Chevron right iconInterpretation von Codeabdeckungsmetriken
  • Chevron right iconVorteile der Verwendung von SonarQube Server für die Codeabdeckungsanalyse
  • Chevron right iconSonar und Codeabdeckung
Probieren Sie SonarQube kostenlos aus

Einleitung

Wenn Sie sicherstellen, dass Ihr Code gründlich getestet wurde, können Sie ihn mit Zuversicht aktualisieren, da fehlgeschlagene Tests Funktionsprobleme schnell aufdecken. Außerdem trägt dies dazu bei, die Gesamtqualität und Zuverlässigkeit Ihrer Software aufrechtzuerhalten.


Eine wichtige Kennzahl zur Messung der Effektivität Ihrer Testmaßnahmen ist die Codeabdeckung.


SonarQube Server, eine leistungsstarke Lösung für die automatisierte Codeüberprüfung, lässt sich nahtlos in Testabdeckungstools integrieren und ermöglicht es Entwicklern, qualitativ hochwertigeren, sichereren und gründlich getesteten Code zu schreiben.


SonarQube Server unterstützt die Berichterstellung, Überwachung und Visualisierung der Codeabdeckung und hilft Teams dabei, hohe Codequalitätsstandards aufrechtzuerhalten.


Dieser Artikel befasst sich mit der Funktionsweise der Codeabdeckung in SonarQube Server und gilt auch für SonarQube Cloud, einschließlich der Einrichtung, Analyse und Interpretation.

Was ist Codeabdeckung?

Die Codeabdeckung, auch Testabdeckung genannt, misst den Prozentsatz Ihrer Codebasis, der durch Ihre automatisierten Tests abgedeckt wird. Sie zeigt, welche Teile der Codebasis durch Tests abgedeckt sind, welche nicht und welche Teile nur teilweise abgedeckt sind, und liefert so Einblicke in potenzielle Bereiche, die eine bessere Testabdeckung erfordern.


Eine geringe Codeabdeckung weist auf Bereiche hin, in denen Fehler oder Schwachstellen unentdeckt bleiben könnten und potenzielle Risiken in Produktionsumgebungen darstellen.


Typischerweise umfassen Codeabdeckungsmetriken:

  • Gesamtabdeckung: Der Prozentsatz des gesamten Codes, der durch Tests ausgeführt wird.
  • Zeilenabdeckung: Der Prozentsatz der durch Tests ausgeführten Codezeilen.
  • Verzweigungsabdeckung: Der Prozentsatz der durch Tests ausgeführten Kontrollflussverzweigungen (if-Anweisungen, Schleifen usw.).


Einrichten der Codeabdeckung in SonarQube Server

SonarQube Server dient als zentrale Drehscheibe, die sich nahtlos in gängige Codeabdeckungstools integrieren lässt. Es sammelt und präsentiert Abdeckungsberichte zusammen mit den Ergebnissen der statischen Codeanalyse und liefert klare Pass/Fail-Metriken, um sicherzustellen, dass Ihr Code den Qualitätsstandards entspricht.


Nachdem Sie ein Drittanbieter-Tool für die Erstellung des Berichts eingerichtet haben, konfigurieren Sie einfach den SonarScanner so, dass er weiß, wo sich die Berichte befinden, damit er sie abrufen und an SonarQube Server senden kann.


Er unterstützt den Import von Abdeckungsdaten in Formaten, die für verschiedene gängige Testtools und Sprachen spezifisch sind.


Für Tools, die nicht direkt unterstützt werden, bietet SonarQube Server ein generisches Format.

SonarQube Server unterstützt viele Programmiersprachen, darunter Java, C/C++, JavaScript, Python, .NET und PHP. Um die Berichterstellung zur Abdeckung zu aktivieren, müssen Sie Folgendes tun:

  • Ausführungswerkzeug für die Abdeckung: Richten Sie Ihr Ausführungswerkzeug für die Abdeckung so ein, dass es vor der SonarScanner-Analyse als Teil Ihrer Build-Pipeline ausgeführt wird.
  • Anpassung des Berichtsformats: Konfigurieren Sie das Ausgabeformat Ihres Ausführungswerkzeugs für die Abdeckung so, dass es den Anforderungen von SonarScanner entspricht. In einem Maven-basierten Java-Projekt können Sie beispielsweise das JaCoCo-Plugin verwenden, um Abdeckungsberichte zu erstellen.
  • SonarScanner-Parameter festlegen: Konfigurieren Sie die SonarScanner-Analyseparameter für die Testabdeckung mit den Speicherorten der Abdeckungsberichte, um die generierten Berichtsdateien zu importieren.


Bei jedem Build sammelt Ihr Abdeckungstool Abdeckungsdaten und gibt die Ergebnisse in einer oder mehreren Dateien aus (in der Regel separate Dateien für die Testabdeckung).


Anschließend importiert SonarScanner im Rahmen seines Analyseprozesses diese Dateien und sendet die Ergebnisse an den SonarQube-Server.


Der SonarQube-Server importiert nahtlos Abdeckungsdaten aus verschiedenen Tools und Sprachen. Er unterstützt auch ein generisches Format für benutzerdefinierte Konvertierungen, wodurch die Kompatibilität auch mit nicht unterstützten Tools gewährleistet ist.


Detaillierte Anleitungen für die folgenden Sprachen sind verfügbar:


Analyse der Codeabdeckung im SonarQube-Server:

Sobald Ihre Einrichtung abgeschlossen ist und die SonarQube-Server-Analyse läuft, können Sie die Ergebnisse der Codeabdeckung im SonarQube-Server anzeigen. Zu den wichtigsten Bereichen, die Sie erkunden sollten, gehören:

  • Projektübersicht: Das Dashboard bietet einen Überblick über die gesamte Codeabdeckung, einschließlich der Prozentsätze für die Zeilen-, Verzweigungs- und Methodenabdeckung.



  • Drilldown der Abdeckung: Sie können einen Drilldown zu bestimmten Modulen, Paketen und Klassen durchführen, um detaillierte Abdeckungsmetriken anzuzeigen. Auf diese Weise lassen sich ungetestete Codeabschnitte identifizieren, die möglicherweise zusätzliche Tests erfordern. Die Abdeckungsmetriken sind sowohl für den neuen als auch für den gesamten Code verfügbar.



Sie können auch die Abdeckungsanmerkungen im Dateikontext sehen, die anzeigen, ob der Code durch Unit-Tests abgedeckt, teilweise abgedeckt oder nicht abgedeckt ist.


  • Entwicklung der Abdeckung: SonarQube Server verfolgt die Abdeckung im Zeitverlauf, sodass Sie Verbesserungen oder Verschlechterungen Ihrer Testabdeckung über verschiedene Versionen und Commits hinweg überwachen können.


Interpretation von Codeabdeckungsmetriken

Die Codeabdeckung ist zwar eine wichtige Metrik, aber wenn man sich zu sehr auf eine 100-prozentige Codeabdeckung konzentriert, kann dies zu sinkenden Erträgen führen. Hier sind einige Richtlinien zur Interpretation:

  • Hohe Abdeckung ist nicht gleichbedeutend mit hoher Qualität: Eine hohe Codeabdeckung garantiert keine hochwertigen Tests. Stellen Sie sicher, dass Ihre Tests auch Randfälle und potenzielle Fehlerquellen abdecken.
  • Streben Sie eine aussagekräftige Abdeckung an: Streben Sie eine Abdeckung an, die Vertrauen in das Verhalten Ihres Codes schafft, anstatt sich ausschließlich auf das Erreichen eines hohen Prozentsatzes zu konzentrieren.
  • Abgleich der Abdeckung mit anderen Metriken: Die Codeabdeckung sollte zusammen mit anderen Qualitätsmetriken von SonarQube Server betrachtet werden, wie z. B. Code Smells, Bugs und Sicherheitslücken.



Vorteile der Verwendung von SonarQube Server für die Codeabdeckungsanalyse

  1. Verbesserte Zuverlässigkeit und Wartbarkeit: Eine höhere Codeabdeckung bedeutet, dass Ihre Tests mehr Codepfade ausführen, was dazu führt, dass Fehler früher im Entwicklungszyklus erkannt und behoben werden können.
  2. Erhöhtes Vertrauen der Entwickler: Ein wesentlicher Vorteil der Codeabdeckung ist das Vertrauen, das sie Ihnen bei der Durchführung von Änderungen gibt. Mit der Codeabdeckung können Sie die Auswirkungen Ihrer Änderungen sofort sehen: Wenn es unbeabsichtigte Nebenwirkungen gibt, schlagen die Tests sofort fehl. Dieses sofortige Feedback hilft, Probleme frühzeitig zu erkennen und gewährleistet die Stabilität Ihrer Codebasis. Eine gut getestete Codebasis mit hoher Codeabdeckung schafft Vertrauen bei den Entwicklern und verringert die Angst, neue Fehler in die Produktion einzuführen.
  3. Detaillierte Berichte: SonarQube Server bietet detaillierte Berichte zur Codeabdeckung, die ungetestete Abschnitte Ihres Codes aufzeigen. Diese Berichte schlüsseln die Abdeckung nach Zeilen und Dateien auf und vermitteln ein klares Bild Ihrer Testbemühungen. Berichte zur Codeabdeckung helfen dabei, Stakeholdern und potenziellen Kunden die Qualität und Gründlichkeit des Testprozesses zu demonstrieren.
  4. Verwertbare Erkenntnisse: SonarQube Server bietet mehr als nur die Angabe von Abdeckungsprozentsätzen, sondern liefert auch verwertbare Erkenntnisse im Kontext Ihrer Codebasis. Er hebt Bereiche mit geringer Abdeckung hervor und liefert Metriken wie nicht abgedeckte Zeilen und nicht abgedeckte Bedingungen. In der Dokumentation finden Sie alle Metriken, die SonarQube Server für die Testabdeckung meldet.

Sonar und Codeabdeckung:

SonarQube Server ermöglicht Entwicklern eine umfassende Codeabdeckung, indem es ihnen einen klaren Überblick über ungetestete Bereiche verschafft und umsetzbare Erkenntnisse mit Kontext liefert.


Es unterstützt Entwickler durch die Bereitstellung einer quantitativen Messung der Testwirksamkeit.


Diese Daten helfen Teams dabei, den Fortschritt bei der Erreichung von Testzielen zu verfolgen und fundierte Entscheidungen über die Zuweisung von Ressourcen für Testaktivitäten zu treffen.


Durch die Integration der Abdeckungsanalyse in Ihren Entwicklungs-Workflow können Sie sicherstellen, dass Ihre Codebasis gut getestet ist und hohe Qualitätsstandards einhält.


Denken Sie daran, dass die Codeabdeckung zwar wichtig ist, aber Teil einer umfassenderen Strategie zur kontinuierlichen Verbesserung der Codequalität sein sollte.


Sind Sie bereit, SonarQube Server für die Codeabdeckungsanalyse zu nutzen? Probieren Sie Developer Edition selbst aus.




Schaffen Sie Vertrauen in jede Zeile Code

Integrieren Sie SonarQube in Ihren Workflow und beginnen Sie noch heute mit der Suche nach Schwachstellen.

Image for rating

Über 120 G2-Bewertungen

LoslegenVertrieb kontaktieren
  • Follow SonarSource on Twitter
  • Follow SonarSource on Linkedin
language switcher
Deutsch (German)
  • Rechtliche Dokumentation
  • Vertrauenszentrum

© 2008-2024 SonarSource SA. All rights reserved. SONAR, SONARSOURCE, SONARQUBE, and CLEAN AS YOU CODE are trademarks of SonarSource SA.