Softwaretest Gegen den Baum

Viele Firmen müssen heute ihre Software testen, sei es, um Normen wie zum Beispiel IEC 61508 zu erfüllen oder den Forderungen von Kunden nachzukommen. In der Praxis zeigen sich hierbei immer wieder Probleme. Der Versuch, Kundenforderungen zu erfüllen oder Normen gerecht zu werden, führt mitunter dazu, dass getestet wird, nur um getestet zu haben. So fährt man ein Projekt gegen den Baum.

Softwaretest

Viele Firmen müssen heute ihre Software testen, sei es, um Normen wie zum Beispiel IEC 61508 zu erfüllen oder den Forderungen von Kunden nachzukommen. In der Praxis zeigen sich hierbei immer wieder Probleme. Der Versuch, Kundenforderungen zu erfüllen oder Normen gerecht zu werden, führt mitunter dazu, dass getestet wird, nur um getestet zu haben. So fährt man ein Projekt gegen den Baum.

Leicht gerät der eigentliche Zweck des Testens aus dem Fokus, nämlich das Finden von Fehlern. Dies kann fatale Folgen haben. Im Extremfall werden Testdokumente erstellt, die einzig den Zweck erfüllen, nachzuweisen, dass getestet wurde. Typisch in diesem Zusammenhang ist die Forderung nach einer Testabdeckung, zum Beispiel C1-Coverage, um zu entscheiden, dass alles getestet wurde.

Wie kann man nun erfolgreich testen? Die folgenden Erkenntnisse hat der Autor in Verbindung mit Schulungen und Consultings für »Tessy«, einem Tool für Softwaretests, gesammelt. Interessierte Leser sollten grundsätzlich Ratschläge bezüglich der Testdurchführung hinterfragen und auf Eignung für die eigene Situation prüfen. Dies gilt auch für die folgenden Vorschläge. Eines ist gewiss: Mit dem Softwaretest soll der Anwender so früh wie möglich im Entwicklungsprozess beginnen. Nachteilig wirkt sich jedoch aus, dass er bei sich ändernden Funktionen einen nicht unerheblichen Aufwand in die Anpassung der Softwaretests investieren muss. Das gilt auch, wenn der Anwender mit einem Tool wie beispielsweise Tessy mit geringem Aufwand Tests an geänderte Software anpassen kann. Aus dieser Überlegung ergibt sich der Vorschlag, alle zu testenden Funktionen mit einem Attribut (z.B. im Kommentar) zu versehen, das Auskunft darüber gibt, wie stabil eine Funktion ist, das heißt, ob man davon ausgeht, dass die Funktion sich noch ändert oder schon fertig entwickelt wurde. Eine Funktion, die als stabil markiert ist, kann getestet werden (Bild 1). Kleine Änderungen im Testinterface können zwar dennoch erforderlich werden, dürften jedoch eher selten vorkommen.