Automatisierung von Tests in der Softwareentwicklung

Nicht wenige betrachten Testautomatisierung als Allheilmittel, um Testkosten zu senken und gleichzeitig die Qualität von Software zu erhöhen. Aber wann ist der richtige Zeitpunkt zur Automatisierung?

vorlesen Druckansicht 14 Kommentare lesen
Lesezeit: 12 Min.
Von
  • Sven Schirmer
  • Kerstin Knab
Inhaltsverzeichnis

Nicht wenige betrachten Testautomatisierung in der Softwareentwicklung als Allheilmittel, um Testkosten zu senken und gleichzeitig die Qualität der Software zu erhöhen. Aber wie viel Wahrheit steckt in diesem Mythos? Oder anders formuliert: Ist Testautomatisierung tatsächlich immer sinnvoll?

Die Frage, ob der Zeitpunkt der Automatisierung von Tests egal ist, lässt sich mit einem klaren "Nein" beantworten. Denn wird Testautomatisierung zu früh eingesetzt, kann sich das in Zeit und Kosten niederschlagen. Schließlich muss erst eine gewisse Softwarereife erreicht sein, damit sich eine Automatisierungsstrategie konzipieren und umsetzen lässt, ohne dass die Tests in eine kontinuierliche Überarbeitungsschleife geraten. Ebenso ungünstig ist es, wenn der richtige Zeitpunkt zur Testautomatisierung verpasst wird. In diesem Fall ist später mehr Aufwand in manuelle Tests zu investieren, um die erforderliche Testabdeckung zu erreichen. Wann also ist der richtige Zeitpunkt, um Testautomatisierung einzuführen? Gibt es ihn tatsächlich?

Grundsätzlich lohnt es sich, erst mit der Automatisierung zu beginnen, wenn die Erwartungen des Kunden erfüllt werden können und sich das durch die Testautomatisierung prüfen lässt. Vom ersten Schlachtplan bis hin zum praktischen Einsatz gibt es vier Schritte, die helfen können, an diesen Punkt zu gelangen.

Der Planungszeitpunkt ist der erste neuralgische Punkt bei der Überlegung, ob und wann sich automatisierte Tests sinnvoll nutzen lassen. Es gilt: je weiter das Projekt fortgeschritten ist, desto genauer ist abzuwägen, ob eine Testautomatisierung noch rentabel realisierbar ist. In einem ersten Schritt sind die langfristigen Ziele der Testautomatisierung zu definieren. Im Anschluss sollte festgelegt werden, wie sie zu erreichen sind. Dafür ist es notwendig, die Erwartungen aller Beteiligten, also der Auftraggeber, der Testabteilung und der Entwickler, in die Überlegungen einzubeziehen, sie zu prüfen und zu konkretisieren. Um belastbar festzulegen, was die Testautomatisierung leisten soll, ist es sinnvoll, die Ziele anhand des S.M.A.R.T.-Prinzips zu überprüfen: Sind die Ziele spezifisch, messbar, angemessen, realistisch und terminiert?

"S.M.A.R.T" – Ziele der Testautomatisierung müssen spezifisch, messbar, angemessen, realistisch und terminiert sein (Abb. 1)

Liegt der Fokus darauf, Kosten einzusparen, müssen überprüfbare Zahlen genannt werden. Beispielsweise lässt sich der ROI (Return On Investment) als Kenngröße heranziehen, wobei als Gewinn die Differenz zwischen dem manuellen und dem automatisierten Testaufwand zu betrachten ist. Die Kosten für die Auswertung von Testergebnissen bleiben dabei außen vor, da sie generell unabhängig von der Art der Testdurchführung entstehen. Die Testautomatisierung sollte grundsätzlich nicht automatisiert Fehler erzeugen (durch die Automatisierung im Testobjekt erkannte Fehlerbilder), da es sonst im Extremfall zu einer Flut von Fehlermeldungen kommt, die dann manuell zu korrigieren sind – beispielsweise wenn eine Umgebung abstürzt. Außerdem nimmt so die Akzeptanz der Testautomatisierung drastisch ab.

ROI (Return on Investment) bezogen auf Testautomatisierung (Abb. 2)


Wird eine Qualitätssteigerung durch die Testautomatisierung erwartet, lassen sich Fehlerentwicklungskurven als Indikatoren heranziehen. Von besonderem Interesse sind Fehler, die erst nach dem Roll-Out der Software entdeckt werden, da die Fehlerkosten zu diesem Zeitpunkt am höchsten sind. Neben den direkten Fehlerkosten, wie für das Beheben und für erneute Tests und Roll-Outs, sind die strategischen Kosten nicht zu unterschätzen, zum Beispiel ein möglicher Imageverlust. Insbesondere bei mobilen Anwendungen kann eine negative Bewertung im App-Store deutliche finanzielle Einbußen nach sich ziehen.

Wenn es darum geht, Projektrisiken zu mildern, greifen messbare Kriterien, etwa die prozentuale Testabdeckung. Die durch die Testautomatisierung frei werdenden Ressourcen lassen sich einsetzen, um neue Funktionen umfassender zu testen und zusätzliche Schwerpunkte für den Test kritischer Prozesse zu setzen. Wichtig ist: Erst wenn alle Ziele klar formuliert sind, kann man die Ist-Situation im Projekt sinnvoll analysieren und das konkrete Vorgehen planen.