Latest News

Was bin ich und warum eigentlich: Automatisiertes Testen für Laien


Ich für meinen Teil bin ein riesiger Fan davon, komplexe Dinge einfach zu erklären (und erklärt zu bekommen). Das ist auch ein Grund, wieso ich einen Artikel schreiben wollte, der sich dem Thema „Automatisiertes Testen“ aus einer Perspektive ohne fundiertes Vorwissen nähert. Im Laufe meiner Recherchen zu diesem Text bin ich dabei auf unheimlich viele inspirierende Publikationen gestoßen, die alle einen anderen Ansatz verfolgen, aber dennoch in den meisten Fällen zu dem gleichen Schluss kommen. Nämlich, dass „Automatisiertes Testen“ die Wirtschaftlichkeit eines Unternehmens signifikant steigern kann.

Digitalisierung ist längst nicht mehr nur eine Entwicklung, die immer schnelllebiger und flächendeckender voranschreitet, sondern eine Realität, der man sich als Unternehmen gar nicht mehr entziehen kann und auch nicht sollte, will man im Wettbewerb seine Vorteile nicht verlieren. Besonders in der heutigen Zeit, in der die Corona-Krise so umfassend viele Veränderungen erfordert, sollten Unternehmen diesen Wind of Change nutzen und ihre Segel entsprechend ausrichten. Denn tun sie das nicht, bleiben sie womöglich hinter ihren Wettbewerbern zurück, die sich sehr wohl, die digitale Transformation nutzend, weiter auf dem Markt behaupten.

Laut einer Studie von eco trifft das besonders auf die Internetwirtschaft zu, wonach „trotz eines Umsatzrückgangs von 1,2 Prozent für die gesamte Branche, diese im Jahr 2020 voraussichtlich rund 145 Milliarden Euro umsetzen wird. Am stärksten profitiert hier der Bereich E-Commerce (B2B und B2C) sowie Betreiber von beitragspflichtigen Portalen, Classified Marketplaces, Werbeträger, Online-Vermarktungsunternehmen und Anbieter von Transaktionsdiensten: Rund 40 Prozent des Umsatzvolumens – 57 Milliarden Euro – werden 2020 in diesem Bereich generiert. Im Zeitraum 2020 bis 2025 ist mit einem Wachstumspotenzial von durchschnittlich 10,3 Prozent pro Jahr zu rechnen. Ein weiteres Drittel des gesamten Umsatzvolumens wird 2020 durch digitale Geschäftsmodelle in Anwenderindustrien (Smart Industries) und durch die Vermarktung digitaler Inhalte (Paid Content) generiert.“ (Quelle)

Balkendiagramm zum Wachstum der Internetwirtschaft von 2020 bis 2025

Digitalisieren als Imperativ. Das gilt auch und besonders für Unternehmen und Bereiche, die nicht auf den ersten Blick zur Tech-Branche gehören

Nicht nur Unternehmen, sondern auch Behörden und andere Institutionen sollten in der heutigen Zeit und insbesondere durch die Erfahrungen und Erkenntnisse der Effekte einer Pandemie die eigene Digitalisierung gründlich durchleuchten und entsprechend aufbauen und verbessern. Menschen wollen bessere Zugänge. Das heißt, dass jeder mit seiner Bank oder Versicherung, aber auch mit Schulen, Behörden oder allen Arten von (Online-)Shops nicht nur am heimischen Computer, sondern auch unterwegs über Laptop, Tablet, Smartphone und zukünftigen Devices agieren will. Damit das aber geht, muss jede Anwendung eben auch auf allen Endgeräten und über alle Browser gleichermaßen funktionieren und (Fun Fact für alle Nicht-EntwicklerInnen wie mich da draußen) das ist gar nicht so selbstverständlich, wie es wirkt, wenn es funktioniert. Eine App, Desktop- oder eine Webanwendung sieht in der Umgebung, für die programmiert wird, perfekt aus, wird aber im schlimmsten Fall völlig durcheinander und verzerrt dargestellt, ruft man dasselbe in einer anderen Umgebung oder auf einem anderen Gerät auf. Und das ist nur ein Aspekt von sehr vielen, die bei der Programmierung berücksichtigt und – getestet – werden müssen.

Nun sollte man bei der Entwicklung neuer Produkte und digitaler Services fix sein und sich nicht zu lange mit trial and error oder, anders ausgedrückt „hämmern und werkeln“, aufhalten. Der eigene Unternehmenserfolg hängt davon ab, dass, egal ob bei Produkt oder Service, die eigentliche Arbeit gut gemacht wird. Das zu erreichen ist in der Regel anspruchsvoll genug. Zu prüfen, ob alles fehlerfrei abläuft, egal unter welchen Voraussetzungen, sollte da nicht mehr allzu viele Ressourcen beanspruchen.
Bis zu einer gewissen Komplexität ist es vollkommen ausreichend, Tests manuell durchzuführen, aber die Schwelle zur Unwirtschaftlichkeit ist da relativ schnell überschritten. Zudem sind einfach viele Szenarien gar nicht manuell testbar. So kann beispielsweise kein Mensch in kurzer Zeit tausende Tests ausführen. Eine Software hingegen tut dies sehr wohl und noch dazu um ein Vielfaches schneller und zuverlässiger, also weniger fehlergefährdet und das 24/7, ohne Urlaub einzureichen. Und am Ende bekommt man auch noch eine hochwertige Protokollierung, was wiederum eine bessere Reproduzierbarkeit ermöglicht, um dann gezielt spezifische Anomalien analysieren zu können. Das entlastet nicht nur die Entwickler ungemein durch kürzere Entwicklungszyklen und eine eindeutig höhere Softwarequalität, sondern es schafft unter anderem die Grundlage für eine kürzere Time-to-Market, und spätestens da sollte das Management aufhorchen.

Aber was wird denn da überhaupt alles automatisiert?

Beschäftigt man sich erst einmal mit der Materie des automatisierten Testens, schwirren einem zunächst unheimlich viele neue Begriffe um den Kopf, von denen ich hier die gängigsten aufgreifen und, wie oben versprochen, einfach erklären möchte.

Verwirrter Hund umgeben von Schlagwortwolke zum Thema Automatisierung

  • Regressions-Test
    Wiederholung von Testfällen, hauptsächlich nach Aktualisierungen, Modifizierungen und Bugfixes einer Software. Damit soll sichergestellt werden, dass trotz Änderungen noch alles so läuft wie vorher. Diese Art Tests werden in regelmäßigen Abständen und so lange wiederholt, bis keine kritischen Fehler mehr auftauchen. Tatsächlich hören diese Tests eigentlich nie auf, es sei denn, das Produkt wird nicht mehr weiterentwickelt.

  • Layout-Test
    Dieser Test ist im Prinzip visuelles Vergleichen von der angezeigten Webseite mit einer Referenz-Webseitendarstellung. Ein Mensch ist normalerweise nicht in der Lage, visuelle Abweichungen so exakt wahrzunehmen, wie das ein Programm schafft, wenn es dabei pixelweise vorgehen kann.

  • Funktionaler Test
    Hier werden Ausgabe, Verhalten und, wie der Name schon sagt, Funktionalität von Systemen geprüft. Also reagieren beispielsweise Buttons und Eingabefelder so, wie sie sollen, und werden die gewünschten Parameter der Sicherheit eingehalten.

  • Cross-Browser-Test
    Hier werden verschiedene Testarten durchgeführt und auf verschiedene Browsertypen bezogen analysiert. Auch hier wieder das Beispiel Webseite: ist optisch und funktional alles identisch, egal ob auf Chrome oder Safari.

  • Cross-Device-Test
    Macht im Grunde das Gleiche wie beim Cross-Browser-Test, nur eben bezogen auf die verschiedenen Endgerätetypen.

  • A/B-Test
    Ganz simpel könnte man sagen, hier steht A für Apfel und B für Birne und das wird dann verglichen. Man möchte wissen, was sich besser verkauft und bei welcher Sorte quasi mehr „zugebissen“ wird. Es werden also per Zufallsverfahren dem User unterschiedliche Versionen einer Seite ausgespielt und über statistische Auswertungen können dann Rückschlüsse auf beispielsweise Performance und Conversion-Rate gezogen werden.

Dennoch muss nicht gleich alles automatisiert werden

Um alle Tests manuell durchzuführen, benötigt ein Unternehmen zu viel Personal und dieses arbeitet für gewöhnlich auch nur tagsüber unter der Woche. Wir wollen aber dennoch keinesfalls unerwähnt lassen, dass Automatisiertes Testen nicht der Heilige Gral ist. Es gibt durchaus auch gute Gründe, darauf zu verzichten. In kleineren Projekten oder für Produkte, die sich noch in der Anfangsphase der Entwicklung befinden, lohnt es sich beispielsweise nicht unbedingt. Auch, wenn mir hier VerfechterInnen des sogenannten test-driven development widersprechen werden. Aber sobald der Wartungs- und Aktualisierungsaufwand für die Testsoftware den der eigentlichen Ziele übersteigt, ist es wirtschaftlich natürlich nicht sinnvoll. Auch der Ansatz, eine Automatisierungssoftware könne oder solle das Testerpersonal komplett ersetzen, ist ein Irrglaube. Die Software ist als eine von vielen wichtigen Komponenten zu sehen.

Interessanterweise gibt es die verschiedensten Beweggründe, auf Automatisierung zu verzichten, darunter sogar die uralte Angst, dass Maschinen Menschen ersetzen und Arbeitsplätze zerstören könnten. Stellt man das Freiwerden kreativer Ressourcen dem aber gegenüber, wird schnell klar, dass Menschen ohnehin nicht wie Maschinen arbeiten wollen.

Wenn eine Maschine eine Aufgabe übernehmen kann, dann soll sie das tun. Der Mensch widmet sich dann weiter essentielleren Aufgaben. So funktioniert Fortschritt.