Testautomatisierung - Mit dem Dreisprung zum Erfolg
8-Phasenmodell

Mit dem Dreisprung zum Erfolg: Testautomatisierung

Damit sich die Testautomatisierung nicht als vorübergehende Mode erweist, sollten Sie mit bedacht und iterativ vorgehen, um sie erfolgreich einzusetzen. Wie das geht, erfahren Sie mit dem praxisbewährten 8-Phasenmodell, das Sie von der Vorbereitung über die Umsetzung bis in die kontinuierliche Pflege führt – ein effektiver Dreisprung in der agilen Softwareentwicklung.

Testautomatisierung ist der Einsatz von Softwarewerkzeugen zur Erstellung bzw. Programmierung von Testfällen mit dem Ziel, die Testfälle rechnergestützt wiederholt ausführen zu können [1]. Bei einer manuellen Testdurchführung hingegen handelt es sich um die vollständige Ausführung des Arbeitsprozesses durch einen Menschen. 

Für die pünktliche und erfolgreiche Inbetriebnahme von immer komplexer werdenden Softwaresystemen, reichen manuelle Testverfahren häufig nicht mehr aus. Besonders im Zuge von agilen Entwicklungsmethoden kann der gewünschte Wettbewerbsvorteil höherer Release-Geschwindigkeiten bei hoher Qualität nur durch das Einbinden von automatisierten Testverfahren in die Deployment-Pipelines erreicht werden. Ohne immensen Testaufwand ist es schwierig bis unmöglich, für jedes Release einen kompletten manuellen Regressionstest zu realisieren. Praxiserfahrungen zeigen trotzdem, dass das manuelle Testen immer noch sehr weit verbreitet ist [2]. Da wo die Testautomatisierung zum Einsatz kommt, hat sie nicht selten mit Problemen zu kämpfen. 

Es gibt einige Vorteile, die eine Testautomatisierung erstrebenswert machen: 

  • Geschwindigkeit erhöhen: Bei einer Testautomatisierung ist die Parallelisierung von Testfällen möglich, indem die Arbeitsschritte auf mehreren Maschinen verteilt werden. Dadurch stehen Testergebnisse schneller zur Verfügung. 
  • Kosten sparen: Durch die schnellere Testdurchführung und Flexibilität die Tests jederzeit durchführen zu können, sind Kostenersparnisse möglich.
  • Qualität verbessern:  Automaten machen selten Fehler und führen Tests, selbst bei eintönigen Schritten und hohen Testwiederholungen, mit gleichbleibender Qualität durch.  

Das 8-Phasenmodell – Testautomatisierung breiter denken

Während sich viele bei der Testautomatisierung auf die Umsetzung beschränken, möchte ich Ihnen unser praxiserprobtes 8-Phasenmodell (Abbildung 1) nahebringen, das die Vorbereitung und kontinuierliche Pflege ebenso miteinschließt. Hier drängt sich mir der Vergleich mit dem olympischen Dreisprung auf, bei dem die Athleten, über drei Sprünge (Hop, Step und Jump), Weiten von bis zu 18 Metern erreichen. Damit überwinden sie wesentlich größere Distanzen als beim normalen Weitsprung.

Das 8-Phasenmodell
Abb.1: Das 8-Phasenmodell für eine erfolgreiche Testautomatisierung

Hop – der Vorbereitungssprung   

Oftmals ist die Tatkraft hinter der Entscheidung für eine Testautomatisierung das fehlende Vertrauen in den Status Quo. Die Analyse der Ausgangslage und das Erstellen einer Entscheidungsbasis sind wichtige Vorarbeiten, die vor der Umsetzung zu leisten sind. Denn eine Testautomatisierung lohnt sich keineswegs in jedem Fall.

Phase 1: Die Voranalyse

Mit der Analyse des aktuellen Testprozesses wird das Fundament für eine Testautomatisierung gelegt. Der Testprozess umfasst alle Aktivitäten, die zur Planung und Steuerung, Analyse und Design, Realisierung und Durchführung, Auswertung und Bericht sowie zum Abschluss der Testaktivitäten in einem Projekt benötigt werden [1]. Das Ergebnis einer solcher Analyse offenbart häufig die Schwächen einer manuellen Testdurchführung. Handelt es sich lediglich um einfache Testfälle, ist die Automatisierung aller Testschritte möglich. Bei komplexen Testfällen ist es sinnvoll, nur einzelne Testschritte zu automatisieren.

ROI-Berechnung
Abb. 2: Berechnung mit einem positiven ROI bei 12 Releases im Jahr

Nach Auswahl der Testfälle berechnen Sie das Nutzungspotenzial. Dieses Potenzial in Form eines Business Cases berücksichtigt sowohl feste (Hardware, Lizenzen) als auch variable Kosten (Skripterstellungs- und Wartungskosten). Abbildung 2 zeigt einen positiven Business Case für 450 automatisierbare Testfälle und weitere Annahmen. Dieser kann bei einer niedrigen Anzahl von Testfällen und/oder Testzyklen negativ ausfallen. Eine Handlungsempfehlung auf Basis des Nutzungspotenziales rundet diese Phase ab. Identifizieren Sie ein Nutzungspotential (Abbildung 2), so können Sie mit der nächsten Phase beginnen.

Phase 2: Die Toolevaluation   

Ziel ist es, das am besten geeigneten Tool auszuwählen. Damit Sie den Grad der Eignung messen können, legen Sie die Anforderungen für verschiedenen Bereiche in einer Bewertungsmatrix fest, priorisieren und bewerten diese. Die Ergebnisse der Bereiche fassen Sie in einer Entscheidungsmatrix (Abbildung 3) mit entsprechenden Gewichtungen zusammen. Gemäß ihrer Wichtigkeit (0-3) zählt exemplarisch die Erfüllung einer zwingenden Anforderung dreimal so viel in der Gesamtbewertung wie eine der Kategorie „niedrig“. Die Entscheidungsmatrix spricht im Beispiel eine Empfehlung für Tool B aus, das in der Gesamtbewertung am besten abschneidet.

Toolevaluation
Abb. 3: Abdeckung der Anforderungen durch die einzelnen Tools, gruppiert in drei Bereichen

Step – Sie wechseln in die Umsetzung

Nachdem Sie sich für eine Testautomatisierung entschieden und die Toolauswahl abgeschlossen haben, liegen ausreichend Erkenntnisse für die Umsetzung vor. 

Phase 3: Die Prozessanpassung

Für eine erfolgreiche Testautomatisierung ist es erforderlich einen an der Testautomatisierung ausgerichteten Testprozess zu etablieren. Die Bereitstellung der Testdaten beispielsweise soll in Zukunft automatisiert erfolgen und nicht mehr manuell. Der Einsatz eines neuen Tools und die Automatisierung erhöhen die Komplexität der Systemlandschaft. Daraus entstehen Schulungsbedarf des Personals sowie die Anpassung der Organisationsarchitektur an den neuen Testprozess. Der optimale Umgang mit dem Tool wird mit einer Schulung ggf. durch einen Toolhersteller sichergestellt.  Der Abschluss dieser Phase ist eine Dokumentation des angepassten Testprozesses.

Phase 4: Die Automatisierung

Mit dem Festlegen einer flexiblen und modularen Zielarchitektur für das Framework, wird die Wartbarkeit [3] anfangs sicherstellt. Bei der Automatisierung hat sich die Strategie der kleinen Schritte bewährt. In kleinen Schritten sind die ausgewählten Testfälle iterativ zu automatisieren, um erste Quick-Wins zu erzielen und damit schnell belegen zu können, dass die Entscheidung für eine Automatisierung richtig war. Ein klar strukturiertes Datenmodell und entsprechende Testdatengeneratoren sind notwendig, um die Lauffähigkeit der schrittweise angewachsenen Testautomatisierungssuite zu gewährleisten. Die hohen Softwareengineering Ansprüche, die die Testautomatisierung an das Testobjekt stellt, gilt auch für sich. Die Qualität der erstellten Testskripte ist durch Codeanalysen und Tests sicherzustellen. Mit der Erstellung von entsprechenden Dashboards für die Auswertung und Darstellung der Testergebnisse endet diese Phase. 

Jump – Sie landen in der kontinuierlichen Pflege

Viele Automatisierungsprojekte scheitern nach der Anfangseuphorie, an der Vernachlässigung der Wartungsarbeiten. Änderungen am Testobjekt führen zwangsläufig zu fehlgeschlagenen automatisierten Testfällen. Es ist sicherlich unbequem, sich mit Dingen zu befassen, die nicht so gut funktionieren. Doch für das Aufrechterhalten der Funktionsfähigkeit, ist eine kontinuierliche Pflege der Testautomatisierung und das Überwinden der Hindernisse notwendig.  

Phase 5: Die Ergänzung

Die iterative kontinuierliche Pflege beginnt mit der Phase der Ergänzung. Um das Framework auf dem aktuellen Stand oder die erstellten Testskripte für neue Releases lauffähig zu halten, ist eine regelmäßige Wartung und Ergänzung des Frameworks notwendig. Dabei sind die ursprüngliche Zielsetzung sowie der realisierte Umfang der Testsuite zu bewerten und bei Abweichungen zu ergänzen. Änderung am Testobjekt bedingt das Überarbeiten vorhandener Testfälle oder das Erstellen neuer. Gemäß den Änderungen, die bzgl. Tool und Prozess erfolgt sind, sind technischen Ergänzung wie Installation von Updates and Patches für das Testtool einerseits durchzuführen. Andererseits sind operative Ergänzungen der Arbeitsanweisungen und Handbücher für den sicheren Umgang mit dem Tool notwendig. 

Phase 6: Die Pflege

Die Phase umfasst alle Maßnahmen, die nach den vorgenommenen Ergänzungen in der vorigen Phase, notwendig sind, um die Lauffähigkeit der Testskripte wiederherzustellen. Darunter ist das Überarbeiten der Testskripte, Performanzoptimierungen sowie Code-Refactoring.  Bei höher Anzahl der anzupassenden Testfälle, macht es Sinn mit der Pflege von sogenannten „wertvollen“ Testfällen zu beginnen. Diese sind Testfälle, die die wichtigsten und meistgenutzten Workflows testen und ein großer Indikator für die Softwarequalität sind.

Phase 7: Die Durchführung

Nachdem die Funktionsfähigkeit der Testautomatisierung sichergestellt ist, beginnt die Durchführung der lauffähigen Testfälle (Phase 4). Das Auswerten und die Aufbereitung der Testergebnisse auf Dashboards stellen den Abschluss dieser Phase dar. 

Phase 8: Die Analyse

Die letzte Phase der iterativen kontinuierlichen Pflege ist die Analyse. Prozessaudits sind, vorzugsweise durch „externe“ Personen, die nicht direkt im Prozess involviert, sind regelmäßig durchzuführen. Das Ergebnis ist wiederum Startpunkt für die iterative Pflege. Wie in Abbildung 1 dargestellt, stellt es eine wiederkehrende Basis für die Ergänzung (Phase 5) dar, die für die weitere Sicherstellung der Funktionsfähigkeit erforderlich ist.

Fazit

Die Vorteile einer Testautomatisierung sind sehr verlockend. Nichtsdestotrotz ist das kein Grund, ein Testautomatisierungsprojekt unüberlegt zu starten. Das hier vorgestellte 8-Phasenmodell und dessen Ablaufprozess bilden die Grundlage für solche Vorhaben. Zudem ist das Modell in mehrere Phasen unterteilt, wodurch ein Abbruch des Vorhabens nach jeder Phase möglich ist. Nicht selten ist das Ergebnis der Voranalyse eine Empfehlung für die manuelle Testdurchführung. Dieser Entschluss kann gefasst sein, wenn der berechnete Business Case belegt, dass die Testautomatisierung teurer ist und die Nutzungsschwelle im Vergleich zu einer manuellen Testdurchführung nicht erreicht ist. 

Liegt eine fundierte Entscheidung aus der Voranalyse für eine Testautomatisierung vor, steigert dies die Erfolgswahrscheinlichkeit der umgesetzten Testautomatisierungslösung. Optimal ist es wie beim Dreisprung, wenn die beim Anlauf erreichte Geschwindigkeit bis zum dritten Absprung ausgenutzt wird. Mit einer gut aufgesetzten kontinuierlichen Pflege, die die dauerhafte Lauffähigkeit Ihrer Testautomatisierung sicherstellt, erzielen Sie Bestleistungen.

[1] Basiswissen Softwaretest. Aus- und Weiterbildung zum Certified Tester Foundation Level nach ISTQB-Standard; Andreas Spillner, Tino Linz.
[2] Trendstudie der SwissQ zur Entwicklung des Softwareentwicklungsprozesses in den letzten 10 Jahren: https://swissq.it/en/downloads/trends-benchmarks-report-2020
[3] Das Qualitätsmerkmal Wartbarkeit umfasst laut ISO 9126 die Untermerkmale Änderbarkeit, Analysierbarkeit, Prüfbarkeit und Stabilität

Artikel von:
Nicolas Nwabueze, Cassini Consulting
Nicolas Nwabueze
Senior Management Consultant
Seite teilen
Newsletter Cassini

Newsletteranmeldung

Sie möchten regelmäßig die neuesten Informationen zum Thema Digitalisierung und digitale Transformation erhalten und über spannende neue Jobangebote informiert werden?
Melden Sie sich kostenlos für unseren Newsletter an.


Ja, ich möchte den regelmäßigen Newsletter von Cassini erhalten. Weitere Informationen finden Sie in unseren Datenschutzbestimmungen.

*Pflichtangaben