Anleitung für professionelles Software-Testmanagement

Seite 2: Beauftragung

Inhaltsverzeichnis

Beim V-Modell findet der Test parallel zur Entwicklung statt (Abb. 1).

Ein effektives Testmanagement beginnt mit der richtigen Beauftragungsform. Sie bestimmt, wie der für das Projekt verantwortliche Fachbereich die Softwareentwicklung und das Testmanagement organisiert. Dabei ist die Unabhängigkeit der Beauftragung wichtig. Das tritt ein, wenn die verantwortliche Fachabteilung das Testmanagement unabhängig von der Softwareentwicklung einfordert. Ein derartiges Vorgehen stellt sicher, dass das Testmanagement ein eigenes, festes Budget vom Fachbereich und nicht von der Softwareentwicklung zugeteilt bekommt. Sie sorgt dafür, dass die Mittel tatsächlich in vollem Umfang in das Testmanagement fließen, und verhindert, dass die Entwicklung bei Bedarf Teile des Budgets für sich beansprucht. Sie gewährleistet darüber hinaus, dass alle Teststufen sich unabhängig und parallel zur Entwicklung, wie im V-Modell abgebildet, durchlaufen lassen. Eine unabhängige Beauftragung ist die Voraussetzung für die weiteren Schritte des Testmanagements.

Äquivalenzklassen sind Gruppen von Eingaben, bei denen das gleiche Ergebnis zu erwarten ist. Der Einsatz der Methode unterstützt eine strukturierte Testfallermittlung (Abb. 2).

Zu den ersten Aufgaben nach der Planung gehört der Testentwurf. Da das Testmanagement bei jedem Kunden unterschiedliche Anforderungen vorfindet, sind zunächst die geeigneten Testfallermittlungsmethoden auszuwählen, um idealerweise eine nahezu vollständige Testabdeckung zu erreichen. Anders als beispielsweise in der Physik, die sich mit stetigen Funktionen beschreiben lässt, bewegt man sich im Bereich Software in einer diskreten Welt. Das bedeutet, dass man für eine vollständige Testabdeckung eine gegen unendlich strebende Anzahl an Testfällen benötigen würde. Durch die abzählbare Anzahl an zeitlichen und menschlichen Ressourcen ist es unabdingbar, die Menge an Testfällen auf ein realisierbares Maß zu reduzieren. Selbst scheinbar einfach aussehende Eingabemasken weisen eine gewisse Komplexität auf und enthalten, wie Abbildung 2 zeigt, immer noch eine hohe Anzahl an Eingabekombinationen und somit Testfällen.

Die unterschiedlichsten Testfallermittlungsmethoden lassen sich je nach Projekt von erfahrenen Testmanagern einsetzen (Abb. 3).

Um dennoch eine gute Testabdeckung zu erreichen, greift das Testmanagement auf Methoden zurück, die bei geeigneter Auswahl und intelligenter Kombination zu einem guten Ergebnis kommen. Das erreicht man beispielsweise dadurch, dass man für kritische Teile Softwaremethoden nutzt, die zwar umfangreich sind, dafür eine größere Zahl an Testfällen ermitteln. Durch die Systematik lässt sich eine hohe Testabdeckung erreichen. Für unkritischere Teile greift man hingegen auf weniger komplexe Methoden zurück. Abbildung 3 geht kurz auf die unterschiedlichen Methoden ein, die dem Testmanager zur Verfügung stehen.

Mit der Testfallermittlung spezifiziert man die Testdaten. Die Spezifikation stellt für alle Fälle einen definierten initialen Datenbestand her. Um schließlich zu nachvollziehbaren und reproduzierbaren Testfällen zu gelangen, benötigt man ein strukturiertes Datenmanagement. Es stellt sicher, dass nach jedem Durchlauf, der mit gleichen Werten durchzuführen ist, sich der Initialzustand wieder herstellen lässt. Ausgehend davon ist ein weiterer Testlauf zu starten; zum Beispiel, wenn das Testmanagement bei einem vorhergehenden Durchlauf einen Fehler gefunden hat, den im Anschluss die Entwicklung beseitigt hat. Um nun zu überprüfen, ob die Software nach Beseitigung des konkreten Fehlers tatsächlich verbessert wurde, ist der Initialzustand zu verwenden.

In dem Zusammenhang soll man zwischen Primär- und Sekundärtestdaten unterscheiden. Beide Datentypen sind von Bedeutung, um zu einem reproduzierbaren Ergebnis zu kommen. Das Testdatenmanagement spielt die Primärtestdaten in das System ein und verwaltet sie. Ein systematisches Datenmanagement unterstützt das Testmanagement, indem es die geeigneten Testdaten zur Verfügung stellt, auch wenn durch iterative Ansätze die Komplexität des Systems zunimmt. Den Punkt unterschätzen viele in der Praxis.