ML-basierte Testautomatisierung: Die Zukunft für QA-Teams
Die Transformation der Softwareentwicklung und des Testens hat gerade erst begonnen. Während das klassische manuelle und automatisierte Testen auch zu Beginn des neuen Jahrzehnts unverzichtbar bleibt, bieten sich mit Künstlicher Intelligenz (KI) und Machine Learning (ML) neue Alternativen.
In den letzten Jahren waren Unternehmen bestrebt, schnell Wert für ihre Kunden zu generieren. Dies führte zu einer Verlagerung weg vom klassischen Wasserfallmodell hin zu agilen Methoden und DevOps. Voraussetzung für eine erfolgreiche DevOps-Kultur ist ein hoher Automatisierungsgrad im Unternehmen über die gesamte Development-Pipeline hinweg – Testaktivitäten eingeschlossen.
Während in den Unternehmen Wege gefunden wurden, Software in kleineren Einheiten zu entwickeln (z. B. durch Sprints, Arbeiten in Squads oder andere DevOps-Prozesse), hat sich die Qualitätssicherung nicht verändert.
Genau an dieser Stelle kommen die neuen KI- und ML-Algorithmen ins Spiel.
Grenzen der traditionellen Testautomatisierung
Bisher nutzten QA-Teams und Entwickler führende Open-Source-Frameworks wie Selenium, Appium und andere codebasierte Scripting-Lösungen zur Testautomatisierung. Vorteile sind bereits bewährte Praktiken sowie umfangreiche Wissensdatenbanken und Dokumentationen. Allerdings bringen codebasierte Scripting-Lösungen auch Herausforderungen mit sich. Sie:
- erfordern umfangreiche Kenntnisse in Java/JavaScript oder einer anderen Programmiersprache,
- neigen dazu, bei Änderungen der Anwendung im Laufe der Zeit unzuverlässig und instabil zu werden,
- nutzen Frameworks, die gut in die Entwicklungsumgebung der Testingenieure und Entwickler integriert sind (IntelliJ, Eclipse, usw.).
Angesichts dieser Herausforderungen suchen QA-Teams nach stabileren Alternativen, die einfacher zu skripten und zu pflegen sind und eine kürzere Time-to-Value oder schnelleres Feedback ermöglichen.
Für viele Software-Testteams ist ML-basierte Testautomatisierung die Antwort.
Sie ist jedoch kein Patentrezept. Wann ist der richtige Zeitpunkt für den Einsatz von ML-basierter Testautomatisierung? Wann sollte man lieber auf traditionelle Testmethoden setzen? Das hängt vom Use Case ab.
Kategorie | Traditionelle Testautomatisierung | ML-basierte Testautomatisierung |
Test Authoring | Manuelle Abläufe definieren, im Stile des Behavior Driven Development (BDD) | Testläufe aufzeichnen (normalerweise keine Programmierung) |
Test Maintenance | Proaktive Änderungen erforderlich | Selbstkorrektur erfolgt automatisch |
Reife | Hoch (einschließlich Richtlinien, Dokumente) | In der Entwicklung (Web weiter fortgeschritten als Mobile) |
Testentwicklungskompetenz | Mittel bis hoch | Gering bis mittel |
Testumgebung | IDE | ML UI |
Testarten | API, Last, funktional | Überwiegend funktional und API |
Anwendungstypen | Alle Typen | Überwiegend Web |
Use Cases für ML-basierte Testautomatisierung
Unternehmen können und sollten ihre Teststrategie nicht komplett auf ML-basierte Tests umstellen. Stattdessen sollten Entwicklungs- und Testteams anhand klar formulierter KPIs und Erfolgskriterien abwägen, wann ML-basiertes Testen wirklich sinnvoll ist.
Im Folgenden sind vier der Hauptanwendungsfälle ML-basierter Testautomatisierung aufgeführt. Sie können als Ausgangspunkt dienen, um weitere Use Cases zu identifizieren:
- Unzuverlässige codebasierte Testskripte eliminieren
- Business-Testern eine Alternative für die Erstellung automatisierter Testabläufe bieten
- Test Automation Coverage steigern
- Zeit bei der Erstellung und Betreuung automatisierter Testabläufe einsparen
Erfahre mehr zu den Automation Essentials für das agile Zeitalter.
Unzuverlässige codebasierte Testskripte eliminieren
Unzuverlässige codebasierte Testskripte gefährden die digitale Qualität und sind häufig das Ergebnis schlechter Programmierung. Dadurch sinkt das Vertrauen in Testautomatisierungs-Skripte. Woher weiß man, ob Testskripte instabil sind? Hier ein paar Anhaltspunkte:
- Inkonsistente Testergebnisse zwischen Testläufen oder Plattformen
- Die Tests verwenden keine stabilen Object Locators
- Die Tests behandeln umgebungsbedingte Aspekte wie Pop-up-Elemente, Interrupts, usw. nicht korrekt
- Falls deine Testskripte instabil sind, solltest du Bottlenecks aufspüren und herausfinden, wo die codebasierte Testautomatisierung dir keinen Nutzen bringt
Wenn deine instabilen Testskripte mit einer codebasierten Programmiersprache (z. B. Java, JavaScript oder Python) in einer integrierten Entwicklungsumgebung (IDE) erstellt wurden, kannst du sie mit ML-basierten Tools aufzeichnen und plattformübergreifend so oft wie nötig abspielen. Dies kann über die Benutzeroberfläche des ML-Tools selbst oder über einen Continuous Integration (CI)-Server erfolgen.
Unzuverlässige codebasierte Testskripte gefährden die digitale Qualität und sind häufig das Ergebnis schlechter Programmierung.
Business-Testern eine Alternative für die Erstellung automatisierter Testabläufe bieten
Die Testautomatisierung leidet heutzutage unter geringen Erfolgsquoten. Neben unzuverlässigen codebasierten Testskripten gibt es dafür zwei Hauptgründe:
- Entwickler und Testingenieure stehen unter Zeitdruck
- Agilen Feature-Teams fehlen die Fähigkeiten zur Erstellung von Automatisierungsskripten während der Sprints
Die fehlenden Skills in agilen Feature-Teams stellen eine Chance für Datenexperten und Business-Tester dar. Diese Nicht-Tester können die ML-basierten Tools effektiv nutzen und durch einfache Aufzeichnung und Wiedergabe robuste Testautomatisierungs-Skripte für funktionale und explorative Tests erstellen.
Test Automation Coverage steigern
Wenn manuelle Tests durch ML-basierte Testautomatisierung ersetzt werden, steigt mit hoher Wahrscheinlichkeit die gesamte Test Automation Coverage. Gleichzeitig sinkt die Gefahr, dass Fehler in die Produktion gelangen. Doch auch hier muss sichergestellt werden, dass das Team effizient arbeitet und Wert schafft. Der Umfang der ML-basierten Testautomatisierungs-Suite sollte zusammen mit dem Team bestimmt werden, um Duplikate zu vermeiden und den Fokus auf die Problembereiche zu richten.
Auch die Betrachtungsweise der Ergebnisse aus beiden Testverfahren muss berücksichtigt werden. Durch ein kohärentes Quality Dashboard, das beide Testautomatisierungs-Berichte in einer einzigen Ansicht darstellt, kann die allgemeine Produktqualität vom Management leicht beurteilt werden.
Automatisiertes und Manuelles Testing: Die richtige Balance finden – jetzt lesen.
ML-basierte Testautomatisierung ist durchschnittlich 6-mal schneller codebasiertes Testen. Dadurch lässt sich die Time-to-Value verkürzen.
Zeit bei der Erstellung und Betreuung automatisierter Testabläufe einsparen
ML-basierte Testautomatisierung ist durchschnittlich 6-mal schneller codebasiertes Testen. Dadurch lässt sich die Time-to-Value verkürzen.
Was macht die ML-basierte Testautomatisierung so viel schneller? Beim codebasierten Testen muss der Entwickler die richtige Umgebung (z. B. Selenium Grid) bereitstellen, mittels Code die Voraussetzungen schaffen und den Code in der IDE debuggen. Das erfordert Zeit, Know-how und Arbeit – und es ist keine einmalige Investition. Bei Änderungen am Produkt muss der Entwickler den Code ständig aktualisieren.
Die ML-basierte Testerstellung ist in der Regel ein Aufzeichnungs- und Wiedergabe-Prozess mit sich selbst korrigierenden Algorithmen. Dies erfordert meist keinen großen Pflegeaufwand, sofern keine nennenswerten Änderungen an den Element Locators oder dem Produkt selbst vorgenommen werden.
Allerdings sind ML-basierte Lösungen weniger ausgereift als codebasierte Tools. Folglich gibt es Einschränkungen in Bezug auf die Flexibilität und die Integration mit anderen Tools und Frameworks. Dies sollte bei der Entscheidung, wo die ML-basierte Testautomatisierung Anwendung finden soll, berücksichtigt werden.
Die Zukunft der ML-basierten Testautomatisierung
Im Bereich der ML-basierten Testautomatisierung wird in den nächsten Jahren viel passieren. Die ML-Tools werden sich weiterentwickeln. DevOps-Teams sollten in den kommenden ein bis zwei Jahren ihre Prozesse anpassen und integrieren, um diese Tools in ihren Software-Entwicklungszyklus einzubinden.
Neue Methoden werden vonnöten sein, um entscheiden zu können, wann ML-basierte und wann konventionelle codebasierte Optionen Sinn machen. Außerdem muss eine nahtlose Integration der Tools in bestehende CI/CD-Tools und -Frameworks sowie in die Reporting-Strukturen möglich sein.
Und nicht zuletzt werden ML-Tools künftig neben Funktionstests auch für andere Testarten wie etwa Sicherheitstests eingesetzt werden.
Ich empfehle, auszuloten, wie ML-basierte Testautomatisierung vorhandene codebasierte Verfahren ergänzen kann und für welche Anforderungen sie sich besonders gut eignet. Mit dem richtigen Ansatz kann ML-basierte Testautomatisierung den Wert deines Softwareentwicklungszyklus umgehend steigern.