DER BEITRAG DER IA ZUM SOFTWARETEST - INTERVIEW MIT BRUNO LEGEARD
Seit einigen Jahren tragen Innovationen im Bereich des maschinellen Lernens und der künstlichen Intelligenz dazu bei, dass sich viele Branchen weiterentwickeln. Dazu gehört auch die Welt des Testens. Aber wie kann KI in die Testautomatisierung einfließen? Wie kann sie Geschäftsteams helfen, diesen Bereich besser zu verstehen? Was sind ihre Gewinne, Risiken und Grenzen? Lesen Sie die Antworten auf diese Fragen in unserem Interview mit Bruno Legeard.
Bruno Legeard ist ein Experte für Testautomatisierung und beschäftigt sich seit mehreren Jahren mit dem Beitrag der KI zur Vereinfachung von Softwaretests. Er ist Professor für Softwaretechnik an der Université de Franche-Comté und betreut mehrere Doktorarbeiten zu diesem Thema. Er ist außerdem einer der Mitbegründer von Smartesting, das KI-basierte Tools zur Testautomatisierung entwickelt, und hat innerhalb des ISTQB an der neuen Zertifizierung AI Testing mitgewirkt.
Sie haben einen Vortrag über die Verwendung von Ausführungsspuren zur Optimierung von automatisierten Regressionstests mit KI gehalten. Können Sie uns etwas mehr darüber erzählen?
In dem Moment, in dem man sich der Notwendigkeit der Testautomatisierung bewusst wurde, stellte sich die Frage: "Wie soll man das machen"? Die gängigen Praktiken, die sich auf die Codierung automatisierter Skripte stützen, sind Praktiken, die heute Schwierigkeiten bereiten, da sie einen sehr hohen Wartungsaufwand mit sich bringen. Hier kommen KI und neue Technologien ins Spiel, um einerseits diesen Wartungsaufwand zu reduzieren und andererseits sicherzustellen, dass die automatisierten Tests die Schlüsselstrecken in der Produktion abdecken. Wir haben uns mit diesem Thema befasst und eine KI-basierte Lösung vorgeschlagen, bei der die Nutzungsspuren der Software analysiert werden, um die Abdeckung der automatisierten Tests zu vervollständigen. Testen Sie die wichtigen Pfade, indem Sie wissen, wie Sie dies auf der Grundlage einer Analyse dessen tun, was der Benutzer wirklich tut.
Abgesehen von diesem Wartungsaufwand, welche weiteren Gewinne kann die KI für die Testautomatisierung bringen?
Es gibt eine Reihe von Techniken, die allmählich auftauchen und auf KI basieren, zu verschiedenen Themen im Zusammenhang mit der Testautomatisierung. Beispielsweise erfordert die Tatsache, dass man erkennen kann, wenn der automatisierte Test ein klassischer Test ist (z. B. ein End-to-End-Web-Test), wenn dieser Test den Benutzer simuliert, dass man Objekte auf der Benutzeroberfläche aktivieren kann. Und oft kommen die kaputten Tests von einer Änderung an diesen grafischen Objekten. Und mithilfe des maschinellen Lernens (Machine Learning) kann man das richtige Objekt finden und das Skript automatisch so ändern, dass der Locator repariert wird, d. h. der Ort des grafischen Objekts, das während des Tests aktiviert werden muss. Aber das ist nur ein Element.
Das zweite Thema ist die Relevanz der automatisierten Tests, d. h. ständig sicherzustellen, dass die wichtigsten Benutzerpfade durch die automatisierten Tests abgedeckt werden. Und es gibt ein drittes wichtiges Thema, das ist das Thema der Priorisierung der Tests bei der Ausführung. Wenn Sie End-to-End-Tests haben, die sicherstellen, dass die Benutzerpfade funktionieren, kann die Ausführung einige Zeit in Anspruch nehmen. Eine Lösung für dieses Problem besteht darin, die Ausführung automatisierter Tests priorisieren zu können, und zwar auf der Grundlage des Lernens aus früheren Ergebnissen, einer Vorhersage der Anomalie, die entdeckt werden wird.
Die Idee dahinter ist also, dass die Ausführung von Szenarien die häufiger KO sein werden, um einen schnellen Status über z. B. eine Fehlerkorrektur zu geben?
Das ist absolut richtig. Die Magie der KI und des maschinellen Lernens besteht darin, dass es sich nicht um Regeln handelt, die von Menschenhand definiert werden. Es ist das Lernen des Modells, der Algorithmen durch die Algorithmen, das es ermöglicht, mit guter Zuverlässigkeit Vorhersagen zu treffen. Angenommen, wir müssen 300 Tests durchführen, von denen 17 fehlschlagen und Anomalien aufzeigen. Mit der Vorhersage werden diese 17 Tests unter den ersten 20 Tests sein, die ausgeführt werden. Wenn man die Zeit hat, diese 300 Tests in drei Minuten durchzuführen, wird man sie nicht brauchen, aber die Realität sieht oft anders aus. Die Realität ist, dass die 300 Tests in 4/5 Stunden ausgeführt werden und man daher ein großes Interesse an einer zuverlässigen Priorisierung hat. Die KI in unserer Arbeit ist eine Technik des überwachten Lernens, d. h. wir lernen aus der Geschichte, dem Kontext, in dem der Test ausgeführt wird, der Dauer, den Änderungen, die vorgenommen wurden, usw. Man muss die KI als einen täglichen Erleichterer für die Tester sehen.
Im Gegenteil, wo liegen Ihrer Meinung nach die Grenzen der KI bei der Testautomatisierung?
In einigen Jahren scheint es mir ziemlich klar zu sein, dass wir es schaffen werden, intelligente und autonome Testsysteme zu entwickeln. Es gibt einige Dinge im Labor, die beginnen, sich um selbstlernende Tests zu drehen. Das Thema Nr. 1 sind Regressionstests , Tests, die mühsam zu pflegen und durchzuführen sind. Ich würde darauf wetten, dass wir in fünf bis zehn Jahren diese Art von Roboter haben werden. Man wird Fähigkeiten haben, die die Erstellung von Tests durch Tester in bestimmten Umgebungen und auf automatische Weise ersetzen. Das bedeutet auch, dass die Profile, die guten Fachkenntnisse usw., das ist etwas repetitive Arbeit, die zum Teil ersetzt werden wird. Die Einführung intelligenter und autonomer Testroboter wird ihre Tätigkeit unterstützen und verstärken.
KI ist Ihrer Meinung nach ein ziemlich komplexes Thema. Welche Herausforderungen können sich daraus für die Testautomatisierung ergeben?
Bei der Verwendung und Implementierung von Lerntechniken aus Datenquellen gilt: Wenn die Datenquellen nicht zuverlässig sind, dann sind auch die Ergebnisse der KI nicht zuverlässig. Wenn man versucht, Fehlerquoten oder Risiken verschiedener Softwarekomponenten auf der Grundlage historischer Entwicklungsdaten vorherzusagen, müssen diese historischen Daten archiviert und gepflegt werden und zuverlässig sein. Das ist auch ein Problem, es wird nicht ausreichen zu sagen: Ich muss nur diese KI-Engine nehmen, um ein bestimmtes Ergebnis zu erhalten, wie zum Beispiel eine Vorhersage über die Fehlerrate der Komponente zu treffen. Wenn man nicht die richtigen Daten im Vorfeld hat, wird die Komponente nie etwas bringen. Tester spielen übrigens eine Rolle dabei, dass die von der KI verwendeten Daten von guter Qualität sind.
*End-to-End-Test: Test eines vollständigen integrierten Systems, um zu überprüfen, ob alle integrierten Komponenten in der Endumgebung auf gezielten Benutzerpfaden funktionieren.
*Drehbuch: Ablauf der verschiedenen Schritte, die durchgeführt werden müssen, um eine oder mehrere Funktionen in einer Web- oder Mobilanwendung zu testen.
Was halten Sie von diesem Interview? Nutzen Sie auch die Gelegenheit, um unsere anderen Interviews mit Marc Hage Chahine und Xavier Blanc zu entdecken!