Avatar of Andreas GollaAndreas Golla, 02. August 2019

Ready, steady, TEST and go! Warum Testautomatisierung in Projekten sinnvoll ist

Wer kennt die folgende Projektsituation nicht: Das Release-Datum rückt näher, der Testaufwand fällt deutlich höher aus als geplant, und die notwendigen Ressourcen stehen nicht zur Verfügung. Kurzerhand werden Projektmanager, Mitarbeiter der Fachabteilung oder die Softwareentwickler selbst zu Testern deklariert. Diese Situation ist für alle Beteiligten meist nicht zufriedenstellend, da die eigenen geplanten Arbeitsaufgaben vernachlässigt werden müssen.

Zudem stellt sich die Frage, ob jemand ohne tiefere Testkenntnisse eine so wichtige Aufgabe auch ausreichend kompetent und ergebnisorientiert angehen kann. Oftmals sind mehrere Testdurchläufe nach erfolgter Problembehebung vonnöten, und hier muss entsprechend detailorientiert und konzentriert gearbeitet werden. Da fällt es schwer, am Ball zu bleiben, wenn man doch eigentlich noch ganz andere Aufgaben hat.

Testautomatisierung – sofern von Anfang an als integraler Bestandteil des Projektes umgesetzt – kann hier für Zeitersparnis in der oftmals heißen Pre-Release-Phase und außerdem für entsprechende Softwarequalität sorgen. Es gibt jedoch noch weitere Gründe, die für automatisierte Tests sprechen:

  1. Frühzeitige Identifikation von Fehlern

    Die „Rule of Ten” gehört zum betriebswirtschaftlichen Allgemeingut eines jeden Projektes. Je später in der Entwicklungsphase ein Fehler identifiziert wird, desto teurer wird dessen Behebung. Als Faustregel gilt: Pro Prozessschritt kostet die Behebung eines nicht entdeckten Fehlers das Zehnfache. Ein von Anfang an integriertes Testkonzept hilft dabei, Fehler frühzeitig aufzudecken und zu eliminieren. Schon das Ausarbeiten von Testfällen schult das Augenmerk während der Entwicklung und kann Fehlerquellen bereits in der Entstehung minimieren.
  2. Effizienz- und Qualitätssteigerung bei Wiederholungen

    Durch die Automatisierung müssen Softwaretester nicht mehr alle Testfälle ständig manuell wiederholen. Wiederkehrende Testläufe führen unweigerlich zu eintretender Betriebsblindheit. Fehler könnten übersehen werden. Darüber hinaus lassen sich die frei gewordenen Kapazitäten für kreative Tätigkeiten nutzen, beispielsweise zur Testfallerstellung.
  3. Einführung kürzerer Release-Zyklen

    Viele Projektgeber wünschen sich möglichst kurze Release-Zyklen, um dynamisch auf Marktveränderungen reagieren und die Software entsprechend flexibel anpassen zu können. Testautomatisierung kann dies unterstützen.
  4. Bedarfsgerechte Testflexibilität

    Automatisierte Tests sind jederzeit durchführbar. Dies kann zu fest geplanten Zeiten stattfinden (z. B. nach einem „Nightly Build“) und/oder auch spontan, wenn benötigt.
  5. Schnelle Qualitätssicherung in Projekten nach „Nightly Builds"

    In der Softwareentwicklung sind sie gang und gäbe: „Nightly Build“-Vorgänge auf der Testumgebung. Mit einem entsprechenden Set-up können Tests anschließend automatisiert durchlaufen werden. Zu Beginn des nächsten Arbeitstages liegen dem Testmanager bzw. Team bereits Resultate vor und es kann ohne Zeitverlust weitergearbeitet werden.

Und was ist mit den Kosten?

Zugegeben, der Aufwand zur Umsetzung eines Testautomatisierungskonzeptes fällt zu Beginn natürlich deutlich höher aus als beim manuellen Testen. Eine entsprechend stabile Testumgebung muss erstellt, gewartet und administriert werden. Womöglich entstehen Lizenz- und Schulungskosten. Testfälle müssen zudem ausgearbeitet und aktuell gehalten werden.

Um die Kosten im Rahmen zu halten, sollte daher genau abgewogen werden, wann es sich lohnt, einen Testfall zu automatisieren, und wann nicht. Meist sind automatisierte Tests vor allem dann sinnvoll, wenn sich die relevanten Testdaten häufig ändern. Wohingegen ein geschulter, erfahrener Tester Fehler und Anomalien entdecken kann, die in funktional ausgerichteten Testfällen nicht festgestellt werden können. Für jedes Projekt müssen der richtige Mix und Automationsgrad individuell erarbeitet werden.

Je früher mit einem Testautomatisierungskonzept innerhalb eines Projektes begonnen wird, desto mehr lohnt und amortisiert sich die Investition im Projektverlauf. Mit zunehmender Reife der Automatisierung werden manuelle Testaufwände deutlich geringer und können oftmals reduziert werden. Zudem entsteht in eingangs beschriebener Situation kein zusätzlicher Druck, da Testfälle bereits bekannt sind und somit schnell durchgeführt werden können. Ab einer gewissen Abdeckung und Wiederholungsrate der Testfälle lassen sich durchaus Kosten sparen. Zusätzlich ermöglicht eine Automatisierung die kontinuierliche Erhöhung und Überwachung der Abdeckungsrate.

Schlussendlich können sich auch die zum Release-Termin häufig aus der Ressourcennot ernannten Tester bis zum Release auf die Aufgaben konzentrieren, die sie eigentlich im Projekt übernehmen und die ihrer Expertise entsprechen: Projektmanagement, fachliche Prozessgestaltung und Softwareentwicklung. Das bringt zusätzliche Qualität in das Projekt.

Neuer Kommentar