Künstliche Intelligenz in der Testautomatisierung

Der World Quality Report 2020-21 zeigt: Künstliche Intelligenz ist einer der am stärksten wachsenden Bereiche innerhalb der Qualitätssicherung. Testautomatisierung und DevOps haben unter anderem dazu beigetragen, dass Entwicklungszyklen in der Softwarebranche immer kürzer werden. Automatisierte Prozesse reichen daher oft nicht mehr aus, um mit dem Tempo in der Softwareentwicklung Schritt halten zu können. IT-Teams setzen daher zunehmend auf Künstliche Intelligenz (KI). Doch wie sieht KI-Testautomatisierung in der Praxis aus? Dieser Blogartikel gibt einen Überblick über die wichtigsten Funktionen, Methoden und Tools.


Wie funktioniert die Künstliche Intelligenz in der Testautomatisierung

Künstliche Intelligenz (KI) beschreibt die Fähigkeit eines Programms, zu lernen und zu denken. „Lernen“ bedeutet in diesem Zusammenhang, Daten zu sammeln und auszuwerten. Beim „Denken“ leitet die KI aus den gesammelten Daten neue Erkenntnisse für das eigene Verhalten ab und kann selbstständig Entscheidungen in neuen Anwendungsszenarien treffen. Ein wichtiger Teilbereich der KI ist Maschine Learning (ML). Dieser Teilbereich kommt in Softwaretests am häufigsten zum Einsatz. Hinter Machine Learning verbirgt sich eine Technologie, die Muster in Daten erkennt und diese Muster nutzt, um Vorhersagen für Verhaltenstrends in der Zukunft zu treffen.


Da sich Software heut immer schneller verändert und Kunden diese Veränderungen bestenfalls nicht mitbekommen sollen, müssen Testingenieure auch automatische Tests ständig anpassen und überwachen. Hier können KI und ML das automatisierte Testen vereinfachen und effektiver gestalten.


KI-Testautomatisierung lässt sich in drei Schritte zusammenfassen:


  • Zuerst müssen Tester die KI mit Daten für das konkrete Testobjekt trainieren. Diese Daten umfassen zum Beispiel den Quellcode der Software, das User Interface, Logs oder bereits vorhandene Testdaten. Inzwischen gibt es vortrainierte KI-Modelle, die Erlerntes generalisieren und auf verschiedene Testfälle anwenden können. In einem Zwischenschritt analysiert die KI, ob die bisherigen Tests den Code abdecken, vollständig sind und akkurat arbeiten.
  • In einem zweiten Schritt generiert die KI Testfälle – basierend auf den Erkenntnissen der vorhandenen Daten – und führt diese Tests selbstständig aus. An dieser Stelle müssen Tester die Ergebnisse in der Regel noch manuell überprüfen.
  • Zuletzt speist die KI die Ergebnisse der Tests wieder ins System ein, um die eigenen Tests kontinuierlich zu verbessern und an das konkrete Testobjekt anzupassen.


Die Vorteile der Künstlichen Intelligenz in der Testautomatisierung

 KI-Testautomatisierung hält einige Vorteile bereit, die das Software-Testing grundlegend verändern könnten:


  • Permanentes Monitoring: Eine KI kann Tests rund um die Uhr überwachen und eingreifen, wenn es zu Problemen kommt. Sie hat damit einen entscheidenden Vorteil gegenüber menschlichen Testern, die sich an Arbeitszeiten halten müssen.
  • Zuverlässigere und qualitativ hochwertigere Tests: Schon kleinste Fehler oder Veränderungen im Code – beispielsweise ein neuer Name für eine Feld-ID – können dazu führen, dass Tests nicht mehr zuverlässig funktionieren. Künstliche Intelligenz erkennt solche Veränderungen am Code schneller und besser als das menschliche Auge.
  • Zeit- und Kostenersparnis: Künstliche Intelligenz überprüft, welche Tests im konkreten Fall überhaupt notwendig sind. Laufen nur diejenigen Tests, die es wirklich braucht, spart das Zeit und Geld.
  • Tester entlasten: Besonders das Anpassen von Tests an verschiedene Testszenarien nimmt viel Zeit in Anspruch. KI könnte in Zukunft 80 bis 85 Prozent des Workloads von Testern übernehmen. Diese haben dann mehr Zeit für andere Aufgaben, die menschliches Eingreifen erfordern.
  • Abhängigkeiten zu anderen Modulen reduzieren: Während eines Tests muss das System mit Servern oder anderen Modulen kommunizieren. Das ist zeitintensiv. Eine KI zeichnet die Antworten von Servern über einen längeren Testzeitraum auf. Sind genügend Daten vorhanden, kann die KI beim nächsten Test auf ihre interne Datenbank an Serverantworten zurückgreifen und muss nicht mehr auf die Reaktion des Servers selbst warten.
  • Testen ohne Code: Viele KI-basierte Testing-Tools funktionieren ohne Programmiersprache oder erfordern nur geringe Coding-Kenntnisse. Das ist für Anfänger in der Testautomatisierung eine große Erleichterung.
  • Vereinfachte Systemmigration oder -umstellung: Wenn ein User sein System auf eine neue Version umstellen oder eine Cloudlösung einführen möchte, darf er die Software-Tests nicht vergessen. KI kann Tests sehr präzise und schnell an die neuen Umstände anpassen.



Die Herausforderungen der Testautomatisierung in Verbindung mit künstlicher Intelligenz

Um die Potenziale der Künstlichen Intelligenz für Softwaretests nutzen zu können, müssen Anwender allerdings einige Hürden überwinden:


  • Daten und Rechenleistung: Um eine KI einzulernen, werden große Datenmengen benötigt – vor allem wenn die KI Tests ausführen und die Ergebnisse analysieren soll. Nicht immer stehen ausreichend Daten zur Verfügung. Falls doch, erfordert die Datenspeicherung eine große Rechenleistung.
  • Hohe Initialkosten: Eine Künstliche Intelligenz einzulernen, kostet Zeit und Geld.
  • Plattformübergreifendes Testen: Software muss auf vielen verschiedenen Plattformen, Betriebssystemen und Geräten funktionieren. Noch ist fraglich, ob KI damit umgehen kann.
  • Sprachbarrieren: Software-Entwickler können für die gleichen Testschritte unterschiedliche Begriffe im Code verwenden. Doch bereits Sprachassistenten zeigen, dass Künstliche Intelligenz individuelle Ausdrucksweisen nur schwer erkennt.
  • Multi-Label-Problem: Nicht nur die Programmiersprache kann zum Problem werden. Oft liegen den einzelnen Testschritten komplett unterschiedliche Skripte zugrunde.
  • Angst um Arbeitsplätze: KI kann Testteams viel Arbeit abnehmen und diese teilweise sogar besser ausführen. Noch steckt KI-Testautomatisierung in den Kinderschuhen. Je häufiger sie Einzug in die Branche hält, desto mehr sorgen sich Testingenieure jedoch um die Zukunft ihrer Arbeitsplätze.



Methoden zur Einbindung der künstlichen Intelligenz in die Testautomatisierung

Künstliche Intelligenz birgt großes Potenzial für das automatisierte Testen. Im folgenden Abschnitt beschreiben wir, wie KI in der Praxis zum Einsatz kommt.


Verschiedene Ansätze des KI-basierten Testens

Zunächst gibt es vier grundsätzliche Herangehensweisen, KI-Testautomatisierung umzusetzen.


  • Differenzierendes Testen: KI vergleicht hierbei Software- oder App-Versionen und stellt die Unterschiede fest. Sie analysiert diese Unterschiede in Hinblick auf codebasierte Probleme und Sicherheitslücken. Vor allem Code-Scanning und Unit Tests gehen differenzierend vor.


  • Visuelles Testen: Dieser Ansatz beruht auf bild-basiertem Lernen. Die KI vergleicht Software-Anwendungen auf optischer Ebene. Hier stechen die Fähigkeiten von KI besonders hervor.


  • Deklaratives Testen: Künstliche Intelligenz kann dabei helfen, repetitive und fehleranfällige Tests zu automatisieren. Dafür identifiziert sie, was ein Test bezwecken möchte, und berechnet, wie wahrscheinlich es ist, dass er fehlschlägt. Auf dieser Grundlage entscheidet die KI dann selbstständig, ob sie den Test im konkreten Fall ausführt. Dieses Verfahren steigert die Produktivität und Stabilität von automatischem Testen erheblich.


  • Selbstheilende Automatisierung: Hierbei handelt es sich letztlich um eine KI-basierte Autokorrektur von fehlerhaften Tests. Die „Selbstheilungskräfte“ von KI machen Testautomatisierung berechenbarer, zuverlässiger und pflegeleichter.


Funktionen der künstlichen Intelligenz in automatischen Tests

Künstliche Intelligenz kann innerhalb des automatisierten Testens folgende Aufgaben und Funktionen übernehmen:


  • Tests überprüfen: Über einen gewissen Zeitraum hinweg beobachtet die KI laufende automatisierte Tests und stellt fest, welche stabil laufen und welche nicht. Sie liefert daraufhin zum Beispiel einen ausführlichen Bericht oder behebt die Fehler in den Tests selbst. Sie kann beispielsweise Testskripte anpassen. KI kann Tests auch proaktiv fixen, bevor sie überhaupt fehlschlagen.


  • Managen von mehreren Testskripten: Nach Updates oder Codeänderungen ändert sich auch das Testskript. Dabei können redundante oder überflüssige Tests zurückbleiben. KI identifiziert solche Tests und sortiert sie aus.


  • Unit Tests generieren und updaten: Um Testskripte aktuell zu halten, müssen Testingenieure sie immer wieder an neue Szenarien anpassen. Dafür nutzen sie vor allem Unit Tests. Insbesondere in CI/CD-Pipelines müssen Tester solche Unit Tests sehr häufig neu schreiben. Das kann eine KI übernehmen. Sie entwickelt Testfälle basierend auf den Daten, mit denen sie geschult worden ist. An dieser Stelle generiert KI tatsächlich neuen Code. Da sie zunächst nur auf Grundlage der vorhandenen Systemdaten arbeitet, tut sie sich allerdings schwer, mit unerwartetem Verhalten umzugehen.


  • User Interface (UI) Tests: Bei UI Tests sucht die KI nach visuellen Fehlern. Dazu vergleicht sie das User Interface vor und nach Updates. Sind alle Elemente an der richtigen Stelle? Haben sie die richtige Farbe, Größe und Form? Überlappen sich Elemente? KI-basierte Bilderkennungstechnologie arbeitet präziser und schneller als das menschliche Auge.


  • API Tests: Programmierschnittstellen (kurz: APIs) zu überprüfen, ist eine herausfordernde Aufgabe, vor allem wenn die notwendigen Coding-Skills fehlen. Tester müssen APIs verstehen und eine sehr große Breite und Tiefe an Testszenarien entwickeln. KI kann die Aktivitäten von APIs aufzeichnen, Muster aufdecken und daraufhin neue Tests generieren. Im Bereich der API-Tests ist es vor allem für Anfänger zu empfehlen, sich von Künstlicher Intelligenz unterstützen zu lassen. Allerdings gibt es noch nicht viele Tools, die das können.


  • Spidering: Dieses differenzierende Verfahren nimmt sich Tests vor, die sich regelmäßig wiederholen. Es vergleicht die Ergebnisse mehrerer Testdurchläufe und erstellt Berichte über Abweichungen. Gleichzeitig sammelt die KI immer weiter Testdaten. KI-basierte Testdaten können die Datensets zum Testen erweitern.


KI-basierte Testing-Tools

Inzwischen gibt es zahlreiche Tools, die mithilfe Künstlicher Intelligenz das automatisierte Testen verbessern.


  • Applitools ist eine Plattform für visuelles Testen und Monitoring, die vor allem auf Qualitätsanalysen, DevOps und digitale Transformation ausgelegt ist. Sie eignet sich vor allem, um höhere Testabdeckungen zu erreichen und den Aufwand zu reduzieren, um Testskripte aktuell zu halten. Das Tool funktioniert browser- und geräteübergreifend. Zudem ist es mit vielen Automatisierungstools und Frameworks wie Selenium, Appium oder Cypress kombinierbar. Applitools kann mit einem einzeiligen Code einen ganzen App-Bildschirm analysieren, was es besonders attraktiv für Einsteiger macht.


  • Functionize ist ein cloud-basiertes Tool für funktionale Tests, Performancetest und Lasttests. Es arbeitet mit dem deklarativen Verfahren, indem es Tests generiert, Fehler diagnostiziert und die Skripte wartet. Die Vorteile von Functionize: Es ist sehr schnell und kann mit normalem Englisch bedient werden.


  • Bei Mabl handelt es sich um eine übersichtliche Automatisierungsplattform für UI-Tests, die mit Selbstkorrektur arbeitet. Das Tool passt Tests automatisch an Veränderungen der UI an, ohne dass ein Tester eingreifen muss. Mabl ist cloudbasiert und erfordert keine tiefgreifenden Coding-Erfahrungen. Die Plattform ist ideal, um sie in CI/CD-Pipelines und DevOps-Strukturen zu integrieren.


  • Auch Testim.io arbeitet mit selbstheilenden Mechanismen. Das Tool in ist der Lage, mehrere funktionale und visuelle Tests parallel laufen zu lassen. Dadurch kann es Tests wesentlich schneller einleiten, ausführen und warten als herkömmliche Automatisierungstools. Außerdem liefert das Tool ausführliche Fehlerberichte, ist in CI/CD-Pipelines integrierbar und auf verschiedenen Browsern und Plattformen anwendbar.


  • TestCraft ist eine Plattform für Regressionstests und Continuous Testing, die auf Selenium aufbaut. Auch TestCraft ist ein selbstheilendes Tool. Es hilft Testern dabei, automatisch visuelle Tests über ein Drag and Drop Interface zu kreieren. TestCraft kann Webapplikationen überwachen, während Entwickler Veränderungen einspeisen. Nutzer brauchen keine Coding-Skills, um das Tool zu verwenden.



Best Practices

Um KI erfolgreich in die eigenen Prozesse der Testautomatisierung zu integrieren, sollten Software-Teams sich an einigen Best Practices orientieren:


  • Zusammenarbeit von Menschen und Maschinen: Künstliche Intelligenz soll Tester entlasten, sie aber nicht ersetzen. Im Idealfall lernen Menschen und Programme voneinander und stehen nicht in Konkurrenz zueinander. Das sollten Firmen oder Organisationen auch so an ihr Testing-Team kommunizieren. Im Idealfall kann KI sogar neue Jobs schaffen, da es geschulte Entwickler braucht, um die KI zu überwachen.


  • Künstliche Intelligenz als Teil eines modularen Toolkastens: Anwender sollten KI als ein Werkzeug unter vielen verstehen. Manuelle Tests, Automatisierungstools und bekannte Frameworks werden durch KI nicht überflüssig.


  • Künstliche Intelligenz für Routinetests: KI ist vor allem dann sinnvoll, wenn sich die immer gleichen Tests wiederholen. Testingenieure sollten ihre Kapazitäten für anspruchsvollere Aufgaben nutzen.


  • Testplan und Testmanagement: Eine künstliche Intelligenz in bestehende Teststrukturen zu integrieren, ist nicht einfach. Am besten holen sich Unternehmen oder Organisationen Spezialisten dazu, die die Umstellung vorbereiten, einen Testplan entwickeln und überprüfen, ob alle Systeme miteinander kompatibel sind.


  • Ziele des KI-basierten Testens definieren: Künstliche Intelligenz soll automatisiertes Testen verbessern. Daher sollten Anwender zuvor festlegen, welche Ziele sie mit dem Einsatz von KI verfolgen. Nur so können sie nach einer gewissen Zeit überprüfen, ob ihre Herangehensweise überhaupt einen Fortschritt gebracht hat.


  • Geduld bei der Einführung: Anwender müssen KI-basierte Testingtools in der Regel erst einmal auf die zu testende Software anlernen. Deshalb kann es dauern, bis ein Team wirklich von KI profitiert. Die langfristigen Zeit- und Kostenersparnissen können diesen hohen Initialaufwand allerdings aufwiegen.


  • DevTestOps-Strukturen aufbauen: Viele KI-basierte Testing-Tools sind darauf ausgelegt, in CI/CD-Pipelines und DevOps zum Einsatz zu kommen. Diesen Vorteil sollten Anwender ausnutzen, wenn sie bereits mit diesen Strukturen arbeiten. Ist das nicht der Fall, sollten sie in Erwägung ziehen, Künstliche Intelligenz zusammen mit einer DevTestOps-Kultur einzuführen. 



Fazit

Wie Künstliche Intelligenz in der Zukunft die Welt automatisierter Tests revolutionieren wird, ist heute noch gar nicht abzusehen. Dennoch birgt sie bereits jetzt zahlreiche Möglichkeiten. Insbesondere die Funktionen von Machine Learning helfen Software-Teams, wiederkehrende Testszenarien effizienter zu verarbeiten. Die Fähigkeit zur „Selbstheilung“ macht es wesentlich einfacher, Testskripte zu warten und zu aktualisieren – eine Aufgabe, die Tester in immer schnelleren Entwicklungszyklen kaum bewältigen können.


Denken Sie nun darüber nach, KI-Testautomatisierungen in Ihrem Unternehmen zu implementieren?

ARINNAU unterstützt Sie gerne bei diesem Schritt in Richtung Zukunft. Unsere Qualitätsexperten beraten sie professionell und unverbindlich.

Share by: