GUI Testautomatisierung - oder wie man den Kunden nicht enttäuscht

Hennigsdorf, August 2022, Thomasz Manthey

Neue Erfahrung ist teuer, gebraucht ist sie günstiger

Testautomatisierung ist ein bewährtes, wirkungsvolles Mittel, um die Wirkung von Qualitätssicherung zu steigern. Hierbei geht es nicht darum, die manuellen Tests zu ersetzen, sondern die Tester bei den repetitiven, monotonen Anteilen zu entlasten und die Testläufe um zusätzliche Flexibilität zu ergänzen.

Die Testautomatisierung bringt eine Reihe deutlicher Vorteile mit sich, in deren Genuss man erst mit der erfolgreichen Bewältigung des Einführungsprozesses kommt. Dieser ist nicht zu unterschätzen, er kostet viel Aufwand und sollte sorgfältig vorbereitet werden, denn der Teufel steckt im Detail.

Im Folgenden möchte ich auf einige der kritischen Punkte der Konzeption eingehen, die erfahrungsgemäß einen besonderen Fokus erfordern. Betrachtet wird hier der Einsatz von Testautomatisierung  in Oberflächentests. Diese Tests sind aufgrund der erforderlichen Vorarbeit bzw. notwendigen Softwarereife erst spät im Entwicklungsprozess möglich und profitieren besonders von einer Effizienzsteigerung gegenüber rein manuellen Tests.

Reichweite und Wirkung

Die Anwendung von Automatisierungstools durch Entwickler im Backend oder in Unit-Tests zur Code-Validierung sind weit verbreitet. Von dieser Popularität bekommt der Oberflächentester oder sein Testmanager im Regelfall wenig mit, die Ergebnisse kommen in Form gesteigerter Softwarequalität an. Die beiden sind bei der Ausführung manueller Testfälle auf mehr Faktoren als bloße Code-Funktionsweise fokussiert – sie betrachten die Software/Applikation aus der Benutzerperspektive z.B. UX, Performance und Business-Workflows. Um die vielen manuellen Vorgänge zu erleichtern, steht den Testern eine Vielzahl unterstützender Tools aus dem Automatisierungsbereich zur Verfügung, diese beinhalten:

  • einfache vorgangsunterstützende Macro-Plugins mit Recorder-Funktion für den Browser,
  • komplexe Test-Anwendungen wie Selenium, zur Ausführung ganzer Test-Sets,
  • bis hin zu serverfähigen Lösungen (z.B. HP UFT) mit ALM-Integration, die manuell oder zeitgesteuert ausgeführt werden können und „on time“ den aktuellen Softwarezustand widerspiegeln können.

In der Testpraxis bringen diese Tools einen signifikanten Vorsprung gegenüber rein manuellem Testvorgehen. Zu den wichtigsten Punkten gehören:

  • erhebliche Reduktion monotoner, manueller Aufwände und daraus resultierender „Betriebsblindheit“
  • schnellere und konsistentere Testergebnisse
  • beliebige Wiederholbarkeit der Testausführung
  • flexible Absicherung der Hauptfunktionen (Regressionstests)

Die Tool-Verfügbarkeit fällt großzügig aus und die Perspektiven sind sehr optimistisch. Der Erfolg wird aber erst durch eine erfolgreiche Einführung der Testautomatisierung greifbar, was je nach Projekt sehr unterschiedliche Aufwände bedeuten kann. Um darauf bestmöglich vorbereitet zu sein sind vorher sorgfältige Analyse, Abstimmung und Planung erforderlich.

Sprechen wir die gleiche Sprache?

Bevor es in die Planung und Umsetzung geht, muss sichergestellt werden, dass Auftragnehmer und Auftraggeber hinsichtlich ihrer Erwartungen an Umsetzung und Betrieb das gleiche Verständnis haben. Hier führt der Weg über eine detaillierte Abstimmung von Vorgehen, Aufwänden und prognostizierten Nutzen.

Hauptsächlich geht es darum darüber aufzuklären, was die Testautomatisierung (TA) prinzipiell bieten kann – und was nicht.

  • TA kann im Regelfall manuelle Tests nur reduzieren, nicht ablösen. Was ein erfahrener Tester auf einen Blick erkennen kann, lässt sich nur bruchteilhaft in ein Skript überführen. TA kann aber unvergleichbar schneller umfangreiche Funktionen des gesamten Workflows prüfen und Ergebnisse liefern. Manuelles Testen (z.B. explorativ) liefert dafür mehr Details und Umsicht.
  • Einführung der TA ist häufig mit einem erheblichen Zeit- und Ressourcenaufwand verbunden. Die Effekte zeigen sich erst langsam mit dem Aufbau der automatisierten Testbasis.
  • Grundlage des TA-Aufbaus sind gute, detaillierte, manuelle Testfälle mit guter Abdeckung, die bereits vorher vorliegen müssen.
  • Automatisierte Testfälle erfordern einen kontinuierlichen Pflegeaufwand aufgrund der Weiterentwicklung der entwickelten Software oder Änderungen in den Prozessabläufen. Spezialisierte Fachkräfte sind für diese Anpassungen erforderlich.
  • TA punktet in zeitunabhängiger Wiederholbarkeit, insbesondere langer Prozessketten, da die Ausführung praktisch keine Mitarbeiter bindet. In der Auswertung sind ggf. Eingriffe von Testern erforderlich, um mehr Details zum aufgeschlagenen Fehler zu ermitteln.

Und nun die Qual der Wahl

Besonders bei großen Testumfängen sind genaue Vorüberlegungen erforderlich, hier kann die kleinste Fehleinschätzung zu enormen Aufwandssteigerungen führen. Zunächst gilt es, das richtige Tool auszuwählen und die Entscheidung einer Prüfung zu unterziehen. Die Feature-Liste des Tools garantiert noch nicht die Kompatibilität zu dem individuellen, facettenreichen System (eingesetzte Technologien mitsamt Anpassungen, Plugins, etc.). Je komplexer das Zielsystem, umso ausführlicher sollte die Machbarkeitsstudie bzw. ein Pilotprojekt sein. Das minimiert die Risiken wie z.B.:

  • umständliche oder unmögliche Erfassbarkeit bestimmter Objekte
  • Abbildung komplexer Skripte mit optionalen Bedingungen (Systemkomplexität)
  • fehlende Verfügbarkeit erforderlicher Kompetenzen für Betrieb und Instandhaltung
  • umständliche / unmögliche Parallelisierung der Testläufe (Testvolumen vs. Zeit)
  • problematische serverseitige Ausführung und Steuerung der Tools
  • unmögliche Einbindung in ALM-Software (Verfügbarmachung der Ergebnisse)
  • Notwendigkeit zusätzlicher Tools oder Plugins (Kosten + Aufwand)
  • instabile „flaky“ Testfälle (z.B.: umgebungsbedingte Fehlschläge zwischen Tool und System)
  • inakzeptable Dauer der Skriptläufe

Die Studie sollte ebenfalls künftige Entwicklungen am Testgegenstand berücksichtigen, insbesondere Einsatz neuer Technologien oder tiefgreifende Eingriffe in Funktionalität. Die Machbarkeitsstudie muss also sehr viele Faktoren berücksichtigen, dadurch sichert sie den Erfolg der gesamten TA-Einführung. Deshalb ist es wichtig mit dieser Aufgabe einen erfahrenen Experten damit zu beauftragen.

Erst wenn der Profi durch ausreichende Auseinandersetzung mit dem Zielsystem die nötigen Einblicke und Informationen gewonnen hat, ist er in der Lage, qualifizierte Aussagen zur Umsetzung zu machen und bei der weiteren Planung zu unterstützen. Seine Vorarbeit liefert eine konkrete Bewertungsgrundlage des gesamten Vorhabens für alle Stakeholder, die auf dieser Basis weitere Schritte, Aufwände und zu erwartende Nutzen planen können.

Wo ein Wille ist, ist auch ein Weg

Falls die Machbarkeitsstudie keine Hindernisse offenbart hat, die weiteres Vorgehen hindern, gilt es jetzt für die weitere Umsetzung einen realistischen Rahmen zu schaffen. Wenn die Arbeiten innerhalb der Organisationsstrukturen des Kunden zu verrichten sind, ist seine Unterstützung bei der Sicherstellung folgender Kriterien von entscheidender Bedeutung:

  • Angemessener Zeitraum für die Umsetzung, realistische Meilensteine
  • Stabiles, leistungsfähiges Testsystem
  • Transparenz über SW-Veränderungen, Deployments, Wartungszeiten des Testsystems
  • Ungehinderter Zugang zum Testsystem und nötiger IT-Infrastruktur
  • Ausgereifte manuelle Testfälle als Grundlage für die Testautomatisierung
  • Zugang zur Projektdokumentation, insbesondere Prozesse/Workflows
  • Kontakt (Ansprechpartner) zu Entwicklern und Key-Usern aus dem Fachbereich für mögliche Rückfragen
  • Kontinuierliche Abstimmung mit dem Kunden: Fortschrittsberichte, Hindernisse, Störungen, Funde, Folgen

Hat man sich nun für eine Tastautomatisierung entschieden, so geht es an die Priorisierung geeigneter Testfälle – die rein quantitative, der Reihe nach „Verautomatisierung“ manueller Testfälle ist ggf. nur begrenzt wertstiftend. Die Vorauswahl geeigneter Umfänge sollte risikofokussiert sein und zunächst z.B. die prozessualen „Hauptstraßen“ umfassen – also die folgereichsten Ausfallstellen der Software. Bei der Priorisierung hilft die Abstimmung mit der Entwicklung, um Problembereiche gezielt zu identifizieren.

Der nächste Abschnitt besteht aus purer Fleißarbeit der Testautomatisierer und dem stetigen Aufbau einer automatisierten Testbasis – bis zu der benötigten Größe. Die ersten und alle folgenden Testfälle können gleich nach Erstellung zu den automatisierten Testläufen hinzugefügt und bedarfsgesteuert ausgeführt werden.

Testautomatisierung kann in vielen Projekten sehr erfolgreich zur Qualitätssteigerung eingesetzt werden. Dabei ist es sehr hilfreich, wenn man den Weg für diesen Erfolg rechtzeitig ebnet, indem notwendige Voraussetzungen geprüft, bzw. geschaffen werden.

Viel Erfolg und Gute Fehlerjagd!

Alle Neuigkeiten

Zurück zur Newsübersicht

InMediasP zum Abspeichern

In unserer Broschüre haben Sie alle wichtigen Daten und Informationen zu InMediasP auch offline im Blick.