Testautomatisierung ist notwendig, aber nicht zwangsläufig einfach. Unternehmen stehen komplexen Entscheidungen gegenüber – alles steht und fällt mit der Wahl des passenden Frameworks.
Auf diese Eigenschaften kommt es dabei an: einen großen Funktionsumfang, Ende-zu-Ende-Tests von Workflows, ad hoc-Anpassungen, einfache Wartbarkeit und eine anpassbare Usability für technisch versierte Anwender sowie für solche, die nicht selbst programmieren können.
In der modernen Softwareentwicklung spielt die Qualitätssicherung eine zentrale Rolle, um den Anforderungen an Zuverlässigkeit, Effizienz und Nutzerzufriedenheit gerecht zu werden. Manuelle Tests stoßen dabei schnell an ihre Grenzen – insbesondere bei komplexen Anwendungen, häufigen Änderungen und der Notwendigkeit schneller Release-Zyklen. Hier setzt die Testautomation an: Durch den Einsatz automatisierter Testverfahren können Fehler frühzeitig erkannt, die Testabdeckung erhöht und wiederkehrende Prüfprozesse effizienter gestaltet werden. Dies ermöglicht nicht nur eine höhere Softwarequalität, eine kürzere Time-To-Market und eine höhere Release-Frequenz, sondern auch die Einsparung von Zeit und Ressourcen.
Unternehmen benötigen für die Testautomation eine Software, doch die Wahl ist nicht leicht. Das falsche Tool kann unter Umständen den notwendigen Funktionsumfang nicht abdecken, verursacht schwer zu kalkulierende Mehrkosten oder hakt bei der Usability. Diese fünf Faktoren sollten Unternehmen bei der Wahl eines Test-Frameworks beachten.
1. Die richtige Plattform
Open Source oder proprietäre Lösungen: Vor dieser Wahl stehen Unternehmen, wenn eine Software für Testautomatisierung angeschafft werden soll. Der Markt an Open Source Tools ist groß – mit diesen lassen sich in der Regel spezifische Systemkomponenten wie Weboberflächen oder APIs testen und bestimmte Testarten, etwa Last- und Performance-Tests, abbilden. Die Nachteile: Die passenden Tools müssen ausgewählt und ihr Zusammenwirken orchestriert werden. Das bedeutet, dass Entwickler verschiedene Tools, Frameworks und Bibliotheken so integrieren müssen, dass Testablaufsteuerung, Testdatenhaltung, Reporting und Logging zentral möglich werden. Hier hat sich die Datenübergabe zwischen den Komponenten des Automationsframeworks als Herausforderung gezeigt, zumal oft unterschiedliche Programmiersprachen eingesetzt werden. Insgesamt ist es also ein erheblicher Aufwand, ein solches Framework aufzusetzen und zu unterhalten. Ohne Programmierkenntnisse gelingt das nicht und Mitarbeiter müssen in individuelle Frameworks meist mit hohem Aufwand eingearbeitet werden. Zudem mangelt es Open Source Lösungen meist an einer ausgefeilten Usability, weil die Bedienbarkeit nicht im Fokus steht – Wert wird vielmehr auf die Kernfunktionalitäten gelegt.
Die zweite Möglichkeit ist, ein proprietäres Tool und damit eine schlüsselfertige Lösung zu lizenzieren. Damit muss die Testautomatisierung zwar nicht aufwändig selbst zusammengestellt werden – die Kehrseite der Medaille besteht dann allerdings im meist eingeschränkten Funktionsumfang: Anpassungen sind entweder nicht möglich oder nur mit großem Aufwand – und zusätzlichen Kosten. Auch die Integration von weiteren Tools ist von herkömmlichen proprietären Lösungen nicht vorgesehen und entsprechend schwierig.
Diese Probleme löst eine proprietäre Lösung, die eine große Flexibilität bei Anpassungen besitzt. Wenn sie einen adäquaten Funktionsumfang bietet, vereint sie das Beste aus beiden Welten.
2. Ad hoc-Anpassungen
Sind neue Software-Funktionen dazugekommen oder wurde der Tech-Stack angepasst und hat sich damit das System unter Test verändert, bedeutet das unter Umständen, dass auch das Testautomationstool ad hoc angepasst werden muss. Hier stellen Open Source und proprietäre Lösung Unternehmen vor ihre charakteristischen Herausforderungen: Open Source erlaubt diese Anpassungen – mit hohem Aufwand und mit tiefgreifenden Kenntnissen. Proprietäre Tools sind oft zu starr, Lösungen für Sonderfälle nicht vorgesehen oder die Anbieter können neue Anforderungen nicht ad hoc bereitstellen.
Es gibt hier zum Glück auch Anbieter, die derartige projektspezifische Erweiterungen erlauben, wenn die integrierten Funktionalitäten an ihre Grenzen kommen. Ein agiler Partner kann sofort reagieren, die Machbarkeit der Erweiterung prüfen und das neue Feature idealerweise auch neben Release-Zyklen zur Verfügung stellen. Das erlaubt die schnelle Anpassung des Testwerkzeugs – und damit einen reibungslosen Testablauf.
3. Funktionsumfang Ende-zu-Ende testen
Die Software sollte einen großen Funktionsumfang mitbringen und Tests aller Bestandteile der Anwendung sowie der Systemkomponenten – Oberflächen (GUI), Datenbanken, Fileserver und APIs (z.B. REST und SOAP) – ermöglichen. Ebenso ist die Abdeckung von Zertifikaten und Tokens, E-Mails und Dokumenten wie PDFs notwendig.
Auch die Durchführung verschiedener Testarten sollte die Lösung erlauben. Damit können ausprogrammierte funktionale Tests für andere Testarten wie Last- und Performance Tests genutzt werden. Darüber hinaus sollte das Tool auf verschiedenen Teststufen wie Komponententests, Integrationstests und Systemtests einsetzbar sein.
Unternehmen profitieren, wenn das Testtool eine konsequente Ende-zu-Ende-Testung erlaubt, da sich so Sprünge zwischen verschiedenen Tools vermeiden lassen.
4. Unterschiedliche User Interfaces
Anwender von Testautomationswerkzeugen bringen nicht per se das gleiche Knowhow mit: Auf der einen Seite gibt es Fachexperten, die sich mit den Funktionen der Software unter Test auskennen, auf der anderen Seite steht der Entwickler oder Testautomatisierer mit Programmierkenntnissen. Wenn beide Anwendertypen an der Testautomation beteiligt werden, können die Testabdeckung und die Qualität optimiert werden, da alle verfügbaren Ressourcen zur Qualitätssicherung genutzt werden.
Deswegen ist es wichtig, dass die Testsoftware die unterschiedlichen Anforderungen beider Anwendergruppen bedient: Der Fachexperte kommt mit einem grafischen Interface mit Drag und Drop zurecht, Tests können nach dem Baukastenprinzip erstellt werden. Der Testautomatisierer nutzt eine integrierte Entwicklungsumgebung (IDE), kann in einer Programmierumgebung arbeiten oder in einem Texteditor coden.
5. Einfache Wartung
Ein Faktor, den Unternehmen ebenfalls bedenken sollten, ist die Wartbarkeit ihres Testautomationstools bzw. der Testskripte. Methoden wie Capture & Replay für die GUI-Automation bedeuten einen höheren Wartungsaufwand, da bei Änderungen etwa an der Oberfläche oder bei Umbenennungen von IDs der UI-Elemente Tests neu aufgezeichnet oder bestehende Skripte manuell angepasst werden müssen.
Ein gutes Tool ermöglicht deswegen die Erstellung von Testfällen, die einfach zu warten sind. Das gelingt zum einen mit einem sauberen Testdatenmanagement und zum anderen mit einem modularen Aufbau der Lösung.
Das Testdatenmanagement erlaubt die zentrale Anpassung der Tests statt Änderungen in jedem Skript. Es muss differenziert, hierarchisch und mehrstufig aufgebaut sein, mit Serveradressen und Zugangsdaten auf globaler Ebene und Testfall-spezifischen Daten auf darunter liegenden Ebenen. Der modulare Aufbau nach dem Baukastenprinzip ermöglicht eine einfache Wiederverwendbarkeit der programmierten Funktionen.
Fazit
Unternehmen benötigen ein Testautomationswerkzeug, das genau auf ihre Bedürfnisse zugeschnitten ist: Es sollte Ende-zu-Ende-Tests erlauben, auf verschiedenen Teststufen einsetzbar sein, alle Komponenten und Schnittstellen ansprechen und sich bei Bedarf schnell anpassen lassen. Idealerweise sind die Skripte einfach zu warten und das Tool bietet für Anwender verschiedener Expertise eine gute Usability.
Autor: Dr. Robert Knack, Geschäftsführer netqa GmhH