Qualitätsmanagement bei Softwareprojekten

Durch die immer komplexer und umfangreicher werdenden Softwareprodukte müssen geeignete Methoden und Techniken zur Qualitätssicherung bereitgestellt werden. Gerade wenn man bedenkt, dass Software auch in sicherheitskritischen Szenarien (Flugzeuge, Kernkraftwerke) eingesetzt wird und sich im Zuge der Internationalisierung größerem Wettbewerb ausgesetzt sieht, spielt eine geringe Fehlerrate bzw. eine Fehlerfreiheit eine immer größere Rolle. Dabei sollte beachtet werden, dass sich die Qualitätsaspekte bei Anwendern und Herstellern unterscheiden, wie die folgende Tabelle zeigt:

Anwenderaspekte Herstelleraspekte
Funktionalität Wartbarkeit
Zuverlässigkeit, Robustheit Testbarkeit
Sicherheit Übertragbarkeit
Benutzbarkeit (Usability)

  • Erwartungskonformität
  • Fehlertoleranz
  • Barrierefreier Zugang
Effizienz
Transparenz

Das Vorgehen selbst ist ähnlich zum „herkömmlichen“ QM. Zunächst erfolgt eine Qualitätsplanung in der die Qualitätsmerkmale und -Maßnahmen festgelegt werden. Deren Umsetzung (durch Tools und Modelle) wird überwacht und durch Reviews, analytische Tests, Inspektionen und Code Kontrolle analysiert. Ein Modell, das sich in der Praxis bewährt hat, ist das sog. V-Modell (siehe unten) dargestellt ist.

Das V Modell
Das V Modell

Messen und Testen

Unter Messen versteht man die Bewertung und Untersuchung von Qualitätsausprägungen. Dazu gehört sowohl deren Definition als auch die Sammlung und Interpretation der Daten.

Beim Testen hingegen werden vordefinierte Teststrecken durchlaufen um die korrekte Funktionsweise bezüglich bestimmter Kriterien zu gewährleisten. Tests sind in jeder Phase der Softwareentwicklung möglich und nötig. Dabei gibt unterscheidet man u.a. die folgenden Testarten:

Methodisches Testen

Es ist eigentlich unmöglich erschöpfende Tests durchzuführen, deshalb müssen die ausgewählten Tests eine hohe Effizienz haben (d.h. eine große Wahrscheinlichkeit, Fehler zu finden).

Blackbox Test

Dieses Tests beinhalten Daten, die die innere Programmstruktur nicht berücksichtigen. Das Programm wird also als „Blackbox“ aufgefasst. Die Testdaten ergeben sich aus der Definition der Softwareanforderungen. Dadurch können spezifische Funktionsanforderungen getestet werden.

Whitebox Test

Dieses Tests beziehen sich auf die inneren Programmstrukturen und behandeln Fragen wie zum Beispiel „Werden alle Anweisungen ausgeführt? Wird die Schleife korrekt terminiert? Werden auch unrealistische Werte (Maximal, Minimal) akzeptiert und korrekt behandelt?“ Im Fokus steht hier also die korrekte Funktionsweise des Programmes selbst und nicht die Funktionen für die es geschrieben wurde.

Inspektionen

Inspektionen beziehen sich nicht auf die Funktion der Software selbst sondern auf die Dokumente, auf denen die Entwicklung der Software beruht und auf den Quellcode aus dem sie besteht. Dadurch können Fehler auch in frühen Phasen der Entwicklung erkannt werden.

Um Inspektionen effizient durchzuführen, haben sich einige Regeln etabliert. Dabei werden Inspektionen von Mitarbeitern durchgeführt, die ein sog. Inspektionsteam bilden. Dieses Team besteht aus den folgenden Rollen:

Moderator – Vorbereitung und Lenkung (Einhaltung der Regeln)

Autor – Urheber des geprüften Dokumentes

Leser – repräsentiert den Kunden

Tester – befasst sich im Vorhinein intensiv mit dem Dokument

Schreiber – protokolliert die gefundenen Fehler

Im Verlauf der Sitzung wird sichergestellt, dass diese nicht länger als 2 Stunden dauert und die Fehler dokumentiert werden.