06.09.2021
Es ist von entscheidender Bedeutung, mehrere Fragen zu beantworten, bevor man sich auf die Reise zur Automatisierung von Softwaretests begibt. In diesem Artikel helfen wir Ihnen, einige der wichtigsten Fragen selbst zu analysieren.

Der Wettlauf um die Automatisierung von Softwaretests birgt die Gefahr, dass die Erwartungen der Kunden nicht erfüllt werden, dass unzählige "Schrott"-Skripte erstellt werden, die wegen einer einfachen funktionalen Änderung oder einer Änderung der Systemarchitektur von niemandem genutzt werden. Und eine lange Wartezeit auf den versprochenen Return of Investment und die erwarteten Einsparungen.
All dies, weil wir die Richtung und die Ziele unserer Initiativen zur Automatisierung von Softwaretests nicht von Anfang an klar festgelegt haben.
Ein klarer Weg beginnt mit dem Warum
Um diese unerwünschten Ergebnisse zu vermeiden, ist es wichtig, einige Fragen zu beantworten, bevor Sie mit der Automatisierung beginnen. In diesem Artikel werden wir Ihnen helfen, einige der wichtigsten Fragen selbst zu analysieren:
Warum Automatisierung von Softwaretests?
Diese Frage mag naheliegend erscheinen, und viele Unternehmen haben vielleicht schon mehrere klare Antworten im Kopf. "Um Stunden für Regressionstests einzusparen", "um die Agilität zu fördern", oder "um vorproduktive Umgebungen zu überwachen", um nur einige zu nennen. Unabhängig davon ist die wichtigste Frage immer noch, warum Softwaretests automatisiert werden sollen.
Und so wichtig es ist, das Warum zu definieren, so wichtig ist es auch, es Ihrem Team zu vermitteln, damit niemand die Automatisierungsziele aus den Augen verliert.
In einem Fall waren die Automatisierungsziele zwar klar und wurden dem Partner mitgeteilt, aber er schlug einen anderen Weg ein und erstellte eine große Anzahl von Skripten für denselben Arbeitsablauf.
Bei so vielen Skripten wurde es sehr schwierig, sie zu verwalten und zu überwachen. Dann änderte sich die Software. Es wurde unmöglich, alle Skripte zu pflegen, und so war es bequemer, alles noch einmal von Grund auf zu entwickeln. Diesmal wurden jedoch alle Validierungen des Ablaufs in einem einzigen Skript durchgeführt.
Die vielen Möglichkeiten der Automatisierung
Sobald das Ziel der Automatisierung klar ist, stellt sich eine weitere wichtige Frage: "Wie soll das geschehen?". Daraus ergeben sich mehrere weitere Fragen, wie zum Beispiel:
- Was wissen wir über Automatisierung?
Als erstes empfehle ich, den IST-Zustand in Bezug auf das, was wir über das Thema wissen, zu ermitteln. Die Lücke zwischen dem IST-Zustand und dem SOLL-Zustand ist eines der ersten Dinge, die es zu beseitigen oder zu verringern gilt. Alles, was wir tun, muss auf einer soliden Kenntnis des Themas beruhen. In dieser Phase kann es sehr hilfreich sein, intern über qualifizierte Mitarbeiter oder einen erfahrenen Partner zu verfügen.
- Habe ich ein Team oder einen Partner mit den entsprechenden Fähigkeiten?
Die richtigen Leute oder Partner zu haben, ist der Schlüssel zum Erfolg. Nicht nur wegen der technischen Kenntnisse, sondern auch wegen der Befähigung, die sie für die Erreichung des Ziels benötigen.
- Wie viel wird das Projekt kosten?
Normalerweise reicht ein PoC (Proof of Concept) oder ein MVP (Minimum Viable Product) aus, um eine Vorstellung von den Kosten zu bekommen. Während die meisten PoCs produktiv bleiben, sollte die Art und Weise, wie sie erreicht werden, keinesfalls zum Prozess für die Zukunft werden. Ein PoC zielt darauf ab, herauszufinden, ob "es machbar ist" - und wenn ja, dann ist es Zeit, mit der Planung zu beginnen!
- Wann kann ich mit Ergebnissen rechnen?
Letztendlich ist die Automatisierung ein Entwicklungsprojekt, so dass es sich gut planen lässt. Sie kann aber auch innerhalb eines Sprints durchgeführt werden, wobei der Zeitrahmen von der Größe des Vorhabens abhängt. Das ideale Szenario ist: Nehmen Sie ein System, das ein guter Kandidat für die Automatisierung ist, automatisieren Sie einen Fluss mittlerer Komplexität und nutzen Sie dann diese Referenzzeit, um den Rest der Flüsse im System zu planen.
- Sollte ich alles automatisieren?
Nicht unbedingt: Qualität geht vor Quantität. Technisch gesehen würde ich es wagen zu sagen, dass "100% der Tests automatisiert werden können". Um dies zu erreichen, müssten wir jedoch sehr hohe Kosten in Kauf nehmen, was uns zwingt, diese Idee zu verwerfen.
- Was lässt sich wirklich gut automatisieren?
Dem Dringenden den Vorrang vor dem Wichtigen zu geben, ist eine gute Technik, oder die bereits fehlerhafte 80/20 (Pareto). Letztendlich kommt es darauf an, sich darüber im Klaren zu sein, welchen Wert das Skript, das ich entwickle, für die Erreichung der Unternehmensziele hat.
- Wie werde ich das Ergebnis meiner Automatisierung messen?
KPIs festlegen. Wie bei jeder strategischen Planung müssen die KPIs auf der Grundlage des Hauptziels und der Nebenziele festgelegt werden. Berücksichtigen Sie einige Qualitätsindikatoren, die auch für diesen Bereich relevant sind. Einige Beispiele für KPIs sind:- Fehlerrate: vom Skript gefundene Fehler (idealerweise unter Verwendung der Fehlerdichte).
- Arten von Mängeln: Kodierung, Umgebung, Daten, usw.
- Fehlerquote: ab 100% einer Skriptausführung, welcher Prozentsatz zu einem Fehler führt.
- Minuten der manuellen Ausführung VS Minuten der automatischen Ausführung: Dies ermöglicht es, die durch Ihr Skript erzielte Zeitersparnis zu ermitteln.
- % Automatisierungsabdeckung: automatisierbare Abläufe im Verhältnis zum Gesamtuniversum der Testabläufe des Systems (es wird nicht empfohlen, ein hohes Ziel zu definieren. Tatsächlich sollten wir nicht einmal ein Ziel haben).
- % Fortschritt in der Automatisierungsentwicklung: automatisierte Abläufe VS automatisierbare Abläufe. Je nach Ihrem Plan müssen Sie das Geplante mit dem Realisierten vergleichen.
Wichtigste Lektion: Planung Automatisierung von Softwaretests
Bis hierher haben wir also verstanden, dass die Automatisierung nicht so trivial ist, wie man uns gesagt hat: einen beliebigen Server (in der Regel eine beliebige Workstation) zusammenstellen, mit einem beliebigen Tool ein Skript erstellen und sich der Ausführung widmen, als ob wir unserem Ziel umso näher kämen, je mehr Ausführungen oder Skripte wir haben. So funktioniert es einfach nicht.
Was nach dieser Analyse bleiben muss, ist, dass man, bevor man sich auf den Weg der Automatisierung begibt, innehalten muss, solange es nötig ist, um klar: Ziele zu definieren > zu planen > zu priorisieren > KPIs und Ziele zu definieren > und Kontrollpunkte und Tracking-Methoden zu etablieren, die sich auf den Wert der Automatisierung konzentrieren, nicht auf die Menge des Skripts, das wir anzeigen müssen.
Und falls Sie sich bereits auf diesem Weg befinden und die Aussichten nicht positiv sind, stellen Sie sich die folgenden Fragen, um sich über die Möglichkeiten zur Verbesserung Ihres Teams zu informieren.
Ein letztes Wort zur Automatisierung von Softwaretests
Abschließend und um auf das "Warum" zurückzukommen, sind im Folgenden einige Ansätze aufgeführt, die der Automatisierung dienen und gleichzeitig einen großen Mehrwert für die Organisation darstellen:
- Automatisieren, um die Agilität zu fördern
Unter diesem Gesichtspunkt ist es nicht sinnvoll, 100 % der Testfälle zu automatisieren. Vielmehr sollten nur die kritischsten Funktionsabläufe berücksichtigt werden, um Auswirkungen auf das Geschäft durch eine neue Version zu vermeiden (regressive Tests). Darüber hinaus ist es sinnvoll, auch die Tests einzubeziehen, deren manuelle Ausführung mehr Zeit in Anspruch nimmt (um sich auf die manuellen Tests der neuen Fälle/Abläufe zu konzentrieren, die wir aufgrund der Codeänderung erstellen). Schließlich sollten die komplexesten Tests, die fortgeschrittene funktionale Kenntnisse erfordern, einbezogen werden (dies ermöglicht es auch, auf den Experten für funktionale Analysen zu verzichten, der sich auf andere Abläufe konzentrieren muss). Die Ausführung dieser Tests wird idealerweise in einem kontinuierlichen Integrationsschema vor dem Push einer neuen Codeänderung und nach der Ausführung der entsprechenden Datencodeprüfung (idealerweise ebenfalls automatisiert) ausgelöst.
- Automatisieren Sie die Überwachung der Systemstabilität
Bei größeren Änderungen an einem System werden bei Auswirkungsanalysen oft einige Integrationen mit anderen Systemen übersehen, und es kommt häufig vor, dass eine nicht erkannte Auswirkung den Betrieb eines oder mehrerer Systeme beeinträchtigt. Dies führt dazu, dass die Tests bis zur Korrektur oder zum Rollback der Änderung gestoppt werden. Bei diesem Schwerpunkt der Automatisierung ist es ratsam, nur "Happy Paths" zu berücksichtigen und diese Workflows mehrmals täglich nach einem Zeitplan zu testen (z. B. mit Jenkins), so dass wir über ein Online-Dashboard schnell feststellen können, ob ein System, ein Dienst oder ein Server Probleme hat. Wenn wir in Bezug auf die "Online"-Benachrichtigung noch weiter gehen, können wir eine E-Mail, eine SMS oder eine Warnmeldung in Tools wie HipChat auslösen, damit die Teammitglieder schnell Bescheid wissen, ohne einen Blick auf das Dashboard werfen zu müssen.
Kontakt
Für weitere Informationen über die Automatisierung von Softwaretests kontaktieren Sie unsere Experten oder besuchen Sie unsere Getronics Website




