Skip to content
IRC-CodingIRC-Coding
SoftwarequalitätMetrikenCode-CoverageCyclomatic ComplexityTechnical DebtMTTRFehlerrateSoftware-Metriken

Softwarequalität Metriken: Kennzahlen für bessere Software

Lerne die wichtigsten Metriken zur Messung von Softwarequalität: Code-Coverage, Cyclomatic Complexity, MTTR, Fehlerrate, Technical Debt und mehr.

S

schutzgeist

3 min read
Softwarequalität Metriken: Kennzahlen für bessere Software

Softwarequalität Metriken

Softwarequalität lässt sich nicht nur subjektiv bewerten, sondern auch messen. Metriken helfen Teams, den Zustand ihres Codes zu quantifizieren, Fortschritte zu verfolgen und potenzielle Probleme früh zu erkennen. Dieser Artikel stellt die wichtigsten Metriken vor und erklärt, wie Du sie sinnvoll einsetzt.

In a Nutshell

  • Metriken machen Softwarequalität objektiv und vergleichbar.
  • Code-Coverage, Komplexität, Fehlerrate, MTTR und Technical Debt sind zentrale Kennzahlen.
  • Metriken sollten immer im Kontext betrachtet werden, nie isoliert.
  • Eine Kombination aus technischen, prozessualen und betrieblichen Metriken liefert das beste Bild.

Kompakte Fachbeschreibung

Eine Metrik ist eine quantifizierbare Messgröße, die einen bestimmten Aspekt der Softwarequalität abbildet. Sie kann technische Eigenschaften des Codes messen, wie beispielsweise die Komplexität, oder prozessuale Aspekte, wie die Zeit bis zur Fehlerbehebung. Wichtig ist, dass Metriken als Indikatoren und nicht als alleinige Entscheidungsgrundlage verwendet werden.

Wichtige Metriken im Überblick

Technische Metriken

  • Code-Coverage: Anteil des Codes, der durch automatisierte Tests abgedeckt ist. Typische Ziele liegen zwischen 70 und 90 Prozent, je nach Projektkontext.
  • Cyclomatic Complexity: Misst die Anzahl der unabhängigen Pfade durch eine Funktion. Werte über 10 gelten oft als kritisch.
  • Cognitive Complexity: Bewertet, wie schwer Code für Menschen zu verstehen ist.
  • Code-Duplikate: Identifizieren wiederholter Code-Blöcke, die wartungsanfällig sind.
  • Technical Debt Ratio: Verhältnis von kostenpflichtigem Schulden-Code zur Gesamtkodebasis.

Prozessuale Metriken

  • Defect Density: Anzahl der Fehler pro Codegröße, beispielsweise pro 1.000 Zeilen Code.
  • Bug Escape Rate: Fehler, die die Qualitätssicherung durchlaufen und in Produktion auftreten.
  • Test Failure Rate: Anteil fehlgeschlagener Testläufe über Zeit.
  • Code Review Turnaround Time: Dauer, bis ein Review abgeschlossen ist.

Betriebliche Metriken

  • MTTR (Mean Time To Recovery): Durchschnittliche Zeit bis zur Wiederherstellung nach einem Ausfall.
  • MTBF (Mean Time Between Failures): Durchschnittliche Zeit zwischen zwei Ausfällen.
  • Availability: Prozentualer Anteil der Zeit, in der das System verfügbar ist.
  • Error Rate: Anteil fehlgeschlagener Requests im Betrieb.
  • Latency: Reaktionszeit von Schnittstellen oder Transaktionen.

Praxisbeispiel: Dashboard für ein Entwicklungsteam

Team-Qualitätsdashboard:

Tests:
- Code-Coverage: 82 Prozent
- Unit Test Failure Rate: 1,2 Prozent
- Integration Test Failure Rate: 0,5 Prozent

Code-Qualität:
- Durchschnittliche Cyclomatic Complexity: 6
- Code-Duplikate: 2,1 Prozent
- Technical Debt Ratio: 4,5 Prozent

Betrieb:
- Availability: 99,95 Prozent
- MTTR: 18 Minuten
- Error Rate: 0,3 Prozent

Prozess:
- Code Review Turnaround Time: 4 Stunden
- Bug Escape Rate: 3 pro Sprint
- Defect Density: 0,8 pro 1.000 Zeilen

Vorteile und Nachteile

Vorteile

  • Objektivität: Entscheidungen basieren auf Daten statt auf Bauchgefühl.
  • Frühwarnung: Negative Trends werden sichtbar, bevor sie kritisch werden.
  • Vergleichbarkeit: Teams und Projekte können sich anhand gleicher Kennzahlen messen.
  • Motivation: Klare Ziele fördern Qualitätsbewusstsein im Team.

Nachteile

  • Fokus auf falsche Ziele: Hohe Code-Coverage allein sagt nichts über Testqualität aus.
  • Gaming: Metriken können missbraucht werden, um Ziele zu erfüllen, ohne Qualität zu steigern.
  • Aufwand: Erfassung und Auswertung benötigen Werkzeuge und Zeit.
  • Kontextlosigkeit: Ein und dieselbe Metrik kann in verschiedenen Projekten unterschiedlich bedeuten.

Prüfungsrelevante Stichpunkte

  • Definition und Zweck von Softwaremetriken.
  • Unterschied zwischen technischen, prozessualen und betrieblichen Metriken.
  • Bedeutung und Interpretation von Code-Coverage und Cyclomatic Complexity.
  • Zusammenhang zwischen MTTR, MTBF und Availability.
  • Gefahren von isolierten oder manipulierten Metriken.

Typische Prüfungsfragen (mit Kurzantwort)

  1. Was misst Code-Coverage? Den Anteil des Codes, der durch Tests ausgeführt wird.

  2. Was ist Cyclomatic Complexity? Die Anzahl der unabhängigen Pfade durch eine Funktion oder ein Modul.

  3. Was bedeutet MTTR? Mean Time To Recovery, die durchschnittliche Zeit bis zur Wiederherstellung.

  4. Warum sollten Metriken nicht isoliert betrachtet werden? Weil sie sonst leicht missverstanden oder manipuliert werden können.

  5. Nenne eine betriebliche Metrik. Availability, Error Rate oder Latency.

Weiter im Softwarequalität Lernpfad

Der nächste Artikel im Softwarequalität Lernpfad behandelt Software Testing Grundlagen — Unit Tests, Integration Tests, E2E Tests, TDD und BDD als Fundament qualitativ hochwertiger Software.

Wichtigste Quellen

  1. https://iso25000.com
  2. https://martinfowler.com/bliki/CannotMeasureProductivity.html
  3. https://en.wikipedia.org/wiki/Software_metric
Zurück zum DEV Blog
Share:

Ähnliche Beiträge