KI in der Testautomatisierung: So funktioniert es

Entdecken Sie, wie Sie bessere Software und Systeme in schnell wachsenden Umgebungen bereitstellen. Treten Sie unserer Community bei

Wie wirken sich KI und maschinelles Lernen auf die Testautomatisierung aus und wie verbessern sie diese? Erfahren Sie in diesem Artikel mehr über den KI-Hype im Vergleich zur Realität!

Der Einsatz 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 „Alles ist mit KI besser“-Virus befallen zu sein.

Da KI, maschinelles Lernen und neuronale Netze derzeit besonders angesagt sind, war es vielleicht unvermeidlich, dass KI irgendwie ihren Weg in die Testautomatisierung finden würde.

Ein Hintergrund zur Testautomatisierung

Ich erinnere mich an eine Zeit vor mehreren Jahren, als die 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 Veröffentlichungszyklen. Das QA-Team war in den ersten beiden Wochen des Zyklus gewöhnlich entspannt und arbeitete danach bis zur Veröffentlichung hektisch – eine der eigentümlichen Nebenwirkungen der agilen Softwareentwicklung, über die man in den Schlagzeilen nichts liest!

Schließlich begann einer der QA-Leiter, der es leid war, während der ruhigen zwei Wochen Däumchen zu drehen, an einem Framework für die Testautomatisierung zu arbeiten. Er schrieb einige Testskripte in Ruby mit Selenium / Appium und Jenkins für eine rudimentäre Pipeline, einschließlich einiger ansprechender Berichte mit roten, gelben und grünen Anzeigen für Testfehler und -erfolg.

Das gelang ihm über einige Veröffentlichungszyklen hinweg. Daraufhin stellten wir es unserem Qualitätsleiter vor, der es unseren Kunden präsentierte und sie so begeisterte, dass sie für automatisiertes Testen als Teilprojekt bezahlten. Wir waren überglücklich und der Zeit weit voraus!

Die Vorreiterrolle bekam jedoch einige Monate später eine neue Bedeutung, als wir jene grundlegende Wahrheit über die Testautomatisierung entdeckten, mit der sich heute jeder fähige QA-Automatisierungsingenieur herumschlagen muss:

Man erstellt nicht einfach automatisierte Tests!

Warum sage ich das? Weil wir uns schon bald wie Alice im Wunderland fühlten, die wie verrückt mit der Roten Königin um die Wette rannte:

„Man muss so schnell rennen, wie man kann, um am selben Ort 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 in nahezu jedem Veröffentlichungszyklus an die Anwendung anpassen, weil die Änderungen schnell und in großer Zahl eintrafen!

Eine Änderung des Feldnamens, und unsere Softwaretests zur Automatisierung befanden sich im sprichwörtlichen Kaninchenbau. Der Beginn einer neuen Veröffentlichung war besonders problematisch, da das Softwareentwicklungsteam massenhaft neue Ergänzungen vornahm.

Die Testautomatisierung hat sich seitdem nicht grundlegend verändert, da sie weiterhin eine kontinuierliche Überwachung und Wartung erfordert. Eine Möglichkeit für eine dramatische Verbesserung des Ansatzes und der Umsetzung ist erst mit den jüngsten Fortschritten bei den Fähigkeiten von KI in Sicht gekommen.

KI-Hype vs. Realität

Bei der KI-Technologie in ihrer heutigen Form geht es hauptsächlich darum, Algorithmen des maschinellen Lernens zu verwenden, um Modelle mit einigermaßen großen Datenmengen zu trainieren und die trainierten Modelle anschließend zu nutzen, um Vorhersagen zu treffen oder eine gewünschte Ausgabe zu erzeugen. Fast alles im Bereich der KI passt in diese zugegebenermaßen stark vereinfachte Beschreibung. Für uns stellt sich jedoch vor allem die folgende Frage:

Wird KI tatsächlich in der Lage sein, Testfälle automatisch zu generieren und zu aktualisieren? Fehler zu finden? Die Codeabdeckung zu verbessern?

Die Antwort auf diese Frage ist derzeit alles andere als klar, da wir uns auf dem Höhepunkt des KI-Hype-Zyklus befinden. Ein bestimmtes Teilgebiet, das tiefe Lernen, hat einen großen Teil dieser Begeisterung ausgelöst.

Der Gartner-Hype-Zyklus für künstliche Intelligenz, 2019. (Quelle)

Was ich an dieser Grafik am interessantesten finde, ist Folgendes:

Wenn Siri den Hype-Zyklus bereits hinter sich gelassen haben soll, dann sind wir noch sehr weit von Kansas entfernt, Dorothy!

Ich meine, ich kenne viele, die sich wiederholen müssen, damit Siri versteht, was sie sagen (nicht böse gemeint, Siri-Fans. Wirklich 😉).

Die Hype-Kurve zeigt uns, dass große Begeisterung für das Potenzial von KI besteht, die abkühlt, bevor alle in den alltäglichen Geschäftsbetrieb übergehen. Einfach ausgedrückt, besagt Gartners schicke Grafik Folgendes:

Künstliche Intelligenz: Screenshot zum Vergleich von Erwartungen und Realität
Künstliche Intelligenz: Erwartungen und Realität.

Obwohl wir noch weit von der Singularität entfernt sind, hat KI in ihrer heutigen Form nach wie vor das Potenzial, die Testautomatisierung erheblich zu verbessern.

Wie erstellt maschinelles Lernen automatisierte Tests?

  1. Training: In der Trainingsphase muss das maschinelle Lernmodell anhand eines spezifischen Unternehmensdatensatzes trainiert werden, der unter anderem die Codebasis, die Anwendungsschnittstelle, Protokolle, Testfälle und sogar Spezifikationsdokumente umfasst. Ein nicht ausreichend großer Trainingsdatensatz kann die Wirksamkeit des Algorithmus verringern.

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

  2. Ausgabe- / Ergebniserstellung: Je nach Anwendungsfall generiert das Modell Testfälle, überprüft vorhandene Testfälle auf Codeabdeckung, Vollständigkeit und Genauigkeit und führt sogar Tests durch. In allen Fällen muss ein Tester die generierte Ausgabe überprüfen, um sie zu validieren und sicherzustellen, dass sie verwendbar ist.

    Wenn wir den Vergleich mit selbstfahrenden Autos verwenden, sind die Ergebnisse eher mit einer Fahrassistenz als mit einem tatsächlich fahrerlosen Auto vergleichbar.

  3. Kontinuierliche Verbesserung: Je regelmäßiger eine Organisation das Tool verwendet, desto größer wird die Menge der Trainingsdaten, wodurch sich potenziell die Genauigkeit und Effektivität bereits trainierter Netzwerke erhöht. Kurz gesagt: Das KI-System lernt kontinuierlich weiter und verbessert sich.

Algorithmen des maschinellen Lernens revolutionieren die Testautomatisierung. Um Tools zu finden, die diese fortschrittlichen Algorithmen integrieren, lesen Sie unseren Leitfaden zu erstklassigen Tools für Softwaretests

Anwendungen von KI in der Testautomatisierung

Sehen wir uns einige Anwendungen von KI in der Testautomatisierung genauer an, darunter Unit-Tests, das Testen von Benutzeroberflächen, API-Tests und die Pflege einer automatisierten Testsuite.

WERDE TEIL DER COMMUNITY
Bereichern Sie Ihren Posteingang mit mehr Führungserkenntnissen aus der Tech-Welt für bessere Software und Systeme.
Get Free Access

Have an account? Log In

Erstellen und Aktualisieren von Unit-Tests

Unit-Tests, die häufig als Teil von kontinuierlichen Tests sowie kontinuierlicher Integration und kontinuierlicher Bereitstellung (CI / CD) in DevOps eingesetzt werden, können eine echte Plage im … Asteroidengürtel sein.

In der Regel verbringen Entwickler viel Zeit mit dem Erstellen und Pflegen von Unit-Tests, was bei Weitem nicht so viel Spaß macht wie das Schreiben von Anwendungscode. In diesem Fall können KI-basierte Produkte zur automatisierten Erstellung von Unit-Tests hilfreich sein, insbesondere für Organisationen, die Unit-Tests erst spät im Produktlebenszyklus einführen möchten.

Vorteile: 

  • KI-basierte automatisierte Unit-Tests sind ein deutlicher Fortschritt gegenüber der vorlagenbasierten automatisierten Generierung von Unit-Tests mithilfe von statischer oder dynamischer Analyse. Die so generierten Tests bestehen aus tatsächlichem Code und nicht nur aus Platzhaltern.
  • KI-basierte Unit-Tests können sehr schnell generiert werden, was für eine große bestehende Codebasis nützlich ist.
  • Entwickler müssen lediglich die Tests anpassen und können die Unit-Regressionstestsuite relativ schnell einrichten.

Einschränkungen: 

  • Von KI generierte Unit-Tests spiegeln einfach den Code wider, auf dem sie basieren. Sie können bislang nicht die beabsichtigte Funktionalität des Codes erkennen. Wenn sich der Code nicht wie beabsichtigt verhält, wird der für diesen Code generierte Unit-Test dieses unbeabsichtigte Verhalten widerspiegeln.

    Dies ist ein erheblicher Nachteil, denn der eigentliche Zweck von Unit-Tests besteht darin, einen impliziten oder expliziten Vertrag durchzusetzen und zu überprüfen.
  • Mit maschinellem Lernen generierte Unit-Tests können bestehende, funktionierende Unit-Tests beeinträchtigen. Es liegt am Entwickler sicherzustellen, dass dies nicht geschieht.
  • Entwickler müssen Tests für komplexe Geschäftslogik selbst schreiben.

Automatisiertes Testen der Benutzeroberfläche 

Dies ist ein Bereich, in dem KI allmählich ihre Stärken zeigt. Beim KI-basierten UI-Testen analysieren Testautomatisierungstools das DOM und den zugehörigen Code, um Objekteigenschaften zu ermitteln. Außerdem nutzen sie Bilderkennungstechniken, um durch die Anwendung zu navigieren und UI-Objekte und -Elemente visuell zu überprüfen und UI-Tests zu erstellen.

Darüber hinaus nutzen KI-Testsysteme exploratives Testen, um Fehler oder Varianten in der Benutzeroberfläche der Anwendung zu finden und Screenshots für die spätere Überprüfung durch einen QA-Ingenieur zu erstellen. Ebenso können die visuellen Aspekte des zu testenden Systems (SUT), wie Layout, Größe und Farbe, überprüft werden.

Vorteile:

  • Automatisierte UI-Tests können zu einer höheren Codeabdeckung führen.
  • Geringfügige Abweichungen in der Benutzeroberfläche führen nicht zum Fehlschlagen der Testsuite. Produkt-KI-Modelle können damit umgehen.

Einschränkungen:

  • Bei jeder modernen Anwendung ist die Anzahl der Plattformen, App-Versionen und Browserversionen groß. Es ist nicht klar, wie gut KI-basierte UI-Automatisierung unter diesen Bedingungen funktioniert. Cloud-Testwerkzeuge können Tests jedoch parallel ausführen, daher wird dies ein interessanter Bereich sein, den es zu beobachten gilt!

KI zur Unterstützung von API-Tests einsetzen

Auch ohne KI ist die Automatisierung von API-Tests keine triviale Aufgabe, da sie ein Verständnis der API und anschließend die Einrichtung von Tests für eine Vielzahl von Szenarien erfordert, um eine umfassende Abdeckung sicherzustellen.

Aktuelle Tools zur Automatisierung von API-Tests, wie Tricentis und SoapUI, zeichnen API-Aktivitäten und Datenverkehr auf, um Tests zu analysieren und zu erstellen. Das Ändern und Aktualisieren von Tests erfordert jedoch, dass Tester sich mit den Details von REST-Aufrufen und Parametern befassen und anschließend die API-Testsuite aktualisieren.

KI-basierte Tools zur Testautomatisierung von APIs versuchen, dieses Problem zu entschärfen, indem sie den Datenverkehr untersuchen und Muster sowie Zusammenhänge zwischen API-Aufrufen erkennen und diese effektiv nach Szenario gruppieren. Die Tools nutzen außerdem vorhandene Tests, um Beziehungen zwischen APIs zu erlernen, diese zum Verständnis von Änderungen an APIs zu verwenden und vorhandene Tests zu aktualisieren oder neue szenariobasierte Tests zu erstellen. 

Vorteile:

  • Für unerfahrene Tester oder Personen ohne Programmiererfahrung kann dies sehr hilfreich sein, damit sie „sofort loslegen“ können.

    Auch das Änderungsmanagement wäre dadurch erheblich einfacher, da zumindest einige der API-Änderungen von einem KI-Automatisierungstool verarbeitet werden können.

Einschränkungen:

  • Im Allgemeinen ist die Einrichtung von API-Tests schwierig, und nicht viele Tools bieten in diesem Bereich Funktionen auf Grundlage maschinellen Lernens. Diejenigen, die dies tun, scheinen nur über recht rudimentäre Funktionen zu verfügen.

Wartung von Automatisierungstests

KI-basierte Tools können Änderungen am Code bewerten und mehrere vorhandene Tests korrigieren, die nicht mit diesen Änderungen übereinstimmen, insbesondere wenn die Codeänderungen nicht zu komplex sind. Aktualisierungen von UI-Elementen, Feldnamen und Ähnlichem müssen nicht mehr zum Fehlschlagen der Testsuite führen.

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

More Articles

KI-basierte Generierung von Testdaten

Die Generierung von Testdaten ist ein weiterer vielversprechender Bereich für KI-Modelle. Maschinelles Lernen kann problemlos Datensätze wie persönliche Profilfotos und Informationen wie Alter und Gewicht generieren, basierend auf trainierten Modellen des maschinellen Lernens, die anhand vorhandener Produktionsdatensätze lernen. 

Auf diese Weise ähneln die generierten Testdaten den Produktionsdaten sehr, was für den Einsatz beim Softwaretesten ideal ist. Das Modell des maschinellen Lernens, das die Daten generiert, wird als generatives adversariales Netzwerk (GAN) bezeichnet.

Testautomatisierungstools, die maschinelles Lernen nutzen

Sehen Sie sich die folgenden Tools an, wenn Sie nach Software suchen, die maschinelles Lernen nutzt, um automatisierte Tests durchzuführen und zu verfolgen. Viele bieten quelloffene oder codefreie Optionen, um die Anforderungen Ihres Testteams zu erfüllen.

Fazit

Künstliche Intelligenz hat sich erheblich auf Testwerkzeuge und -methoden ausgewirkt, insbesondere auf die Testautomatisierung. Ein Überblick über die aktuellen Tools, die KI versprechen, zeigt, dass zwar viele neue Funktionen hinzugefügt werden, mehrere dieser Funktionen jedoch noch nicht ausgereift sind.

Wenn Sie diesen Artikel hilfreich fanden, abonnieren Sie bitte den Newsletter von The QA Lead und bleiben Sie über alle neuesten Entwicklungen in der Welt des Testens auf dem Laufenden.

Harold Fernandes

Harold Fernandes ist ein Multipotentialist und hat im Produkt- sowie im Technikbereich mehrerer Start-ups gearbeitet. Er leitete über 20 Jahre lang Teams in Softwareentwicklung, Test und UX. Zudem ist er international ausgezeichnete/r Autor/in und Redner/in, zertifizierter Achtsamkeitscoach, Musiker und Bücherliebhaber. Am glücklichsten ist er, wenn er etwas Neues ausprobiert!

You may also like