Dr.-Ing. Dehla Sokenou fühlt sich in allen Phasen der Softwareentwicklung zu Hause, einen besonderen Schwerpunkt bilden allerdings alle Themen rund um Qualitätssicherung und Testen. Bei der WPS ist sie als Test- und Qualitätsmanagerin sowie Softwarearchitektin tätig. Daneben ist sie Sprecherin der GI-Fachgruppe Test, Analyse und Verifikation von Software (TAV) und im Sprechergremium des Arbeitskreises Innovative Testmethoden.
Wo stehen wir heute beim Testen mit KI?
Aktuell gibt es aus meiner Sicht zwei Fragestellungen, mit denen wir uns als Tester auseinandersetzen müssen. Auf der einen Seite kann KI uns beim Testen unterstützen, durch die Erzeugung von Testfällen und Testdaten und durch die Bewertung der Qualität unserer Testsuiten. Auf der anderen Seite müssen wir uns in der Rolle des Testers aber auch mit dem Testen von KI-Systemen auseinandersetzen. Aus meiner Sicht sind wir bisher noch am Anfang des Weges, das gilt für beide Fragestellungen.
Nehmen wir als ein Beispiel die Erstellung von Testfällen. David Faragó hat dazu bspw. in einem Experiment versucht, mit Hilfe von ChatGPT Unit-Testfälle für ein bestehendes Programm zu erzeugen. Die Ergebnisse waren durchwachsen, die Testsuite enthielt auch nach mehreren Versuchen noch Fehler. Details finden sich in seinem Vortrag zum Thema auf dem 48. TAV-Treffen. Es kommen Zweifel an der Qualität der Testfälle auf, die sich – wenn man es weiter denkt – im Fall von testgetriebener Entwicklung aktuell fatal auswirken können, da mangelhafte Tests zu mangelhafter, fehlerbehafteter Software führen.
Betrachtet man den Test von KI-Systemen, so gibt es zwar gute Ansätze und auch bereits einen Lehrplan des ISTQB, trotzdem mangelt es noch an Erfahrung mit KI-Systemen. Diese arbeiten anders als klassische Softwaresysteme und auch als Tester ist man gezwungen, diese andere Arbeitsweise zu verstehen. So gibt es u.a. ganz andere Testdaten, Grenzbedingungen und Fehlerfälle. Schauen wir auf eine der typischen Anwendungen, die Bilderkennung, so ist man als Mensch doch manchmal überrascht, wie durch nur wenige, minimale Änderungen an einem Bild dieses in eine ganz andere Klasse einsortiert wird. Ein bekanntes Beispiel dafür ist die Beeinflussung der Verkehrsschilderkennung durch simple kleine Aufkleber, gezeigt u.a. von Anurag Ranjan et al im Paper „Attacking Optical Flow“. Diese Situationen beim Test vorherzusehen und abzudecken, ist enorm herausfordernd.
Wie wird KI Softwaretesten in den kommenden fünf Jahren verändern?
Die Zukunft ist natürlich nur schwer vorauszusagen. Meine Vermutung wäre, dass KI die Softwareentwicklung beeinflussen wird, aber vielleicht anders, als wir es jetzt glauben. Dabei blicke ich vornehmlich auf den Bereich des maschinellen Lernens in all seinen Facetten, der aus meiner Sicht aktuell das größte Potential hat.
Ich könnte mir vorstellen, dass sich vielleicht weniger das Testen verändern wird als das Programmieren von Software. Von Menschen erstellte Testfälle geben dann den Rahmen vor, den die KI durch ein entsprechendes Programm erfüllen muss – klassische testgetriebene Entwicklung also, aber nun mit Arbeitsteilung zwischen Mensch und KI. Softwareentwickler kommen dann mehr und mehr in die Rolle des Testers, die sie ja aufgrund von TDD und agiler Entwicklung sowieso bereits zu einem Teil übernommen haben.
Für den Bereich des Testens von KI-Systemen werden wir aus meiner Sicht spezialisierte Testexperten brauchen, die mehr sind als nur reine Tester. Diese werden für verschiedene KI-Aufgaben spezielle Testdaten zur Verfügung stellen. Im Gegensatz zu klassischer Software dienen Testdaten nicht nur als Validierung des Systems, sondern auch zum Training des Systems. Tester werden vor allem auch die Testdaten immer wieder anpassen und neue bereitstellen müssen, da sich KI-Systeme im Laufe der Zeit durch neue, produktive Inputdaten immer weiterentwickeln und ggf. nachgeschärft werden müssen, wenn die Erkennungsraten sinken, bspw. die Klassifikation von Bildern im Laufe der Zeit immer schlechter wird.
Welche Skills benötigen Testerinnen und Tester dafür?
Neben klassischen Testfähigkeiten werden insbesondere im Bereich des Testens von KI-Systemen spezielle Kenntnisse erforderlich sein. Zu den Fähigkeiten eines Testers gehören natürlich Neugier, die Freude am Ausprobieren, ungewöhnliche Dinge zu versuchen, aber auch sehr systematisches Vorgehen. Aus meiner Sicht wird sich der Schwerpunkt beim Test von KI-Systemen aber zu den erstgenannten Fähigkeiten hin verschieben, systematische Ansätze bleiben zwar wichtig, aber ich glaube, sie werden etwas in den Hintergrund treten. Grund dafür ist das oben genannte Verhalten von KI-Systemen, bei leichten Änderungen des Inputs ggf. komplett andere Outputs zu generieren. Da kann der Mensch mit seiner Kreativität dagegen halten und auf diese Weise solche Fehler beim Testen aufdecken und die Lücken durch entsprechende neue Testdaten zum Training und zur Validierung des System schließen.
Zusätzlich wird sicher auch ein besseres Verständnis der Sicht von KI-Systemen auf die Welt erforderlich sein. So kann ein Blick auf die von der KI angenommenen Wahrscheinlichkeiten, z.B. in welche Klasse ein Teil eines Bilds fällt, bereits Indizien auf Schwachstellen in der Erkennung geben und dazu dienen, neue Testdaten abzuleiten. Neben der reinen Funktion werden Sicherheitsaspekte aus meiner Sicht eine große Rolle spielen, auch dafür wird es wichtig sein, zu verstehen, was die KI „denkt“ und wie man sie potentiell überlisten kann. Das oben erwähnte Paper stellt dies als sogenannte „White-box Attacks“ vor.
Da Testdaten auch zum Training von KI-Systemen dienen, wird sicher die Auswahl und Bewertung von Testdaten eine große Rolle beim Testen spielen. Welche Daten sind geeignet, das System passend zu trainieren? Welchen Teil der Daten nutzt man zur Validierung des Systems? Wie überwacht man das System während seiner Lebenszeit? Und kann man als Tester feststellen, ob die Testdaten korrumpiert sind und vielleicht das Falsche trainieren, vielleicht sogar in böswilliger Absicht?
Wird es die Rolle des Testens in 10 Jahren noch geben?
Wie man oben sieht, glaube ich schon, dass es die Rolle des Testens in zehn Jahren noch geben wird. Ziemlich sicher werden sich Schwerpunkte verschieben und insgesamt wird weniger selbst programmiert werden, dies gilt vermutlich auch für die Testautomatisierung. Da ich aber nicht glaube, dass KI-Systeme sich selbst testen sollten, schon weil sie sich durch gegenseitige Beeinflussung von ihrer eigentlichen Aufgabe wegbewegen könnten, wird mindestens diese Aufgabe für uns menschliche Tester bleiben. Ich bin jedenfalls gespannt auf die weitere Entwicklung und freue mich, wenn wir in unserer Rolle als Tester auch in Zukunft nicht überflüssig sein werden.