Softwaretest Gegen den Baum #####

Gegen den Baum

Druckversion

Wer soll testen?

Soll der Entwickler den eigenen Code testen oder ist es besser, extra Tester einzusetzen? Beide Ansätze haben Vor- und Nachteile. Ist der Entwickler auch der Tester, besteht die Gefahr, dass quasi nur die Implementierung bestätigt wird. Ziel sollte es jedoch sein, die Umsetzung von Anforderungen in den Code nachzuweisen (Bild 2). Der Vorteil besteht darin, dass der Entwickler sich gut mit seinem Code auskennt und somit relativ einfach Testfälle implementieren kann. Wie ändert sich dies, wenn eine andere Person den Code testet? Ein geschulter Tester wird systematisch den geforderten Funktionsumfang mit der Implementierung vergleichen. Andererseits kennt sich der Tester mit dem Code eventuell nicht ganz so gut aus wie der Entwickler, was zu Nachfragen und Problemen bei der Implementierung von Tests führen kann. In dieser Konstellation tritt häufig auch das Problem auf, dass nur getestet wird, um eine bestimmte Testabdeckung zu erreichen.

Was passiert aber, wenn der Tester Fehler findet? Diese sind möglichst schnell an den Entwickler weiterzuleiten. Umgekehrt muss auch sichergestellt sein, dass der Tester immer mit der aktuellsten Codeversion arbeitet. Die wichtigste Erkenntnis ist, dass es unerheblich ist, ob ein Entwickler selbst testet oder ein spezialisierter Tester. Entscheidend ist, dass Entwicklung und Test eng verzahnt sind. Dann kann Testen erfolgreich sein. Müssen Tests komplex sein? Hier ist die Antwort klar: Nein! Im Gegenteil, je komplizierter die implementierten Testfälle sind, umso größer ist die Gefahr, dass die Tests selbst falsch sind. Was ist aber ein komplexer Test? Sicher nicht Tests, die einfach nur Eingangswerte vorgeben und die Ergebnisse nach einem Funktionsaufruf mit den erwarteten Werten vergleichen. Komplexe Tests zeichnen sich in der Regel durch Codemodifikation aus, die zur Testausführung erforderlich werden, sowie durch zusätzlichen Code in Form von Stub-Funktionen. Ist viel zusätzlicher Code nötig, steigt die Wahrscheinlichkeit, dass der Test falsch ist. Kommen dann noch Codeänderungen hinzu, kann dies schnell dazu führen, die Kontrolle über die Tests zu verlieren.