Skip to main content

Der Einsatz von künstlicher Intelligenz (KI) in der Testautomatisierung ist der neueste Trend in der Qualitätssicherung. Das Testen im Allgemeinen und die Testautomatisierung im Besonderen scheinen vom „Mit KI wird alles besser“-Fieber erfasst worden zu sein.

Da KI, maschinelles Lernen und neuronale Netze derzeit hoch im Kurs stehen, war es vielleicht unvermeidlich, dass KI auch ihren Weg in die Testautomatisierung finden würde.

Ein Blick auf Testautomatisierung

Ich erinnere mich an eine Zeit vor einigen Jahren, als Testautomatisierung noch neu war und eines meiner Qualitätssicherungsteams an einem Projekt für einen großen Kunden arbeitete. Es handelte sich um eine mobile Anwendung mit Millionen von Nutzern und monatlichen Release-Zyklen. Das QA-Team war in den ersten zwei Wochen des Zyklus meist entspannt und arbeitete danach bis zur Veröffentlichung hektisch – eine der kuriosen Nebenwirkungen agiler Softwareentwicklung, über die man in den Schlagzeilen selten liest!

Want more from The CTO Club?

Create a free account to finish this piece and join a community of CTOs and engineering leaders sharing real-world frameworks, tools, and insights for designing, deploying, and scaling AI-driven technology.

This field is for validation purposes and should be left unchanged.
Name*

Schließlich hatte einer der QA-Leads, der es satt hatte, während der ruhigen zwei Wochen Däumchen zu drehen, damit begonnen, ein Framework für Testautomatisierung zu entwickeln. Er schrieb einige Testskripte in Ruby mit Selenium / Appium und Jenkins für eine einfache Pipeline, einschließlich schicker Berichte mit Rot / Gelb / Grün-Indikatoren für Testfehlschläge und -erfolge.

Dies gelang ihm erfolgreich über einige Release-Zyklen hinweg. Dann stellten wir es unserem Quality Chief vor, der es unseren Kunden präsentierte und diese so begeisterte, dass sie bereit waren, automatisiertes Testen als Unterprojekt zu bezahlen. Wir schwebten auf Wolke sieben und waren ganz vorne dabei!

Allerdings bekam „ganz vorne dabei“ eine neue Bedeutung, als wir einige Monate später die grundlegende Wahrheit über die Testautomatisierung entdeckten, mit der sich heute jeder QA-Automationsingenieur auseinandersetzen muss:

Es ist nicht so einfach, automatisierte Tests zu erstellen!

Warum erzähle ich das? Weil wir uns schon bald wie Alice im Mordor-Land fühlten, die wie verrückt mit der Roten Königin rannte:

„Man muss so schnell rennen, wie man kann, um am gleichen Fleck zu bleiben.“ - Lewis Carroll, Alice im Wunderland. (Quelle)

Wir hatten gerade die ernüchternde Realität der Testautomatisierungsfalle entdeckt: Einer unserer QA-Ingenieure musste die Automatisierungssuite praktisch bei jedem Release-Zyklus aktuell halten, weil die Änderungen so schnell und zahlreich kamen!

Schon eine Änderung am Namen eines Feldes, und unsere automatisierten Softwaretests waren sprichwörtlich im Kaninchenbau verschwunden. Besonders zu Beginn eines neuen Releases war dies problematisch, da das Entwicklungsteam viele neue Funktionen hinzufügte.

An der Testautomatisierung selbst hat sich seither grundlegend wenig geändert, da sie weiterhin kontinuierliche Überwachung und Wartung erfordert. Erst mit den jüngsten Fortschritten in den Fähigkeiten der KI eröffnen sich wirkliche Möglichkeiten für dramatische Verbesserungen bei Ansatz und Umsetzung.

KI-Hype vs. Realität

Die KI-Technologie in ihrer heutigen Ausprägung besteht vor allem darin, Maschinenlern-Algorithmen zu nutzen, um Modelle mit großen (oder zumindest größeren) Mengen an Daten zu trainieren und die trainierten Modelle dann einzusetzen, um Vorhersagen zu treffen oder gewünschte Ergebnisse zu erzeugen. Fast alle KI-Anwendungen lassen sich auf diese – zugegeben vereinfachte – Beschreibung herunterbrechen. Was uns dabei besonders interessiert, ist jedoch die zentrale Frage:

Wird es KI wirklich gelingen, Testfälle automatisch zu generieren und zu aktualisieren? Fehler zu finden? Die Testabdeckung zu verbessern?

Die Antwort darauf ist derzeit alles andere als klar, denn wir befinden uns am Höhepunkt des KI-Hype-Zyklus. Ein bestimmter Teilbereich, das Deep Learning, hat einen Großteil dieser Aufregung ausgelöst.

Der Gartner Hype Cycle für Künstliche Intelligenz, 2019. (Quelle)

Was ich an diesem Diagramm besonders bemerkenswert finde, ist Folgendes:

Wenn Siri wirklich schon über dem Hype-Berg hinweg ist, sind wir noch weit von Kansas entfernt, Dorothy!

Ich kenne viele, die sich wiederholen müssen, bis Siri endlich versteht, was sie sagen wollen (nichts gegen Siri-Fans. Ganz ehrlich 😉).

Der Hype-Zyklus zeigt uns, dass es große Begeisterung für das Potenzial von KI gibt, die jedoch abkühlt, bevor alle in den Brot-und-Butter-Alltag übergehen. Einfach ausgedrückt besagt Gartners schickes Diagramm also:

Künstliche Intelligenz: Erwartung vs Realität Screenshot
Künstliche Intelligenz: Erwartung vs. Realität.

Auch wenn wir noch weit von der Singularität entfernt sind, hat die KI in ihrer derzeitigen Ausprägung dennoch das Potenzial, die Testautomatisierung erheblich zu verbessern.

Wie erzeugt Machine Learning automatisierte Tests?

  1. Training: In der Trainingsphase muss das Machine-Learning-Modell mit einem spezifischen Organisationsdatensatz trainiert werden, der Codebasis, Anwendungsoberfläche, Logs, Testfälle und sogar Spezifikationsdokumente beinhaltet. Ein zu kleiner Trainingsdatensatz kann die Wirksamkeit des Algorithmus verringern.

    Manche Tools verfügen über vortrainierte Modelle, die durch kontinuierliches Lernen für spezielle Anwendungen wie UI-Tests aktualisiert werden, sodass verallgemeinertes Lernen in einer bestimmten Organisation eingesetzt werden kann.

  2. Ausgabe / Ergebnisgenerierung: Je nach Anwendungsfall generiert das Modell Testfälle, überprüft bestehende Testfälle auf Codeabdeckung, Vollständigkeit, Genauigkeit und führt sogar Tests aus. In allen Fällen muss ein Tester das erzeugte Ergebnis überprüfen, um eine Validierung zu erhalten und sicherzustellen, dass es verwendbar ist.

    Wenn wir das mit autonomen Fahrzeugen vergleichen, ähnelt das Ergebnis eher einer Fahrassistenz als einem echten fahrerlosen Auto.

  3. Kontinuierliche Verbesserung: Je regelmäßiger eine Organisation das Tool einsetzt, desto mehr Trainingsdaten werden generiert, was die Genauigkeit und Effektivität der bestehenden trainierten Netzwerke potenziell steigern kann. Kurz gesagt, das KI-System lernt und verbessert sich ständig weiter.

Machine-Learning-Algorithmen revolutionieren die Testautomatisierung. Um Tools zu finden, die diese fortschrittlichen Algorithmen enthalten, lesen Sie unseren Leitfaden zu führenden Software-Test-Tools

Anwendungsbereiche von KI in der Testautomatisierung

Schauen wir uns einige Anwendungsfälle von KI in der Testautomatisierung genauer an, darunter das Unit Testing, das Testen der Benutzeroberfläche, API-Tests und die Pflege einer automatisierten Test-Suite.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

This field is for validation purposes and should be left unchanged.
Name*

Erstellung und Aktualisierung von Unit Tests

Unit Testing wird häufig als Bestandteil von kontinuierlichen Tests und kontinuierlicher Integration / kontinuierlicher Bereitstellung (CI / CD) im DevOps eingesetzt und kann im Alltag ganz schön anstrengend sein.

Typischerweise verbringen Entwickler sehr viel Zeit damit, Unit Tests zu schreiben und zu pflegen – ein Vorgang, der bei weitem nicht so viel Spaß macht wie das Schreiben von Anwendungs-Code. Hier können KI-basierte Produkte zur automatisierten Unit-Test-Erstellung besonders nützlich sein, vor allem für Organisationen, die Unit-Tests erst spät im Produktlebenszyklus einführen möchten.

Vorteile: 

  • KI-basierte, automatisierte Unit Tests sind ein bedeutender Fortschritt gegenüber der vorlagenbasierten automatischen Unit-Test-Generierung mit statischer oder dynamischer Analyse. Die so generierten Tests sind echter Code und keine bloßen Platzhalter.
  • KI-basierte Unit Tests können sehr schnell generiert werden, was besonders für einen großen bestehenden Codebestand von Vorteil ist.
  • Entwickler müssen die Tests nur noch anpassen und können die Unit-Regression-Suite relativ schnell einrichten.

Einschränkungen: 

  • KI-generierte Unit Tests spiegeln einfach den vorhandenen Code wider, auf dem sie basieren. Sie können die beabsichtigte Funktionalität des Codes (noch) nicht erraten. Wenn der Code nicht wie vorgesehen funktioniert, wird auch der automatisch generierte Unit Test dieses unerwünschte Verhalten abbilden.

    Das ist ein gewichtiger Nachteil, denn der eigentliche Zweck von Unit Tests ist es, einen impliziten oder expliziten Vertrag durchzusetzen und zu überprüfen.
  • Mit Machine Learning generierte Unit Tests können bestehende funktionierende Unit Tests zerstören; es liegt dann am Entwickler, dass dies nicht passiert.
  • Entwickler müssen Unit Tests für komplexe Geschäftslogik weiterhin selbst schreiben.

Automatisiertes User-Interface-Testing 

In diesem Bereich kommt die KI zunehmend zum Einsatz. Bei KI-basiertem UI-Testing analysieren Testautomatisierungs-Tools das DOM und den dazugehörigen Code, um Objekt-Eigenschaften zu erkennen. Sie nutzen außerdem Bilderkennungstechnologien, um durch die Anwendung zu navigieren und visuell UI-Objekte und -Elemente zu überprüfen sowie UI-Tests zu erstellen.

Darüber hinaus setzen KI-Testsysteme exploratives Testen ein, um Fehler oder Abweichungen in der Anwendungsoberfläche zu finden, und erstellen Screenshots zur späteren Überprüfung durch QA-Engineers. Ebenso können visuelle Aspekte des Testsystems (SUT), wie Layout, Größe und Farbe, überprüft werden.

Vorteile:

  • Automatisiertes UI-Testing kann zu einer erhöhten Codeabdeckung führen.
  • Kleinere Abweichungen in der Benutzeroberfläche führen nicht zum Fehlschlagen der Test-Suite. Produkt-AI-Modelle können damit umgehen.

Einschränkungen:

  • Bei jeder modernen Anwendung ist die Anzahl der Plattformen, App-Versionen und Browserversionen groß. Es ist unklar, wie gut KI-basierte UI-Automatisierung unter diesen Bedingungen funktioniert. Allerdings können Cloud-Testing-Tools Tests parallel ausführen, daher bleibt dies ein spannender Bereich!

Einsatz von KI zur Unterstützung beim API-Testing

Auch ohne KI ist die Automatisierung von API-Tests eine anspruchsvolle Aufgabe, da sie das Verstehen der API sowie das Einrichten von Tests für zahlreiche Szenarien umfasst, um sowohl Tiefe als auch Breite der Abdeckung sicherzustellen.

Aktuelle API-Testautomatisierungstools wie Tricentis und SoapUI zeichnen API-Aktivitäten und -Datenverkehr auf, um diese zu analysieren und Tests zu erstellen. Allerdings erfordert das Modifizieren und Aktualisieren von Tests, dass Tester sich in die Feinheiten der REST-Aufrufe und Parameter vertiefen und anschließend die API-Test-Suite aktualisieren.

KI-basierte Tools zur Automatisierung von API-Tests versuchen, dieses Problem abzumildern, indem sie den Datenverkehr analysieren und Muster sowie Verbindungen zwischen API-Aufrufen erkennen, wodurch diese nach Szenarien gruppiert werden. Zudem nutzen die Tools vorhandene Tests, um Beziehungen zwischen APIs zu erlernen, Änderungen zu verstehen und bestehende Tests zu aktualisieren oder neue szenariobasierte Tests zu erstellen. 

Vorteile:

  • Gerade für unerfahrene Tester oder solche ohne Programmierkenntnisse kann dies sehr hilfreich sein, um einen schnellen Start zu ermöglichen.

    Auch hier wird das Change Management deutlich vereinfacht, da zumindest ein Teil der API-Änderungen von einem KI-Automatisierungstool übernommen werden kann.

Einschränkungen:

  • Generell ist das Einrichten von API-Tests schwierig und nur wenige Tools bieten in diesem Bereich maschinelles Lernen. Die existierenden Lösungen sind oft noch sehr rudimentär.

Wartung von automatisierten Tests

KI-basierte Tools können Änderungen am Code bewerten und mehrere bestehende Tests beheben, die mit diesen Änderungen nicht mehr übereinstimmen – insbesondere dann, wenn die Codeänderungen nicht zu komplex sind. Aktualisierungen bei UI-Elementen, Feldnamen und Ähnlichem müssen die Test-Suite nicht mehr unterbrechen.

Einige KI-Tools überwachen laufende Tests und probieren modifizierte Varianten für fehlgeschlagene Tests aus, indem sie UI-Elemente anhand der besten Übereinstimmung auswählen. Sie können außerdem die Testabdeckung überprüfen und Lücken gegebenenfalls schließen. 

KI-basierte Testdatengenerierung

Die Generierung von Testdaten ist ein weiteres vielversprechendes Anwendungsfeld für KI-Modelle. Maschinelles Lernen kann problemlos Datensätze generieren, beispielsweise persönliche Profilfotos und Informationen wie Alter und Gewicht, indem trainierte Modelle bestehende Produktionsdaten analysieren und daraus lernen. 

So ähneln die erzeugten Testdaten stark den Produktionsdaten, was für Softwaretests ideal ist. Das maschinelle Lernmodell, das die Daten generiert, wird als Generative Adversarial Network (GAN) bezeichnet.

Testautomatisierungstools mit Machine Learning

Schauen Sie sich die folgenden Tools an, wenn Sie nach Software suchen, die maschinelles Lernen zur Durchführung und Nachverfolgung von automatisierten Tests nutzt. Viele davon bieten Open-Source- oder codelose Optionen, die den Anforderungen Ihres Testteams gerecht werden.

Fazit

Künstliche Intelligenz hat Testwerkzeuge und -methoden – insbesondere die Testautomatisierung – deutlich beeinflusst. Ein Überblick über die aktuell mit KI beworbenen Werkzeuge zeigt, dass viele neue Features hinzugefügt werden, von denen aber einige noch nicht ausgereift sind.

Wenn Sie diesen Artikel hilfreich fanden, abonnieren Sie gerne den QA Lead Newsletter und bleiben Sie bei allen Neuigkeiten aus der Welt des Testings auf dem Laufenden.