Testing mit Artificial Intelligence (AI) und Machine Learning (ML)

Künstliche Intelligenz im Testprozess

Die bisherigen Methoden zum Testen von Software kommen an ihre Grenzen. Denn die Software wird umfangreicher und komplexer, und auch die Datenmenge nimmt weiter zu. Ein neuer Ansatz beim Testing hilft, das Dreieck aus Qualität, Zeit und Kosten besser zu beherrschen.

21.02.2022Text: bbv0 Kommentare
AI im Testing

DevOps und DevOps Movement stellen einen wahren Quantensprung im Software Testing dar, da dadurch alle bisherigen Errungenschaften des Testens miteinander verbunden und erweitert werden. Mit DevOps erhalten Tester die Möglichkeit, sich direkt an der Wertschöpfungskette in ihrem IT-Betrieb zu beteiligen. Artificial Intelligence (AI) und Machine Learning (ML) ergänzen seit einiger Zeit die bestehenden und etabliert Testing-Möglichkeiten. So kann AI in diversen Bereichen des Software-Testings einen wertvollen Beitrag leisten. Gerade im Kontext von DevOps sind die Applikationen auf immer mehr Daten angewiesen. Hier sind auf AI und ML basierende QA-Tools künftig nicht mehr wegzudenken. So kommen AI-basierte Testwerkzeuge beispielsweise beim Testen von Software für das autonome Fahren zum Einsatz.

Für Testing-Ansätze mit einem Testorakel ist der direkte Einsatz von künstlicher Intelligenz aber (noch) nicht geeignet. Mit einem Testorakel werden jeweils vorausgesagte Ergebnisse mit den tatsächlichen Ergebnissen einer Software im Test verglichen. Ein solches Vorgehen kann mit AI nicht realisiert werden, weil das Testorakel eine deterministische Voraussage des Testergebnisses voraussetzt. Applikationen, welche die heutigen AI-Techniken einsetzen, beispielsweise mit subsymbolischen Techniken, verhindern dies.

 

Evolution des Softwaretests

AI-basierte Testtools

Es gibt bereits eine ganze Reihe AI-basierter Testwerkzeuge und Anwendungen. Dazu einige Beispiele:

  • Anomalien-Erkennung: visuelle, browser- und geräteübergreifende Tests grafischer Benutzeroberflächen (GUI)
  • Objekterkennung: Auswahl von Identifikatoren, Erstellung und Pflege automatischer Regressionstests
  • Automatische visuelle Validierung: eine Mustererkennung identifiziert visuelle Fehler
  • User Interfaces Testing: ML-Algorithmen erkennen Bildmuster durch Vergleich von Unterschieden
  • API-Tests: ML-basierte Algorithmen werden für Back-End-API-Tests verwendet

AI optimiert Testprozesse

Natürlich erfordern auch Testprozesse mit künstlicher Intelligenz eine gewisse Vorbereitung. So fokussieren sich die Tester zunächst auf risikobehaftete Software-Teile, welche mit AI identifiziert werden sollen – dieser Ansatz wird auch Risk-based Testing genannt. Bei der Testauswahl werden daher jene Testfälle bestimmt, die ein hohes Risiko – etwa wenn Menschenleben auf dem Spiel stehen – mit sich bringen. Während der Testfall-Generierung, aber auch bei der späteren Wartung, wird das so genannte AI Spidering verwendet. Mit Hilfe des AI Spiderings werden Testfälle für die Anwendung geschrieben.

Im nächsten Schritt erfolgt die automatische Erstellung und Wartung von Testscripts. Hier werden Testskripte automatisch an Änderungen angepasst, wodurch die automatisierten Tests wartbarer und zuverlässiger werden (self-healing Technology). AI-basierte Tools können Testfälle intelligent erstellen und einzelne Testschritte dokumentieren.  Bei der Identifizierung und Auswahl der auszuführenden Tests helfen prädiktive Testauswahl-Algorithmen (Predictive Test Selection).

Die nun folgende Auswahl potenzieller Softwarefehler (Defects Triage) nutzt automatisierte Fehlerberichte. Allfällige Softwarefehler werden bei der anschliessenden Fehleranalyse bestätigt oder verworfen (Failure Determination). Die Verwendung von Predictive Analytics-Methoden erlaubt zudem eine automatisierte Fehlerverfolgung, womit tiefgehende Probleme von falsch gemeldeten, aber positiven Ergebnissen getrennt werdem. AI ersetzt hier die zeitraubende und mühsame manuelle Analyse der Fehlerlogs. Dadurch kann die Arbeit im Software Testing vereinfacht werden.

Den Anwendungen AI-basierter Testtools sind kaum Grenzen gesetzt. Der Nutzen liegt dabei klar auf der Hand: Eine höhere Software-Qualität dank automatisierter und verbesserter Testverfahren.

Der Experte

Slobodan Bozic

Slobodan Bozic ist seit Februar 2019 Senior Testmanager bei bbv. Einen besonderen Fokus legt er auf das Thema TestOps. Wenn Slobodan / Bob sich nicht gerade mit dem Testing beschäftigt, verbringt er Zeit mit seiner Familie.

Unser Wissen im Abo

Artikel kommentieren

Die E-Mail-Adresse wird nicht publiziert. Notwendige Felder sind mit einem * versehen.

Beachtung!

Entschuldigung, bisher haben wir nur Inhalte in English für diesen Abschnitt.

Achtung!

Entschuldigung, bisher haben wir für diesen Abschnitt nur deutschsprachige Inhalte.

Beachtung!

Entschuldigung, bisher haben wir nur Inhalte in English für diesen Abschnitt.

Achtung!

Entschuldigung, bisher haben wir für diesen Abschnitt nur deutschsprachige Inhalte.