David Faragó ist Deep-Learning-Engineer bei der Firma mediform.io, die Kommunikationslösungen wie Telefon-Bots für Arztpraxen entwickelt. Er beschäftig sich dort u.a. mit Fine-Tuning von Large-Language-Models, Prompt-Engineering und Data Science, aber auch mit Software-Engineering, von der Software-Entwicklung über DevOps bis hin zur Qualitätssicherung. Nebenher hat er noch seine Firma QPR Technologies, die Beratung und Entwicklungsdienstleistung zu innovativer Qualitätssicherung anbietet, z.B. mittels KI oder Statische-Code-Analyse. Die Firma hatte er mit Kollegen nach seiner Promotion zu Symbolic AI, Formalen Methoden und Modellbasiertem Testen gegründet. Er ist Mitglied des Leitungsgremiums der GI-Fachgruppe Test, Analyse und Verifikation (https://fg-tav.gi.de).
Wo stehen wir heute beim Testen mit KI?
Noch in den Kinderschuhen. Es gibt eigentlich schon viele Testing-Tools, die KI intensiv nutzen. Eines der bekannteren ist Katalon, eines der spannendsten finde ich diffblue. In der Forschung teilen sich nach einer Literatur-Survey vom letzten Jahr (https://arxiv.org/pdf/2201.05371.pdf) die Testaktivitäten, die durch KI beeinflusst werden, folgendermaßen auf:
Trotz ihrer Verfügbarkeit werden KI-basierte Tools zum Testen laut einer Stackoverflow-Engineering-Umfrage nur von 24% der Software-Entwickler und Tester eingesetzt oder für dieses Jahr angedacht. Auch die entsprechenden Schulungen und Zertifizierungen, wie der ISTQB Certified Tester – AI Testing (CT-AI), sind noch nicht weit verbreitet.
Big Tech hat beim Testen mit KI einen Vorsprung – mit ihrer Größe lohnt es sich dort auch am meisten, die Zeit zu investieren, um unternehmensspezifische, passende Lösungen zu entwickeln und die neuesten KI-Technologien zu integrieren. So setzt z.B. Google unternehmensweit Machine-Learning ein, um Testfälle bei der Ausführung zu priorisieren oder gar zu selektieren, ebenso fehlschlagende Testfälle bei der Fehleranalyse. Diese unternehmensspezifischen Lösungen werden leider meist nicht veröffentlicht, aber wenigstens auf Konferenzen wie der https://gi.de/veranstaltung/47-tav präsentiert.
Ein Bereich, der sich rasant weiterentwickelt und immer den State-Of-The-Art der KI aufgreift, sind AI-Coding-Tools wie GitHub Copilot. Diese werden in der Softwareentwicklung immer beliebter, und deren Einsatz wirkt sich auch auf das Testen aus – laut obiger Stackoverflow-Umfrage rechnen 34% der Befragten mit einer sehr starken Auswirkung auf das Testen innerhalt eines Jahres. Dies ist auch technisch verständlich, denn zum einen unterstützen diese Tools bei der Testfallerstellung, zumindest auf Komponententest-Ebene. Zum anderen führen sie auch zu einer veränderten Bug-Verteilung im Vergleich zu rein menschlich geschriebenem Code. Beispielsweise tendieren die AI-Coding-Tools zu Code, der repräsentativ ist für GitHub, also im Schnitt eben nicht der qualitativ beste Code. Dies ist vermutlich auch der Grund, weswegen mit AI-Coding-Tools geschriebener Code überdurchschnittlich viele Sicherheitslücken enthält. Oft verlagern sich die Fehler im Code von der eigenen Logik hin zum Aufruf von Drittbibliotheken, da KI hier häufig falsche Information (von unpassenden oder veralteten Abhängigkeit) nutzt. Außerdem gibt es ganz neue Fehlerarten, z.B. durch halluzinierten Code. Auf diese Probleme gehe ich auch in einem Vortrag zu Prompt Engineering für Software-Entwickler (https://youtu.be/Sadj217TA1Y bzw. https://bit.ly/PE4devs-slides) ein. Auf die veränderte Bug-Verteilung sollten Tester schnell reagieren.
Wie wird KI Softwaretesten in den kommenden fünf Jahren verändern?
Die meisten größeren Softwareprodukte werden in den kommenden fünf Jahren KI integrieren, um ihre Funktionalität zu verbessern. Somit werden Testing-Tools durch KI zunehmend in der Lage sein, repetitive, manuelle Aufgaben zu reduzieren und die Effizienz von Testern zu steigern.
Da die in Softwareprodukten integrierte KI ebenfalls getestet werden muss, werden mehr und mehr Tester KI-Kompetenzen erwerben und umgekehrt KI-Experten Testing-Kompetenzen erwerben. Bei beidem könnte der ISTQB Certified Tester – AI Testing (CT-AI) eine entscheidende Rolle spielen.
Welche Skills benötigen Testerinnen und Tester dafür?
KI verändert bereits heute den Softwareentwicklungsprozess (siehe Antwort zu Frage 1), indem sie repetitive, einfache Aufgaben übernimmt, womit die Produktivität gesteigert und die freigesetzten Kapazitäten anders eingesetzt werden können. In fünf Jahren wird dieser Effekt so stark sein, dass sich die Aufgaben von Testern und Entwicklern stark verändern werden. Vermutlich werden einige ihre neu gewonnene Kapazität nutzen, um geschäftsorientiertere Probleme zu lösen, und sich mehr in Richtung Produktmanagement oder Requirements-Engineering bewegen. Andere werden ihre Kapazitäten nutzen, um die technisch immer komplexer werdenden Aufgaben zu lösen, insbesondere solche, die durch die Integration von KI in Softwareprodukte entstehen. Dies könnte dazu führen, dass sich Tester zu Data Quality Analysts oder Data Scientists weiterentwickeln, und Softwareentwickler zu Machine Learning Engineers. Je nachdem, welchen Weg sie einschlagen, werden also zusätzlich die Skills von Requirements-Engineers, Data Quality Analysts oder Data Scientists benötigt.
Wegen der Disruption durch KI sind aber nur unscharfe Prognoses möglich. Immer öfter ist aber zu hören: „AI will not take your job, but someone skilled in AI might.“ Aus meiner Erfahrung sind die meisten Tester sehr offen für KI und den sich dadurch ergebenden Technologie- und Skill-Wandel, und können somit neugierig statt ängstlich in die Zukunft schauen.
Wird es die Rolle des Testens in 10 Jahren noch geben?
Auf jeden Fall. Eine interessante Diskussion hierüber hatte Richie Seidl mit Thomas Steirer in der Podcast-Folge https://www.richard-seidl.com/podcast-thomas-steirer-ki-revolution: Selbst in Zeiten, wenn KI vollautomatisch programmieren und testen kann, werden wir eher die Programmierer abschaffen, als die Tester, denn mindestens das letzte Quality-Gate sollte weiterhin in der Hand des Menschen liegen.