Bild von Softwarequalität auf dem Prüfstand: Wie Metriken verstehen und bewerten

29. Jul 2025

Softwarequalität auf dem Prüfstand: Wie Metriken verstehen und bewerten

Was versteht man unter Softwarequalität? Experten von sieber&partners zeigten in einem Wokshop anhand unserer eigenen Codebasen, wie sich Qualität objektiv messen lässt. Sie vermittelten praxisnahes Wissen zu ISO-Standards und Tools, die subjektive Eindrücke in messbare Metriken überführen, welche fachgerecht interpretiert werden müssen.

Was gute Softwarequalität ausmacht, haben Dominik, Benno und Salim von sieber&partners in einem Workshop eindrücklich aufgezeigt. Den Teilnehmenden war vor der Schulung klar, dass Qualität zählt – doch die Messbarkeit und die zugrunde liegenden Kriterien stellten für viele ein neues Feld dar. Das Highlight: Statt grauer Theorie analysierten die Experten gemeinsam mit uns zwei unserer internen Codebasen. So wurde das Thema nicht nur verständlich, sondern auch direkt anwendbar.

Warum brauchen wir eine hohe Softwarequalität

Eine hohe Softwarequalität ist für Unternehmen von entscheidender Bedeutung. Sie beeinflusst alle wichtigen Dimensionen eines Projekts: Kosten, Zeit, Risiko und Zukunftsfähigkeit.

Ein zentraler Aspekt ist die Kosteneffizienz und Ressourcenschonung, denn schlechte Qualität führt oft zu hohen Wartungs- und Reparaturkosten. Laut dem Consortium for Information & Software Quality beliefen sich allein die Kosten schlechter Softwarequalität in den USA auf über 2,41 Billionen Dollar im Jahr 2022 ( CISQ-Artikel ). Eine hohe Softwarequalität führt beispielsweise zu einer grösseren Zuverlässigkeit der Anwendungen, was Ausfallzeiten minimiert und die Produktivität der Nutzer steigert. Des Weiteren senkt sie langfristig die Kosten, da Fehler, die früh im Entwicklungsprozess entdeckt und behoben werden, deutlich weniger Aufwand verursachen als solche, die erst im produktiven Einsatz auftreten. Diese Fehlerreduktion kann auch zu einer Reduktion von schwerwiegenden finanziellen und sicherheitstechnischen Problemen führen. Eine hohe Qualität minimiert diese Risiken und schützt Unternehmen effektiv vor Cyberangriffen und Datenlecks.  Auch die Wartbarkeit der Software verbessert sich, sodass Anpassungen und Erweiterungen effizienter umgesetzt werden können, was wiederum die Agilität von Projekten unterstützt.

Positive Effekte zeigen sich auch in einem schnelleren Time-to-Market. Software mit hoher Qualität ermöglicht es, Neuerungen zügiger umzusetzen und Defekte schnell zu beheben, was die Wettbewerbsfähigkeit und die Kundenzufriedenheit verbessert. Dies geht Hand in Hand mit Nachhaltigkeit und Zukunftssicherheit: Gut wartbare Software erlaubt einfache Anpassungen und Weiterentwicklungen, ohne dass die gesamte Struktur überarbeitet werden muss, und macht Unternehmen so agiler und flexibler.

Letztlich bietet Qualitätssicherung einen strategischen Mehrwert, der über technische Aspekte hinausgeht und Teil der Unternehmensstrategie sein sollte. Sie stärkt das Vertrauen der Kunden und positioniert Unternehmen als verlässliche Partner im digitalen Markt. Unternehmen, die auf hohe Qualität setzen, sichern sich somit langfristig Wettbewerbsvorteile und eine stabilere Geschäftsgrundlage.

Was ist Softwarequalität? Eine Definition nach ISO 25010

Wir definieren Softwarequalität nach der internationalen Norm ISO/IEC 25010:2023. Dieser Standard betrachtet Qualität ganzheitlich und geht weit über die rein funktionale Korrektheit hinaus. Während die funktionale Eignung, also die Frage, ob die Software das tut, was sie soll, die Grundlage bildet, sind es oft die nicht-funktionalen Merkmale, die über den langfristigen Erfolg entscheiden.

Die Norm unterteilt Qualität in folgende zentrale Merkmale:

  • Funktionale Eignung: Die Software stellt die geforderten Funktionen korrekt, vollständig und angemessen bereit.
  • Leistungseffizienz: Die Anwendung reagiert schnell und nutzt Systemressourcen (wie CPU oder Speicher) effizient.
  • Kompatibilität: Die Software arbeitet nahtlos mit anderen Systemen und Komponenten zusammen.
  • Benutzbarkeit: Die Bedienung ist intuitiv, verständlich und für die Zielgruppe angenehm (hohe User Experience).
  • Zuverlässigkeit: Die Software läuft stabil, ist fehlertolerant und kann sich nach einem Ausfall schnell wiederherstellen.
  • Sicherheit: Die Anwendung schützt Daten und Systeme vor unberechtigtem Zugriff und Angriffen.
  • Wartbarkeit: Der Code ist modular, verständlich und leicht anpassbar, was zukünftige Änderungen vereinfacht.
  • Übertragbarkeit: Die Software kann einfach in einer anderen Umgebung (z. B. anderes Betriebssystem) installiert oder betrieben werden.

Wie wird Softwarequalität gemessen?

Die Messung von Softwarequalität ist vielschichtig, da jedes Merkmal einen eigenen Ansatz erfordert. Sicherheit wird beispielsweise durch Penetrationstests bewertet, während die Benutzbarkeit anhand von UX-Richtlinien und Nutzerfeedback überprüft wird.

Für uns als Softwareentwickler liegt der Fokus jedoch auf Metriken, die sich automatisiert direkt aus dem Quellcode ableiten lassen. Werkzeuge für die statische Code-Analyse spielen hier eine zentrale Rolle. In unserem Workshop haben wir  Sigrid  eingesetzt, doch auch etablierte Alternativen wie  SonarCloud  liefern wertvolle Einblicke.

Solche Tools analysieren die gesamte Codebasis und bewerten sie anhand definierter Kriterien. Ein typisches Beispiel: Sie erkennen, wie stark einzelne Komponenten voneinander abhängig sind (Kopplung), und leiten daraus eine präzise Bewertung der Modularität ab – eine entscheidende Grösse für die Wartbarkeit der Software.

© sieber&partners

Welche Kennzahlen bestimmen die Softwarequalität?

Tools wie Sigrid bewerten die Qualität anhand einer Vielzahl von Kennzahlen, die sich in verschiedene Bereiche gliedern lassen:

1. Wartbarkeit (Maintainability)

Die Wartbarkeit ist eine der wichtigsten Eigenschaften und wird durch mehrere Metriken erfasst, wie z. B.:

  • Volumen (System Size): Beschreibt die Gesamtgrösse der Codebasis. Grössere Systeme sind tendenziell komplexer und schwieriger zu warten.
  • Code-Duplikation: Identifiziert identische Code-Blöcke. Duplikate erhöhen den Wartungsaufwand und die Fehleranfälligkeit, da Änderungen an mehreren Stellen durchgeführt werden müssen.
  • Einheitenkomplexität (Unit Complexity): Misst anhand der McCabe-Metrik die Anzahl der möglichen Ausführungspfade innerhalb einer Code-Einheit. Hohe Komplexität erschwert das Testen und Verstehen des Codes.
2. Architekturqualität 

Hier werden strukturelle Aspekte bewertet:

  • Kopplung (Coupling): Analysiert die Abhängigkeiten zwischen verschiedenen Komponenten. Eine lose Kopplung ist erstrebenswert, da sie die Modularität und Wiederverwendbarkeit erhöht.
  • Team-Metriken: Kennzahlen wie der Bus Factor geben Aufschluss darüber, wie das Wissen im Team verteilt ist. Eine hohe Abhängigkeit von einzelnen Personen stellt ein Risiko dar.
  • Aktualität (Freshness): Bewertet, wie modern die eingesetzten Technologien und Komponenten sind.
3. Sicherheit und Abhängigkeiten
  • Open Source Health: Überprüft die verwendeten Open-Source-Bibliotheken auf bekannte Sicherheitslücken, Lizenzkonformität und Aktualität.
  • Sicherheit (Security): Scannt den Code gezielt nach bekannten Schwachstellenmustern, wie den  OWASP TOP 10  .

Zusätzlich wird auch die Testabdeckung gemessen, um zu ermitteln, welcher Anteil des Codes durch automatisierte Tests geprüft wird.

Die richtige Interpretation der Metriken

Es ist entscheidend, diese Kennzahlen nicht als absolute Wahrheiten, sondern als Indikatoren zu verstehen. Eine Komponente mit niedriger «Freshness» ist nicht zwangsläufig ein Problem, sie kann auch einfach stabil und ausgereift sein. Das Ziel dieser Analysen ist es, einen Dialog anzustossen: Sie heben potenzielle Problemzonen hervor und ermöglichen es dem Entwicklungsteam, fundierte Entscheidungen darüber zu treffen, wo sich eine Investition in die Code-Qualität wirklich lohnt.

Fazit

Zusammenfassend lässt sich sagen, dass Softwarequalität weit mehr als die Abwesenheit von Fehlern ist, sie bringt Nutzen für die Entwicklerinnen und Entwickler sowie für die Kunden. Die Norm ISO/IEC 25010:2023 bietet einen umfassenden Rahmen, um Qualität ganzheitlich zu betrachten. Durch den Einsatz von automatisierten Analysewerkzeugen und klar definierten Metriken wird diese Qualität messbar und greifbar. Entscheidend ist dabei, die Kennzahlen nicht als absolutes Urteil, sondern als Grundlage für einen konstruktiven Dialog zu nutzen. So können Entwicklungsteams fundierte Entscheidungen treffen und die Wartbarkeit, Sicherheit und Zukunftsfähigkeit ihrer Software nachhaltig sichern.


Schliessen
Stamp Icon-Print Icon-Clear
S
M
L
XL
XXL