Kürzlich auf meiner Arbeit hat mich ein Kollege in das automatisierte Testen mit einem KI-Bot eingeführt. Trotz des bekannten Vorführeffekts war ich beeindruckt. Innerhalb dieses Blogs nehme ich eine sehr kleine und Fehlerbehaftete Applikation und schaue, ob die KI, in meinem Fall ChatGPT, alle Fehler finden kann.
Der rasante Fortschritt von Künstlicher Intelligenz macht sich überall Bemerkbar, vor allem in der IT-Branche selbst. Doch wie schlagen sie sich beim Testen einer Applikation. Das Motto von KI ist schnell und einfach. Ein Motto, welches ich auch für diesen Blog verwenden versuche. Mein Ziel ist es also, eine fehlerhafte Applikation zu suchen oder zu erstellen, diese dann der KI, in meinem Fall Codex von ChatGPT, zu übergeben und testen zu lassen. Doch der Weg dahin ist um einiges Steiniger, als ich mir zu Beginn erträumt habe. Ein Weg gefüllt mit Stolpersteinen beginnt hier.
Der erste Stein: Die Applikation
Damit ich eine KI testen kann, muss ich erst mal eine Applikation haben. Meine Idee ist simpel. Ich lass mir eine Software gleich von ChatGPT programmieren, die Fehler drin hat. So kann ich gleich bei der KI bleiben, mit der ich auch sonst arbeite, muss nicht selbst was programmieren und bin im besten Falle innert wenigen Minuten auch schon beim Testen. Ein einfaches Login. Einige Textdokumente mit Lorem Ipsum, die nur nach Login erreichbar sind und ein paar Schwachstellen, fertig war die Mixtur.
Das Problem für ChatGPT: Ich könnte auch ein Krimineller sein.
Und so erhielt ich eine abweisende Antwort von ChatGPT.

Während ich diese Sicherheit sehr gut finde, macht sie mir hier einen Strich durch die Rechnung. Glücklicherweise hat er mich jedoch nicht ohne Lösung sitzen lassen und nach kurzem Überlegen erschien sie mir als noch viel bequemer.
Die Hoffnung: Arbeiten mit OWASP
Anstelle einer eigenen Applikation hat er mir OWASP vorgeschlagen, spezifisch den Juice Shop. Eine geniale Idee, die es mir in der Theorie noch viel leichter macht. Ich muss keine eigene Software mehr schreiben und habe auch gleich verlässliche Dokumentation und online Meinungen, um die Rückmeldung von Codex vergleichen zu können. Voller Überzeugung setze ich Codex also auf den Juice Shop an und schaue gespannt zu. Und dann … nichts.
Codex scheint mühe damit zu haben, die Applikation zu starten und blieb deswegen hängen. Zugegeben, ich habe keine Sekunde darin investiert, die Applikation oder Codex drauf vorzubereiten. Die ersten versuche scheitern, bis ich mich entschieden habe, 4 Versionen auf einmal loszusenden. Das Resultat? Verschiedenes.
Die Resultate eines Schnelltests
Während alle 4 Versionen mir auf verschiedenste Art Feedback gaben, waren sich alle an einem Punkt einig. So einfach Testen lässt sich die Applikation nicht. Und sie haben grösstenteils einen gemeinsamen Nenner gefunden.
Die erste Version blieb beim Schritt „Generating browser application bundles“ hängen. Also bei einem Testlauf im Frontend. Er bietet mir an, die Tests schrittweise auszuführen und nennt noch eine npm-Warnung zum http-proxy.
Version zwei redet dann vom Angular-Testaufbau, nennt aber auch den gleichen Schritt als Problempunkt. Spannend finde ich hierbei noch die Betonung seines zweiten Punktes. Beim Überfliegen lässt das fast Vermuten, dass keine Anwendungsfehler vorhanden sind, obwohl er den Satz ganz anders formuliert.

In der dritten Version spricht er dann zum ersten Mal von Server Tests, von denen 204 bestanden und 2 übersprungen wurden. Und auch er nennt „Generating browser application bundles“ als sein Hauptproblem. Diese Version überzeugt mich bisher am meisten, denn er hat kurz und bündig zusammengefasst, was er gemacht hat und woran er hängen blieb, sogar mit einer kleinen Nennung der Bundle-Einstellungen.

So habe ich auch in Version 4 den gleichen Fehler erwartet, wurde aber überrascht. Denn anstelle des bisher genannten, nennt die Version das Fehlen von ChromeHeadless-Binary als Fehler bei dem Frontend-Tests.

Mein Fazit
Auch wenn die abweichende Antwort der 4. Version mein Interesse geweckt hat, ist das der Ort, wo ich mein Selbstexperiment beende. Ich habe versucht, eine Lückenhafte Software zu testen, ohne mein Gehirn zu verwenden. Einfach nur Tippen und der KI das Denken überlassen und kann sagen: Ganz ohne Gehirn geht es dann doch noch nicht.
Ich bin überzeugt, dass man mit viel weniger Aufwand als früher dazu kommt, Software zu testen. Sei es Erstellen von Konzepten, programmieren von automatisierten Tests oder ähnliches, KI kann uns helfen. Doch sie verleitet dazu, nicht nachzudenken und nicht aufzupassen. Und plötzlich ist einem der eigene Code, das eigene Testkonzept fremd.
