In den letzten Monaten haben wir zahlreiche Interviews geführt – von Startups bis hin zu etablierten Industrieunternehmen. Dabei haben wir eine Aussage immer wieder zu hören bekommen:
„Eine Testspezifikation und Tests zu erstellen kostet viel Zeit – und oft fehlen die nötigen Ressourcen oder das know How dazu.“
Wir sind der Überzeugung, dass KI an dieser Stelle eine gute Hilfe sein kann. Deshalb haben wir uns intensiv damit auseinander gesetzt an welchen Stellen KI bei der Testentwicklung eine sinnvolle Unterstützung sein kann. Mit den ersten Prototypen konnten wir dann optimieren und ein Gefühl dafür entwickeln was gut funktioniert und wo KI ihre Grenzen hat. Aus diesen Erkenntnissen haben wir mehrere KI-Agenten für verschiedene Aufgaben entwickelt, welche wir im folgenden genauer vorstellen.
Schritt 1: Klare Anforderungen
Wichtigste Grundlage für die Tests sind klare Anforderungen. Oft fehlen in den Anforderungen Details wie z.B. das Verhalten bei Fehlbedienung oder Kommunikationsfehlern an der Schnittstelle. Bei komplexen Geräten kommt es manchmal auch zu Widersprüchen zwischen verschiedenen Anforderungen.
Klare Anforderungen sind jedoch eine wichtige Grundvoraussetzung um ein Projekt effizient umsetzen zu können. Klare Anforderungen reduzieren die Anzahl der Rückfragen während der Implementierung und sind gleichzeitig eine wichtige Grundvoraussetzung für die späteren Tests.
Deshalb haben wir einen KI-Agenten erstellt der Hinweise zu den Anforderungen gibt. Dies sind hauptsächlich Definitionslücken (unklares Verhalten – was soll passieren wenn …) sowie eventuelle Punkte die sich gegenseitig Widersprechen. Diese Punkte können dann vom Auftraggeber in das Dokument eingearbeitet werden. Dies ist ein Iterativer Prozess. So steigt die Qualität der Anforderungen Stück für Stück.

Das frühzeitige erkennen dieser Fehler in den Anforderungen hilft dabei diese Fragen frühzeitig abzuklären. Das verhindert zum einen ständige Rückfragen während der Umsetzung und deckt zum anderen sehr frühzeitig versteckte Mehraufwände auf, die sonst oft erst bei der Umsetzung erkannt werden (z.B. wenn noch eine Fehlerbehandlung mit Nutzerinteration erforderlich wird).
LLMs sind besonders gut darin Texte zu verarbeiten – deshalb sind sie für diese Aufgabe sehr gut geeignet. Die Geschwindigkeit ist dabei besonders beeindruckend – ein PDF mit 80 Seiten ist bereits in wenigen Minuten vollständig Analysiert. Der Zeitaufwand hierfür ist minimal und man bekommt sehr schnell einen Überblick – die Dokumente einmal von der KI durchscannen zu lassen lohnt sich deshalb in jedem Fall.
Schritt 2: Testspezifikation erstellen
Eine vollständige Beschreibung der Anforderungen erklärt sehr gut was das Gerät, oder die Schaltung machen soll. Jede einzelne Funktion wird an dieser Stelle gut beschrieben. Deshalb lassen sich aus diesem Dokument auch sehr gut Tests ableiten. Steht in den Anforderungen zum Beispiel: „Bei erreichen der Endlage soll die LED für 2 Sekunden aufleuchten.“, so kann daraus direkt ein Testablauf erstellt werden:
Vorbedingung: Grundstellung, LED aus
Testablauf:
- Endlage anfahren und halten
- LED Verhalten überprüfen
- nach 3 Sekunden zurück zur Grundstellung
Erwartung: LED leuchtet für 2 Sekunden +/- 5%
Auf diese Weise können viele Anforderungen direkt in eine Testspezifikation überführt werden. Dieser Prozess lässt sich mithilfe von LLMs sehr gut automatisieren.
In der Praxis hat sich gezeigt, dass im Lastenheft nicht immer alle technischen Details vorgegeben sind. Wie die genaue Umsetzung aussieht wird typischer weise im Pflichtenheft beschrieben. Deshalb lassen sich auch aus dem Pflichtenheft Tests ableiten. Unsere KI-Lösung erlaubt es deshalb neben den Anforderungen (Lastenheft) auch das Pflichtenheft als Input anzunehmen. Aus diesen Dokumenten entwirft unser KI-Assistent dann eine Testspezifikation mit mehreren klar definierten Testcases. Zusätzlich wird ein Vorschlag gemacht, welche Signale für die Tests relevant sind und an welchen I/Os der Testbox diese angeschlossen werden sollten.

Wir haben die Ergebnisse der KI anhand einiger Beispiele verifiziert. Dabei hat sich gezeigt: mindestens 80% der Testfälle die hier erzeugt wurden sind Sinnvoll und korrekt. Beim Rest sind Testfälle dabei wo z.B. das erwartete Ergebnis nicht korrekt beschrieben wurde oder der Ablauf kleine Fehler beinhaltet, sodass das erwartete Ergebnis nicht erfüllt werden kann. Diese Fehler fallen spätestens bei der Testdurchführung auf. Besser ist es jedoch sich die automatisch generierte Testspezifikation selbst einmal gewissenhaft durchzulesen und die Punkte die einem auffallen direkt zu korrigieren.
Das automatische erstellen der Testspezifikation dauert nur wenige Minuten. Das Ergebnis sehen wir als solide Grundbasis einer Testspezifikation an. Auch wenn man dieses Dokument noch einmal selber gewissenhaft durchschauen muss, ist man mit der KI-Lösung am Ende deutlich schneller bei einer fertigen Testspezifikation angekommen, wie wenn man diese vom leeren Template aus selber schreibt.
Schritt 3: Testcode erstellen
Die Testdefinition beschreibt die Testabläufe bereits sehr gut. Damit ist es für unseren KI-Agenten, der sämtliche Befehle des Testframeworks kennt, sehr einfach möglich diese Abläufe in Testcode zu überführen. Dabei werden für die bessere Übersicht alle Pindefinitionen in einer eigenen Datei beschrieben, damit man diese später sehr einfach ändern kann. Zusätzlich wird eine separate Datei erzeugt die alle Prüfgrenzen beinhaltet, damit auch diese vom Nutzer sehr einfach gändert werden können.
Um die Nahtlose Integration in unser Testsystem zu ermöglichen, wird auch direkt eine Projektdatei mit allen notwendigen Einstellungen erzeugt. Die Projektdatei kann dann direkt in unserer Software geöffnet werden und so der Test mit einem Klick direkt ausgeführt werden.

LLMs die auf das Coding spezialisiert sind, erstellen in der Regel auf anhieb lauffähigen Testcode. Nur in sehr seltenen Fällen kommt es vor dass sich doch mal ein Syntaxfehler einschleicht. Die Umsetzung der Testfunktionen in Code war bei unseren Versuchen in 80-90% der Fälle korrekt. Die meisten Fälle die Fehler beinhalteten konnten sehr schnell entdeckt werden, weil die Fehler zu einem „Failed“ Ergebnis führten und man dadurch sehr schnell wusste an welcher Stelle man noch einmal genauer hinschauen muss. In der Regel waren 10-30 Minuten Nacharbeit notwendig bis alle Testfälle zufriedenstellend liefen. Unserer Erfahrung nach kann man also, inklusive Nacharbeit, in unter 1 Stunde eine Testspezifikation mit 25 Testfällen in lauffähigen Testcode überführen und hält seinen ersten Testreport in der Hand.
Testcode selber schreiben
Auch wenn die KI einem sehr viel Arbeit abnehmen kann, wird man nie drum herum kommen auch selber Testcode zu schreiben. Hierfür haben sich Coding-Assistenten mittlerweile durchgesetzt. Sie sind eine sehr effiziente Möglichkeit Dinge umzusetzen, ohne ehwig in der Doku suchen zu müssen. Man kann einfach direkt Teilaufgaben wie z.B. „Miss das Signal an AIN3 und prüfe ob der Ripple < 0,2% beträgt.“ in Code umsetzen lassen. Auch Fragestellungen wie z.B. „Wie kann ich eine CAN-Nachricht senden?“ werden schnell beantwortet und mit Codebeispielen erklärt. Dieser Coding-Assistent ist beim Schreiben von Testcode eine enorm große Unterstützung und sollte bei keinem Programmierer fehlen.
Fazit
KI kann im Testentstehungsprozess an vielen Stellen helfen. Jedoch ist einiges an know How erforderlich um einen KI-Agenten so zu gestalten, dass er seine Aufgabe auch zufriedenstellend umsetzt. Deshalb haben wir auch beim Thema KI unser Motto „Testen einfach machen“ sehr ernst genommen und eine Lösung geschaffen, die so gestaltet ist, dass der Nutzer in allen oben beschriebenen Schritten lediglich sein Dokument hochladen muss und mit einem Klick den Output der KI direkt verwenden kann. Der Prozess ist dadurch so weit wie möglich vereinfacht.
Dennoch muss man sagen, dass die KI nicht perfekt ist. Immer wieder schleichen sich doch auch kleinere Fehler ein. Deshalb ist am Ende immer ein Mitarbeiter notwendig der die Dinge versteht und bewerten kann. Den Experten ersetzt die KI also keineswegs – aber sie hilft dabei enorm viel Zeit zu sparen. Was bisher mehrere Wochen dauerte, kann mit KI-Unterstützung nun in wenigen Tagen erledigt werden.
Lust unsere KI-Lösung einmal selbst auszuprobieren?
