Testautomatisierung: End-2-End-Tests in der agilen Softwareentwicklung

Testautomatisierung von End-2-End-Tests

Qualifizierte Softwaretests sind heute wichtiger als je zuvor. Allerdings nicht mehr am Ende der Entwicklungszeit, sondern als agiles Testing fortlaufend im Projekt. Durch Testautomatisierung können auch umfangreiche End-2-End-Tests unterstützt werden.

Software-Testing unerlässlich für agile Softwareentwicklung

Qualifizierte Softwaretests waren lange Zeit Nebensache und Testautomatisierung kaum ein Thema. Jeder Entwickler war für das Software-Testing selbst verantwortlich, also warum einen weiteren umfangreichen Prozess ins Projekt aufnehmen? Warum noch mehr Ressourcen mit solchen „Overhead“-Aufgaben blockieren?

„Getestet wird am Ende (vom Praktikanten).“

In der agilen Softwareentwicklung gilt das natürlich längst nicht mehr. CI/CD (Continuous Integreation / Continuous Delivery) bedeutet eben auch: Continuous-Testing. Komponenten- und begrenzte Integrationstests werden dabei von den Entwicklerteams selbst erstellt und fortlaufend ausgeführt.

Diese interne Testautomatisierung dient als agiles Testing weniger der klassischen Qualitätskontrolle als der Steuerung des Softwaredesigns. So kann man etwa schnell herausfinden, welche Auswirkungen ein neues Feature auf bestehende Komponenten hat.

Sind End-2-End-Tests bei agilem Testing notwendig?

Vollständige End-2-End-Tests durch unabhängige Software-Tester soll und kann dieses agile Testing von Komponenten aber nicht ersetzen. Denn erst hier wird das finale Zusammenspiel aller Komponenten einer harten Qualitätskontrolle unterzogen: von der eigentlichen Anwendung über genutzte Datenbanken und grundlegende Infrastrukturen bis hin zur Software auf Client-Seite, etwa einem Browser.

Durch End2End-Testing besteht die Chance auch die Fehler zu entdecken, die bei isolierten Komponententests nicht auffallen.

End-2-End-Tests sind daher gerade für komplexe Web-Anwendungen unerlässlich – und eine Herausforderung zugleich. Die Testpläne umfassen oft etliche Kombinationen aus OS, Browser und Hardwareausstattung. Für jede dieser Kombinationen müssen unzählige Seitenaufrufe, Klicks, Scrolls und Formulareingaben getestet werden.

Sollten End-2-End-Tests durch Testautomatisierung umgesetzt werden?

Ohne Testautomatisierung mit Lösungen wie Selenium wären diese ausführlichen End2End-Tests innerhalb von CI/CD-Prozessen kaum zu bewältigen, auch nicht für große Expertenteams, die ausschließlich mit dem Software-Testing beauftragt sind.

Den Aufwand für End-2-End-Tests zur besseren Qualitätssicherung scheuen jedoch noch viele Unternehmen. Zum Ausgleich intensivieren sie andere Tests und setzen etwa auf eine testgetriebene Entwicklung. Das lässt sich meist einfacher in agile Prozesse integrieren als End-2-End-Tests.

Das spricht gegen Testautomatisierung in End-2-End-Tests

Ein häufiges Argument gegen automatisierte End-2-End-Tests sind die wiederkehrenden Anpassungen von Testplänen, die z.B. durch einen Merge notwendig werden können. So kann das Software-Testing schon bei kleinen Änderungen an einem User-Interface mehrere Fehler produzieren.

Das hemmt die Entwicklungsgeschwindigkeit und hat zur Konsequenz, dass Fehler generell einfacher toleriert werden.

Zudem ist es oft alles andere als trivial, von den durch End-2-End-Tests gefundenen Fehlern auf konkrete Stellen im Quellcode der getesteten Anwendung zu schließen. Als Fehlerquelle in Frage kommen alle Bestandteile des genutzten Systems, von der angebundenen Datenbank bis zum Browser.

Gegen die Testautomatisierung wird also vor allem angeführt, dass sie kaum Zeitersparnis bringe, weil Setup, Ausführung und Ergebnisanalyse eben aufwändig seien. Das alles ist nur dann wahr, wenn der End-2-End-Test überfrachtet ist. Und dann ist es kein Wunder, wenn es wieder heißt: „Getestet wird am Ende.“

Stattdessen Testautomatisierung gezielt für End-2-End-Tests einsetzen

In der agilen Softwareentwicklung gibt es aber kein definitives Ende und deshalb sind fortlaufende End-2-End-Tests sinnvoll, will man eine gleichbleibende Qualität während des gesamten Software-Lebenszyklus erreichen.

Um diese erfolgreich in CI/CD-Prozesse einzubauen, sollten sie vor allem für übergreifende Integrationsaspekte genutzt werden und nicht für Funktionalitätstests einzelner Bestandteile. Diese sind in zielgerichteten kleineren Tests viel besser aufgehoben.

Besteht ein neues Feature den Komponententest oder Integrationstest nicht, bleibt es beim Merge außen vor, bis ein Fix gefunden wurde.

Testautomatisierung für End2End bedarf also guter Planung, Pflege und Disziplin. Das gilt für interne Testpläne ebenso wie für die Arbeit externer Software-Tester. Ist das Vorgehen aber einmal gelernt und integriert, wird kein Qualitätsmanager mehr darauf verzichten wollen.

So funktionieren automatisierte Softwaretests

Sevenval bietet ISTQB-zertifiziertes Software-Testing von Funktionalität, Usability, Performance und Barrierefreiheit, End-to-End automatisiert für den gesamten Software-Lebenszyklus.

In diesem Video sehen Sie, wie wir die Testautomatisierung von End2End-Tests vornehmen:

Für mehr Informationen über das Software-Testing mit End-2-End-Tests empfehlen wir diesen Artikel im Google Testing Blog. Außerdem haben wir unsere Experten zum Thema Testautomatisierung befragt.

Software-Testing Whitepaper

In unserem Whitepaper zeigen wir Ihnen, wie Sie durch Software-Testing nachhaltige Qualität für Ihre digitalen Services erreichen können: Durch das Quality Mindset.

Zur Blog-Startseite