Qualitätsmanagement im Software-Lebenszyklus
In dieser Lerneinheit verstehst du die zentralen Aspekte der Qualitätsplanung und -steuerung im Software-Lebenszyklus. Du lernst konkrete Strategien kennen, wie Qualitätsziele in Softwareprojekten systematisch geplant und umgesetzt werden können. Diese Grundlagen helfen dir dabei, in der Praxis von Beginn an qualitativ hochwertige Software zu entwickeln und den Qualitätsstandard über den gesamten Entwicklungsprozess aufrechtzuerhalten.
Einführung
Ein Softwareprojekt läuft scheinbar gut. Das Team entwickelt fleissig, Features werden umgesetzt, der Kunde erhält regelmässig Updates. Doch kurz vor dem Release häufen sich plötzlich kritische Bugs. Die Deadline rückt näher, aber die Qualität stimmt nicht.

Wie hätte das Team frühzeitig erkennen können, dass die Qualität auf der Strecke bleibt?
Die Antwort liegt im Qualitätsmanagement: einem systematischen Ansatz, der Qualität nicht dem Zufall überlässt, sondern von Anfang an plant, überwacht und kontinuierlich verbessert.
In dieser Lerneinheit erfährst du, wie Qualitätsplanung und -steuerung funktionieren, was QA von QC unterscheidet und welche etablierten Modelle wie CMMI und SPICE dir helfen, Qualitätsprozesse zu strukturieren.
Lernziele
Nach dieser Lerneinheit kannst du:
- Die 5 Schritte der Qualitätsplanung benennen und anwenden
- Den Unterschied zwischen QA (Qualitätssicherung) und QC (Qualitätskontrolle) erklären
- Den PDCA-Zyklus als Grundlage kontinuierlicher Verbesserung beschreiben
- Die 5 CMMI-Reifegrade und ihre Bedeutung für die Prozessreife erläutern
- CMMI und SPICE vergleichen und geeignete Anwendungsbereiche benennen
Überleitung
Um Qualität systematisch zu erreichen, braucht es einen durchdachten Plan. Die Qualitätsplanung legt fest, welche Ziele erreicht werden sollen und wie der Weg dorthin aussieht.
Schauen wir uns an, wie ein solcher Plan entsteht und welche konkreten Schritte dazu gehören.
Was ist Qualitätsplanung?
Qualitätsplanung ist der erste Schritt im Qualitätsmanagement. Sie definiert, welche Qualitätsziele ein Softwareprodukt erreichen soll und wie diese Ziele systematisch verfolgt werden.
Dabei werden verschiedene Quellen berücksichtigt:
- Internationale Standards wie ISO/IEC 25010:2023 (der aktuelle Standard für Software-Qualitätsmodelle mit 9 Qualitätscharakteristiken)
- Gesetzliche Vorschriften je nach Branche (z.B. Datenschutz, Medizinprodukte)
- Interne Unternehmensrichtlinien und Best Practices
Das Ergebnis der Qualitätsplanung ist ein Qualitätsmanagementplan (QMP), der festlegt, welche Massnahmen während des gesamten Software-Lebenszyklus ergriffen werden.
Die 5 Schritte der Qualitätsplanung
Ein systematischer Qualitätsplan entsteht in fünf aufeinander aufbauenden Schritten:
1. Festlegung von Qualitätszielen Basierend auf den Anforderungen an das Softwareprodukt und den Erwartungen der Stakeholder (Kunden, Management, Nutzer) werden messbare Ziele definiert.
2. Identifikation relevanter Qualitätsstandards Welche Standards gelten? Das können internationale Normen sein (ISO/IEC 25010:2023), branchenspezifische Vorgaben oder unternehmensinterne Richtlinien.
3. Entwicklung des Qualitätsmanagementplans Der QMP dokumentiert konkret, welche Massnahmen ergriffen werden: Reviews, Tests, Audits und deren Zeitpunkte im Projektablauf.
4. Ressourcenplanung Welche Tools, Techniken und vor allem welches Personal wird für die Qualitätsmassnahmen benötigt?
5. Risikoanalyse Identifikation potenzieller Risiken, die die Qualität gefährden könnten, und Planung geeigneter Gegenmassnahmen.
Was ist Qualitätssteuerung?
Während die Qualitätsplanung den Weg definiert, sorgt die Qualitätssteuerung dafür, dass das Projekt auf diesem Weg bleibt. Sie überwacht den Fortschritt bezüglich der Qualitätsziele und greift bei Abweichungen korrigierend ein.
Wichtige Techniken der Qualitätssteuerung:
- Reviews und Audits: Systematische Prüfungen von Prozessen, Produkten und Dokumenten, um die Einhaltung von Standards sicherzustellen
- Testing: Durchführung verschiedener Testszenarien zur Identifikation und Korrektur von Softwarefehlern
- Benchmarking: Vergleich der eigenen Softwarequalität mit Branchenstandards oder Wettbewerbern
- Prozessmessungen: Sammlung und Analyse von Daten über die Effektivität der Entwicklungsprozesse
- Feedbackschleifen: Einrichtung von Mechanismen für Rückmeldungen von Anwendern und Stakeholdern
Qualitätsindikatoren messen
Um Qualität objektiv bewerten zu können, werden Indikatoren (Metriken) eingesetzt. Zwei klassische Beispiele:
Fehlerbehebungsrate:
(Anzahl behobener Fehler / Gesamtanzahl Fehler) × 100 = Prozent
Eine hohe Rate zeigt, dass identifizierte Fehler auch tatsächlich behoben werden.
Testabdeckung (Requirements Coverage):
(Anzahl getesteter Anforderungen / Gesamtanzahl Anforderungen) × 100 = Prozent
Zeigt, wie viele der definierten Anforderungen durch Tests abgedeckt sind.
Diese Indikatoren machen den Qualitätsfortschritt messbar und helfen, rechtzeitig gegenzusteuern.
Was ist Qualitätssicherung (QA)?
Qualitätssicherung (Quality Assurance, QA) umfasst alle präventiven Aktivitäten, die sicherstellen, dass der Entwicklungsprozess von Anfang an richtig aufgesetzt ist. QA ist prozessorientiert: Sie zielt darauf ab, Fehler gar nicht erst entstehen zu lassen.
Wichtige Aspekte der QA:
- Standards und Methodologien: Entwicklung und Implementierung von Verfahren zur Gewährleistung der Qualität
- Prozessbewertung: Regelmässige Überprüfung der Entwicklungsprozesse, um Schwachstellen zu identifizieren
- Schulungen: Sicherstellen, dass alle Teammitglieder die notwendigen Kenntnisse haben
- Dokumentation: Alle Phasen des SDLC werden dokumentiert, um Konsistenz und Nachvollziehbarkeit zu gewährleisten
QA fragt: “Machen wir die Dinge richtig?”
Was ist Qualitätskontrolle (QC)?
Qualitätskontrolle (Quality Control, QC) bezieht sich auf die reaktive Überprüfung des fertigen Produkts. QC ist produktorientiert: Sie identifiziert Defekte im Endprodukt, nachdem sie entstanden sind.
Wichtige Aspekte der QC:
- Testen: Verschiedene Testmethoden (Unit-Tests, Integrationstests, Performance-Tests) zur Überprüfung der Produktqualität
- Fehlermanagement: Erfassen, Kategorisieren und Priorisieren von gefundenen Defekten
- Validierung und Verifikation: Sicherstellen, dass die Software den Anforderungen entspricht und für den Gebrauch geeignet ist
QC fragt: “Machen wir die richtigen Dinge?”
QA und QC im Zusammenspiel
Obwohl QA und QC unterschiedliche Schwerpunkte haben, ergänzen sie sich im Software-Lebenszyklus. QA legt den Grundstein, QC überprüft das Ergebnis.
| Phase | Aktivität | Typ |
|---|---|---|
| Anforderungsanalyse | Sicherstellen, dass Anforderungen klar und vollständig sind | QA |
| Design | Bewertung des Designs auf Erfüllung aller Anforderungen | QA |
| Implementierung | Code-Reviews und statische Analyse | QC |
| Testing | Ausführen verschiedener Testarten | QC |
| Wartung | Änderungen unter QA-Prinzipien, Regressionstests | QA + QC |
Die Kernunterscheidung:
- QA ist prozessorientiert: Fokus auf Fehlervermeidung vor der Entstehung
- QC ist produktorientiert: Fokus auf Fehlerfindung nach der Entstehung
Der PDCA-Zyklus: Kontinuierliche Verbesserung
Qualitätsverbesserung ist kein einmaliges Ereignis, sondern ein kontinuierlicher Prozess. Der PDCA-Zyklus (auch Deming-Zyklus genannt) ist ein bewährtes Modell für iterative Verbesserung:
- Plan (Planen): Identifiziere Bereiche für Verbesserungen und setze spezifische, messbare Ziele. Was soll verbessert werden? Wie messen wir den Erfolg?
- Do (Durchführen): Implementiere die Verbesserungen zunächst auf kleiner Skala. Ein Pilotprojekt oder ein kleines Team testet die Änderung.
- Check (Prüfen): Überprüfe, ob die Änderungen den gewünschten Effekt hatten. Waren sie effektiv? Wurden die Ziele erreicht?
- Act (Handeln): Wenn erfolgreich: Implementiere die Änderungen auf grösserer Skala. Wenn nicht: Analysiere, warum nicht, und starte einen neuen Zyklus.
Der Zyklus wiederholt sich kontinuierlich, wodurch die Qualität schrittweise und nachhaltig verbessert wird.
Präventive Massnahmen und Tools
Neben dem reaktiven Ansatz (Fehler finden und beheben) gibt es präventive Massnahmen, die Fehler von vornherein vermeiden:
- Design Patterns: Bewährte Lösungsmuster für wiederkehrende Probleme reduzieren die Fehlerwahrscheinlichkeit. Mehr dazu in der Lerneinheit Entwurf und Architektur.
- Code-Reviews und statische Analyse: Code wird von anderen Entwicklern geprüft oder automatisiert analysiert, bevor er in die Codebasis integriert wird. Details hierzu in der Lerneinheit Implementierung und Coding.
- CI/CD-Pipelines: Continuous Integration und Continuous Deployment automatisieren Tests und Deployments. Dadurch werden Fehler schnell erkannt. Mehr dazu in der Lerneinheit Testing und Verifizierung.
- Schulungen und Weiterbildung: Kontinuierliche Weiterbildung in aktuellen Technologien und Methoden ist essenziell für nachhaltige Qualität.
CMMI: Das Reifegradmodell
CMMI (Capability Maturity Model Integration, aktuell Version 3.0, Stand 2023) ist ein Prozessverbesserungsansatz, der Organisationen hilft, ihre Prozesseffizienz zu messen und zu verbessern. Das Modell definiert 5 Reifegrade:
| Level | Name | Beschreibung |
|---|---|---|
| 1 | Initial | Prozesse sind ad-hoc und chaotisch. Erfolg hängt von Einzelpersonen ab. |
| 2 | Managed | Projekte werden geplant, durchgeführt, gemessen und kontrolliert. |
| 3 | Defined | Die Organisation hat standardisierte, dokumentierte Prozesse. |
| 4 | Quantitatively Managed | Prozesse werden quantitativ gemessen und kontrolliert. |
| 5 | Optimizing | Fokus auf kontinuierliche Prozessverbesserung und Innovation. |
Je höher der Reifegrad einer Organisation, desto vorhersagbarer und effizienter werden ihre Prozesse. Der Aufstieg von Level 1 zu höheren Stufen erfordert systematische Prozessverbesserungen und kulturellen Wandel.
Vorteile von CMMI:
- Verbesserte Kundenzufriedenheit
- Kürzere Entwicklungszeiten
- Reduzierte Risiken in Entwicklung und Wartung
SPICE: Prozessbewertung nach ISO/IEC 330xx
SPICE (Software Process Improvement and Capability Determination) ist ein internationaler Standard für Prozessbewertungen, offiziell bekannt als ISO/IEC 330xx (seit 2015, ersetzt ISO/IEC 15504). Die aktuelle Kernspezifikation ist ISO/IEC 33001:2015.
SPICE besteht aus zwei Dimensionen:
Prozessdimension Beinhaltet Prozesse in Kategorien wie:
- Kunden-Lieferanten-Prozesse
- Engineering-Prozesse
- Unterstützungsprozesse
- Management-Prozesse
Fähigkeitsdimension (Capability Levels 0-5)
| Level | Name | Beschreibung |
|---|---|---|
| 0 | Incomplete | Prozess existiert nicht oder erreicht Ziele nicht |
| 1 | Performed | Prozess erreicht seine Ziele |
| 2 | Managed | Prozess wird geplant, überwacht, angepasst |
| 3 | Established | Standardprozess existiert |
| 4 | Predictable | Prozess ist quantitativ vorhersagbar |
| 5 | Innovating | Prozess wird kontinuierlich optimiert |
Im Unterschied zu CMMI bewertet SPICE jeden Prozess einzeln auf einer Skala von 0-5. So können Organisationen gezielt die Prozesse verbessern, die für ihr Geschäft am kritischsten sind.
CMMI vs. SPICE: Wann was verwenden?
Obwohl CMMI und SPICE ähnliche Ziele verfolgen, unterscheiden sie sich in wichtigen Aspekten:
| Aspekt | CMMI | SPICE |
|---|---|---|
| Fokus | Interne Prozessverbesserung | Prozessbewertung (auch extern) |
| Struktur | Reifegrade und Kapazitätsstufen | Kontinuierliche und gestufte Bewertung |
| Anwendung | Grosse Organisationen | Flexibel, auch für Zertifizierung |
| Standard | CMMI Institute | ISO/IEC 330xx |
Praktische Anwendung:
- CMMI eignet sich besonders für Organisationen, die interne Prozesse standardisieren und langfristig verbessern möchten.
- SPICE ist flexibler einsetzbar und dient sowohl internen Verbesserungen als auch externen Bewertungen oder Zertifizierungen.
Viele Organisationen kombinieren beide Ansätze: Eine SPICE-Bewertung liefert den Ist-Zustand, CMMI-Praktiken definieren dann konkrete Verbesserungsmassnahmen.
Zusammenfassung und Ausblick
Zusammenfassung
Qualitätsmanagement im Software-Lebenszyklus umfasst drei zentrale Bereiche: Planung, Steuerung und Verbesserung.
Die Qualitätsplanung definiert Ziele und Strategien in fünf Schritten: Ziele festlegen, relevante Standards identifizieren (wie ISO/IEC 25010:2023), einen Qualitätsmanagementplan entwickeln, Ressourcen planen und Risiken analysieren. Das Ergebnis ist ein dokumentierter Plan, der festlegt, welche Massnahmen während der Entwicklung ergriffen werden.
Die Qualitätssteuerung überwacht den Fortschritt mittels Reviews, Tests, Benchmarking und Feedbackschleifen. Indikatoren wie die Fehlerbehebungsrate und Testabdeckung machen den Qualitätsstand messbar:
Fehlerbehebungsrate = (Behobene Fehler / Gesamtfehler) × 100
Testabdeckung = (Getestete Anforderungen / Alle Anforderungen) × 100
Bei der Unterscheidung von QA und QC gilt: Qualitätssicherung (QA) ist prozessorientiert und präventiv. Sie zielt darauf ab, Fehler durch gute Prozesse zu vermeiden. Qualitätskontrolle (QC) ist produktorientiert und reaktiv. Sie identifiziert Fehler im fertigen Produkt. Beide ergänzen sich: QA in frühen Phasen (Anforderungen, Design), QC in späteren Phasen (Implementierung, Testing).
Der PDCA-Zyklus (Plan-Do-Check-Act) bietet ein Rahmenwerk für kontinuierliche Verbesserung: Verbesserungen werden geplant, im Kleinen getestet, überprüft und bei Erfolg breit ausgerollt.
Für die Prozessreife stehen zwei etablierte Modelle zur Verfügung. CMMI (Version 3.0, 2023) definiert 5 Reifegrade von Initial bis Optimizing und eignet sich für interne Prozessverbesserung. SPICE (ISO/IEC 33001:2015) bietet ein flexibleres Framework mit 6 Capability Levels und eignet sich auch für externe Bewertungen und Zertifizierungen.
Ausblick
In der nächsten Lerneinheit Anforderungsmanagement und -analyse lernst du, wie Anforderungen systematisch erhoben, dokumentiert und priorisiert werden. Du erfährst, wie Use Cases, User Stories und Methoden wie MoSCoW oder Kano dabei helfen, die richtigen Anforderungen zu definieren.