Macht künstliche Intelligenz Softwaretester überflüssig? Wahrscheinlich nicht. KI wird eher dazu führen, dass Softwareentwickler überflüssig werden. Aber es steht außer Frage, dass KI einen großen Wandel im Softwaretesten mit sich bringt. In diesem Beitrag werden einige der Veränderungen besprochen, die wir schon bald beobachten werden.
Längst hat die Testautomatisierung die Tester von der Roboterarbeit befreit, also dem Ausführen von Tests, die von jemand anderem entworfen wurden. Tester sind nicht verschwunden. Ihre Zeit wurde dafür frei, mehr und bessere Tests zu entwerfen und diese, selbstverständlich, auch zu automatisieren. Später sollte mit agilen Methoden und DevOps der Tester überflüssig werden, da Entwickler ihren Code bereits beim Schreiben testen würden. Es stellte sich jedoch heraus, dass die meisten Entwickler lieber Code schrieben als testeten. Wir lernten auch, dass man ganze Geschäftsprozesse über Anwendungsgrenzen hinweg testen muss. Softwaretester erweiterten ihr Aufgabengebiet auf exploratives Testen und End-to-End-Tests.
Wie wird KI das Softwaretesten verändern?
KI wird die Rolle des Testers verändern, indem sie eine große Hilfe bei Aktivitäten wird, die Tester nicht besonders gut beherrschen. KI wird voraussichtlich den gesamten Testprozess beeinflussen statt nur einzelne Aufgaben zu verbessern.
Charakteristisch für die Arbeit eines Testers ist, dass dieselben Aufgaben mehrfach mit nur geringen Abweichungen erledigt werden und sich viel Wartezeit ergibt. Tester warten auf:
- eine neue Version zum Testen.
- den Abschluss automatisierter Testruns.
- einen Bugfix, der weitere Tests verhindert.
- Und so weiter ...
Tester führen auch Aufgaben aus, die viel Sorgfalt und Aufmerksamkeit für Details erfordern und wenig Motivation bieten, wie etwa die Auswertung von Ergebnissen automatisierter Tests, die Pflege automatisierter Tests, die aufgrund von Änderungen in der Anwendung fehlschlagen, oder das Ermitteln und Berichten des Teststatus. Jede Minute, die sie auf diese wichtigen Aufgaben verwenden, wartet jemand anderes auf die Testergebnisse.

Der Großteil der Testarbeit besteht aus Testdurchführung. Diese ist weitgehend automatisiert, bindet aber weiterhin menschlichen Aufwand – und genau dieser bremst den gesamten Testzyklus. Wir benötigen Menschen, um die Tests zu automatisieren, die dann von einem Roboter ausgeführt werden, um diese Tests bei Anwendungsänderungen zu pflegen und die Testergebnisse auszuwerten. Es gibt bereits KI-gestützte Testwerkzeuge, die Testfälle basierend auf der Wahrscheinlichkeit, Fehler zu entdecken, auswählen und sortieren, fehlerhafte Tests automatisch reparieren oder Fehlerberichte vorab ausfüllen können.
Die unmittelbaren Auswirkungen von KI auf QAs
In der nächsten Welle der automatischen Testerstellung werden wir Werkzeuge sehen, die Tests direkt aus einer Use-Case-Beschreibung generieren oder sogar noch direkter, indem sie einem menschlichen Tester bei der Erkundung der Anwendung zusehen. Das ist ein großer Schritt von automatisiertem Testen hin zum autonomen Testen. Ganz so weit sind wir jedoch noch nicht. Die meisten Anwendungen und Geschäftsprozesse sind proprietär und die für das Training der KI benötigten Daten sind in unterschiedlichen Softwaretest-Tools verteilt. Daher werden wir wahrscheinlich zunächst vom Menschen beaufsichtigtes Testen sehen, statt vollständig autonomes Testen.
Die meisten Softwareteams haben eher zu wenige als zu viele Tests. Durch den Einsatz von KI wird die Menge an Testressourcen vermutlich steigen. Auch wenn das Ausführen automatisierter Tests praktisch nichts mehr kostet, ist die Schnelligkeit der Testergebnisse weiterhin bedeutsam. Es wäre daher vorteilhaft, die Regressionstests so zu arrangieren, dass zunächst die Tests mit der höchsten Wahrscheinlichkeit, Fehler zu finden, durchgeführt werden. Wenn die KI die Lebenszyklusdaten gut genug versteht, kann sie auf Code-Änderungen und bisherige Testergebnisse schauen, bestimmen, wie die Tests angeordnet werden, und den Feedback-Zyklus so beschleunigen.
Wenn eine KI Tests nach ihrer Wahrscheinlichkeit, Fehler zu entdecken, auswählen kann, sollte sie auch vorhersagen können, wo Fehler wahrscheinlich auftreten. Auch ein menschlicher Tester kann von dieser Information profitieren, indem er den Explorativtest gezielt auf diese Funktionen fokussiert.
Für viele Menschen ist KI ein Synonym für die natürlichen Sprachgenerierungsfähigkeiten, wie sie ChatGPT demonstriert. Auch diese Fähigkeiten können im Testen eingesetzt werden. Wenn eine KI in der Lage ist, einen Testfall zu entwerfen, kann sie auch einen Testablauf in einem Fehlerbericht beschreiben. Wahrscheinlich wird ein durch KI generierter Fehlerbericht verständlicher sein als ein hastig vom Menschen verfasster Bericht, der schnell noch den nächsten Testfall prüfen will.
Neben Fehlerberichten liefert das Testen viele quantitative Daten über die Softwarequalität und sogar über den Erstellungsprozess der Software. Das Problem ist, dass diejenigen, die nahe am Testen sind und die Daten verstehen, sich nicht die Mühe machen, diese denen zu erklären, die es verstehen sollten – und jene anderen hören meist nicht zu. Hier kann KI beiden Seiten und deren Führungskräften einen großen Dienst erweisen, indem sie Teststatistiken in verbale Erkenntnisse, Schlussfolgerungen und Empfehlungen verwandelt.
Wird KI QAs ersetzen?
Es ist verlockend, sich vorzustellen, was für KI leichter zu ersetzen ist: einen Tester oder einen Entwickler. Es ist einfacher, einen Test zu erzeugen, als Code zu generieren. Andererseits erfordert das Erstellen aussagekräftiger Tests mehr Vorstellungskraft. Schließlich wandelt das Programmieren eine Anforderung in Code um, der die Anwendung zum Laufen bringt, während das Testen eine Anforderung in einen oder mehrere Tests verwandeln sollte, die die Anwendung zum Absturz bringen sollen.
In großem Maßstab ist das Entwerfen von Tests allerdings einfacher als das Kodieren. Der Aufbau eines großen Informationssystems ist weitaus herausfordernder, als Code für eine einzelne Funktion zu schreiben. Tests für ein großes Informationssystem zu entwerfen ist nicht viel schwieriger, als Tests für eine einzelne Funktion zu entwerfen. Es ist einfach mehr Arbeit. Die Testumgebung kann allerdings weitaus anspruchsvoller sein.
Zum Beispiel ist das Einrichten und Überprüfen eines Tests, der eine Bestellung in einer mobilen App anlegt, diese dann in Salesforce verarbeitet wird und anschließend zur Abwicklung nach SAP fließt, eine sehr komplexe Aufgabe—obwohl das Testszenario an sich recht unkompliziert ist. Wir werden KI-unterstützte Menschen ebenso benötigen wie von Menschen unterstützte KI.
Sogar diese kleinen Beispiele beweisen, dass sich die Dinge schon in naher Zukunft sehr verändern werden. KI wird die Geschwindigkeit und Produktivität beim Entwickeln von Software erhöhen, aber sie wird noch nicht in der Lage sein, Software eigenständig zu entwickeln und deren Qualität zu gewährleisten.
Wäre ich heute hauptberuflich Software-Tester, würde ich mir keine Sorgen machen, dass KI meinen Job übernimmt. Ich würde mir vielmehr Gedanken machen, wie ich die KI testen kann.
Sie interessieren sich für mehr Informationen zu KI und Softwaretests? Dann melden Sie sich für den Newsletter des CTO Clubs an, um keine aktuellen Trends zu verpassen.
