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:

  1. Entwickler und Testingenieure stehen unter Zeitdruck
  2. 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.

Möchten Sie mehr wie dies anzeigen?
Eran Kinsbruner
Software Testing Evangelist
Lesedauer: 5 min

Optimierung des Kundenerlebnisses beim Laden von Elektrofahrzeugen

So geht reibungsloses Aufladen: Testen von Funktionen, Zahlungen, UX und Barrierefreiheit.

Deshalb scheitern Projekte zum maschinellen Lernen

In diesem Artikel: 5 Hauptgründe für das Scheitern von ML-Projekten und wie Unternehmen sie vermeiden.

Krypto-Wallets entwickeln: Worauf müssen Developer achten?

Kryptowährungen verzeichnen weiterhin eine steigende Popularität. Welche Features ein gelungenes Krypto-Wallet benötigt, erfahren Sie hier.

10 Tipps zur Optimierung des Nutzer-Onboardings beim Online-Glücksspiel

Wenn neue Spieler sich schnell registrieren und spielen können, gewinnen alle