Automatisierung von Softwaretests – warum und wie
Bevor man sich auf den Weg zur Automatisierung von Softwaretests begibt, ist es entscheidend, einige Fragen zu klären. In diesem Artikel helfen wir Ihnen auch dabei, einige der wichtigsten Fragen selbst zu analysieren.

Bevor man sich auf den Weg zur Automatisierung von Softwaretests begibt, ist es entscheidend, einige Fragen zu klären. In diesem Artikel helfen wir Ihnen auch dabei, einige der wichtigsten Fragen selbst zu analysieren.
Der Wettlauf um die Automatisierung von Softwaretests birgt das Risiko, dass die Kundenerwartungen nicht erfüllt werden und unzählige „unnütze“ Skripte entstehen, die niemand nutzen wird – und das allein aufgrund einer einfachen funktionalen Änderung oder einer Änderung in der Systemarchitektur. Hinzu kommt eine lange Wartezeit auf die versprochenen Renditen und die erwarteten Einsparungen.
All das, weil wir zu Beginn des Projekts die Ausrichtung und die Ziele unserer Initiativen zur Automatisierung von Softwaretests nicht klar festgelegt haben.
Ein klarer Weg beginnt mit dem „Warum“
Um diese unerwünschten Folgen zu vermeiden, ist es entscheidend, vor Beginn der Automatisierungsreise einige Fragen zu klären. In diesem Artikel helfen wir Ihnen dabei, einige der wichtigsten Fragen selbst zu analysieren:
Warum Software-Testautomatisierung?
Diese Frage mag offensichtlich erscheinen, und viele Unternehmen haben vielleicht bereits mehrere klare Antworten parat. „Um Zeit bei Regressionstests zu sparen“, „um Agilität zu fördern“ oder „um vorproduktive Umgebungen zu überwachen“, um nur einige zu nennen. Dennoch bleibt die Frage „Warum Software-Testautomatisierung?“ die wichtigste Frage.
So wichtig es auch ist, das „Warum“ zu definieren, so entscheidend ist es auch, dies Ihrem Team zu vermitteln, damit niemand die Automatisierungsziele aus den Augen verliert.
In einem Fall waren die Automatisierungsziele zwar klar definiert und dem Partner mitgeteilt worden, doch dieser schlug einen anderen Weg ein und erstellte eine riesige Anzahl von Skripten für denselben Arbeitsablauf.
Bei so vielen Skripten wurde die Verwaltung und Überwachung sehr schwierig. Dann änderte sich die Software. Es wurde unmöglich, alle Skripte zu pflegen, sodass es praktischer war, alles von Grund auf neu zu entwickeln. Diesmal wurden jedoch alle Validierungen des Ablaufs in einem einzigen Skript durchgeführt.
Die vielen „Wie“-Fragen der Automatisierung
Sobald das Ziel der Automatisierung klar ist, stellt sich eine weitere wichtige Frage: „Wie soll das umgesetzt werden?“. Daraus ergeben sich wiederum mehrere weitere Fragen, wie zum Beispiel:
- Was wissen wir über Automatisierung?
Als Erstes würde ich empfehlen, den Ist-Zustand hinsichtlich unseres Wissens zu diesem Thema zu ermitteln. Die Lücke zwischen Ist- und Soll-Zustand ist einer der ersten Punkte, die beseitigt oder verringert werden müssen. Alles, was wir tun, muss auf fundierten Kenntnissen zu diesem Thema basieren. In dieser Phase kann es sehr hilfreich sein, über qualifizierte Mitarbeiter im eigenen Haus oder einen erfahrenen Partner zu verfügen.
- Habe ich ein Team oder einen Partner, der über die erforderlichen Fähigkeiten verfügt?
Die richtigen Mitarbeiter oder einen Partner zu haben, ist der Schlüssel zum Erfolg. Nicht nur wegen des technischen Fachwissens, sondern auch wegen des Engagements, mit dem sie das Ziel verfolgen.
- Wie viel wird das Projekt kosten?
In der Regel reicht ein PoC (Proof of Concept) oder ein MVP (Minimum Viable Product) aus, um uns einen Überblick über die Kosten zu verschaffen. Auch wenn die meisten PoCs produktiv bleiben, sollte die Art und Weise, wie sie umgesetzt werden, keinesfalls zum Standardverfahren für die Zukunft werden. Ein PoC dient dazu, herauszufinden, ob „es machbar ist“ – und wenn ja, ist es Zeit, mit der Planung zu beginnen!
- Wann kann ich mit Ergebnissen rechnen?
Letztendlich handelt es sich bei der Automatisierung um ein Entwicklungsprojekt, was die Planung vereinfacht. Oder sie kann im Rahmen eines Sprints abgewickelt werden, sodass die Zeitdauer vom Umfang der geplanten Maßnahmen abhängt. Das ideale Szenario sieht so aus: Man wählt ein System aus, das sich gut für die Automatisierung eignet, automatisiert einen Ablauf mittlerer Komplexität und nutzt diese Referenzzeit dann zur Planung der übrigen Abläufe im System.
- Sollte ich alles automatisieren?
Nicht unbedingt: Qualität geht vor Quantität. Technisch gesehen würde ich sogar behaupten, dass „100 % der Tests automatisiert werden können“. Um dies zu erreichen, würden jedoch sehr hohe Kosten entstehen, sodass wir diese Idee verwerfen müssten.
- Was lässt sich wirklich gut automatisieren?
Das Dringende vor dem Wichtigen zu priorisieren, ist eine gute Methode – ebenso wie das ohnehin schon unvollkommene 80/20-Prinzip (Pareto). Schließlich kommt es darauf an, sich ganz klar darüber zu sein, welchen Beitrag das Skript, das ich entwickle, zur Erreichung der Geschäftsziele leistet.
- Wie werde ich das Ergebnis meiner Automatisierung messen?
Legen Sie KPIs fest. Wie bei jeder strategischen Planung müssen die KPIs auf der Grundlage des Hauptziels und der Nebenziele festgelegt werden. Berücksichtigen Sie dabei auch einige Qualitätsindikatoren, die für diesen Bereich ebenfalls relevant sind. Einige Beispiele für KPIs sind:- Fehlerquote: vom Skript gefundene Fehler (im Idealfall unter Verwendung der Fehlerdichte).
- Arten von Fehlern: Programmierung, Umgebung, Daten usw.
- Fehlerquote: ausgehend von 100 % der Ausführungen eines Skripts, wobei dieser Prozentsatz den Anteil der fehlerhaften Ausführungen angibt.
- Minuten für die manuelle Ausführung im Vergleich zu Minuten für die automatisierte Ausführung: So lassen sich die durch Ihr Skript erzielten Zeitersparnisse ermitteln.
- % Automatisierungsgrad: Anteil der automatisierbaren Testabläufe an der Gesamtzahl aller Testabläufe des Systems (es wird nicht empfohlen, einen hohen Zielwert festzulegen. Tatsächlich sollten wir gar keinen Zielwert haben).
- % Fortschritt bei der Automatisierungsentwicklung: automatisierte Abläufe im Vergleich zu automatisierbaren Abläufen. Je nach Ihrem Plan müssen Sie die geplanten Werte mit den realisierten vergleichen.
Wichtige Erkenntnis: Planung der Automatisierung von Softwaretests
Bis hierher haben wir also verstanden, dass die Automatisierung nicht so trivial ist, wie man uns gesagt hat: einen beliebigen Server zusammenzustellen (meistens eine beliebige Workstation), mit einem beliebigen Tool ein Skript zu erstellen und uns dann darauf zu konzentrieren, dieses immer wieder auszuführen – so, als würden wir unserem Ziel umso näher kommen, je mehr Ausführungen oder Skripte wir haben. So funktioniert es einfach nicht.
Was nach dieser Analyse im Gedächtnis bleiben muss, ist, dass man, bevor man den Weg der Automatisierung einschlägt, so lange wie nötig innehalten muss, um klar zu definieren: Ziele festlegen > planen > Prioritäten setzen > KPIs und Zielwerte festlegen > sowie Kontrollpunkte und Nachverfolgungsmethoden festlegen, die sich auf den Nutzen der Automatisierung konzentrieren und nicht auf die Menge an Skriptcode, die wir anzeigen müssen.
Und falls Sie diesen Weg bereits eingeschlagen haben und die Aussichten nicht gerade rosig sind, stellen Sie sich die folgenden Fragen, um Chancen zur Verbesserung Ihres Teams zu erkennen.
Ein abschließendes Wort zur Automatisierung von Softwaretests
Abschließend – und um noch einmal auf das „Warum“ zurückzukommen – finden Sie im Folgenden einige Ansätze für die Automatisierung, die dem Unternehmen einen großen Mehrwert bieten können:
- Automatisierung zur Förderung der Agilität
Aus dieser Perspektive ist es nicht sinnvoll, 100 % der Testfälle zu automatisieren. Berücksichtigen Sie vielmehr nur die kritischsten funktionalen Arbeitsabläufe, um geschäftliche Auswirkungen durch eine neue Version zu vermeiden (Regressionstests). Darüber hinaus ist es ratsam, jene Tests einzubeziehen, deren manuelle Ausführung mehr Zeit in Anspruch nimmt (um den Fokus auf manuelle Tests der neuen Fälle/Abläufe zu legen, die wir aufgrund der Codeänderung erstellen). Schließlich sollten die komplexesten Tests einbezogen werden, die fortgeschrittene funktionale Kenntnisse erfordern (dies ermöglicht es auch, auf den fachkundigen Funktionsanalysten zu verzichten, der sich auf andere Abläufe konzentrieren muss). Die Ausführung dieser Tests wird idealerweise im Rahmen eines Continuous-Integration-Prozesses ausgelöst – vor dem Push einer neuen Codeänderung und nach der Durchführung der entsprechenden Daten- und Codeprüfung (idealerweise ebenfalls automatisiert).
- Automatisierung zur Überwachung der Systemstabilität
Bei größeren Änderungen an einem System werden bei Auswirkungsanalysen häufig einige Integrationen mit anderen Systemen übersehen, und es kommt häufig vor, dass eine unerkannte Auswirkung den Betrieb eines oder mehrerer Systeme beeinträchtigt. Dies führt dazu, dass Tests so lange unterbrochen werden, bis die Änderung korrigiert oder rückgängig gemacht wurde. Bei diesem Automatisierungsansatz empfiehlt es sich, ausschließlich „Happy Paths“ zu berücksichtigen und diese Workflows mehrmals täglich nach einem festgelegten Zeitplan (beispielsweise mit Jenkins) zu testen, sodass wir über ein Online-Dashboard schnell feststellen können, ob bei einem System, einem Dienst oder einem Server Probleme auftreten. Wenn wir den „Online“-Alarm noch weiter ausbauen, können wir eine E-Mail, eine SMS oder eine Warnmeldung in Tools wie HipChat auslösen, sodass Teammitglieder schnell davon erfahren, ohne das Dashboard aufrufen zu müssen.
Kontaktieren Sie uns unter
. Wenn Sie weitere Informationen zur Automatisierung von Softwaretests wünschen, wenden Sie sich an unsere Experten oder besuchen Sie unsere Getronics .


