Zwischen Erwartung und Ergebnis: End-to-End-Tests für Web-Frontends

Seite 3: Guter Ansatz mit Ergänzungsbedarf

Inhaltsverzeichnis

Das Testing von Web-Frontends ist und bleibt schwierig. Während andere Bereiche der Frontend-Entwicklung entgegen landläufiger Meinung immer stabiler und reifer werden, zeichnet sich für das Testing kein allgemein anerkannter Ansatz ab. Gleichwohl haben sich im Bereich der End-To-End-Tests in letzter Zeit starke Verbesserungen ergeben, die sie ins Zentrum des Testings rücken. Ohnehin sind sie vor allem dazu geeignet, das komplexe Zusammenspiel des Web-Frontends als Ganzes zu prüfen. Für die Bereiche, in denen E2E-Testing nicht sinnvoll ist, leisten statische Codeanalyse, Unit-Tests und manuelle Überprüfungen gute Dienste.

Dieser Artikel widerspricht den gängigen Formen von Test-Pyramide, -Eiswaffel, oder -Pokal, bei denen End-To-End-Tests nur einen untergeordneten Wert haben. Ein bekannter Entwickler bei Google hat auf Twitter aufgeführt, wie End-to-End-Tests, statische Typechecks und visuelle Integrationstests für deren Teams die Fehler in der Produktion reduziert hat.

End-to-End-Tests über Nacht laufen zu lassen, ist sinnvoll, wenn sie nicht brüchig beziehungsweise indeterministisch sind. TestCafe ermöglicht, von jedem fehlgeschlagenen Test einen Screenshot zu erzeugen, den Entwickler sich am nächsten Morgen ansehen können.

Der Autor dieses Artikels hat in einem Colab-Notebook einen fortgeschrittenen Ansatz für visuelle Regressionstests mit Methoden des Unsupervised Machine Learning beschrieben. Für dasselbe Anwendungsbeispiel hat er anhand von Screenshots des Golden Master einen sogenannten Autoencoder trainiert, der auf allgemeine Art lernt, wie die korrekte Anwendung aussieht. Damit lassen sich die Screenshots potenzieller Regressionen überprüfen. Weichen die Bilder von der korrekten Anwendung ab, können Entwickler wie bei gewöhnlichen visuellen Regressionstests überprüfen, ob es sich um Fehler oder korrekte, aber neue Darstellungen der Anwendung handelt. Dieser Ansatz ist grundsätzlich mächtiger als ein klassisch eingesetzter visueller Regressionstest, bei dem lediglich Screenshots bestimmter Anwendungszustände paarweise zum Vergleich bereitstehen.

Oliver Zeigermann
hat über Jahrzehnte in vielen unterschiedlichen Sprachen und mit vielen Techniken Software entwickelt. In den letzten Jahren ist er tief in die Analyse großer Datenmengen unter anderem auch mit Techniken des Machine Learning eingestiegen. Er arbeitet als freiberuflicher Berater und Entwickler und als Architekt bei embarc in Hamburg.

(rme)