Softwaretest Gegen den Baum #####

Gegen den Baum

Druckversion

Wann ist der Test zu Ende?

Wann ist man fertig mit Testen? Es gibt unterschiedliche Ansätze. Eine Möglichkeit ist es, zum Beispiel die Testabdeckung als Kriterium heranzuziehen. Dies ist gefährlich, denn eine Testabdeckung auf Codebasis darf niemals das Testende definieren. Was ist, wenn der Code falsch ist? Dann ist zwangsweise die daraus abgeleitete Definition des Testendes falsch. Falls eine Testabdeckung als Kriterium für das Testende dienen soll, dann muss die Abdeckung der Anforderungen dazu verwendet werden. Dies erreicht man am besten, wenn ein Tool in Verbindung mit einer systematischen Vorgehensweise zur Testspezifikation verwendet wird. In Verbindung mit Tessy kommt hier zum Beispiel der Klassifikationsbaum- Editor (CTE, Classification Tree Editor) zum Einsatz. Mit CTE lässt sich die Klassifikationsbaummethode anwenden, mit der sich sehr effektiv Testfälle spezifizieren lassen, die alle Anforderungen an eine Funktion abdecken.

Was glauben wir, beim Testen zu finden? Bei Balzert [1] kann man nachlesen, dass die meisten Fehler im Software-Entwicklungsprozess bereits in der Anforderungsund Spezifikationsphase gemacht werden, während die meisten Fehler beim Entwickeln und Testen gefunden werden. Daraus folgt, dass die meisten gefundenen Fehler nicht vom Entwickler stammen, sondern auf Fehler in früheren Entwicklungsphasen zurückzuführen sind. Dies bestätigen auch die Erfahrungen aus der Praxis. Typische Fehler von Softwareentwicklern sind Codierfehler. Diese lassen sich effektiv mit Werkzeugen zur statischen Codeanalyse erkennen. Da solche Analysetools in der Regel sehr preiswert sind, sollten diese zur Grundausstattung in jedem Unternehmen gehören, das Wert auf gute Software legt. Es gibt immer wieder wundersame Software, die Testfälle automatisch erzeugen will. Der Autor hat bisher niemand kennen gelernt, der solche Tools erfolgreich einsetzt. Das Problem ist, dass es nicht reicht, einfach Testdaten (in der Werbung gerne auch als Testvektoren bezeichnet) zu erzeugen. Die Testergebnisse sind auch zu überprüfen. Bei Tools, die automatisch mehrere tausend Testfälle erzeugen, ist es alles andere als trivial, die Ergebnisse zu überprüfen. Ein Werkzeug, das aus einer formalen Spezifikation systematisch Testfälle für den Unit-Test erzeugt, ist derzeit nicht verfügbar.