𝗘𝘃𝗲𝗿𝘆 𝗧𝗲𝘀𝘁 𝗣𝗮𝘀𝘀𝗲𝗱. 𝗧𝗵𝗲 𝗨𝘀𝗲𝗿 𝗦𝘁𝗶𝗹𝗹 𝗖𝗼𝘂𝗹𝗱𝗻'𝘁 𝗣𝗹𝗮𝘆 𝘁𝗵𝗲 𝗚𝗮𝗺𝗲
"Die API liefert 200 OK!"
In meinem ersten Job als Ingenieur sah ich ein großes Problem. Meine Vorgesetzten liebten Dashboards. Sie liebten eine hohe Code-Abdeckung. Sie dachten, wenn die Tests grün sind, funktioniert das Produkt.
Sie hatten unrecht.
Dass der Code funktioniert, und dass ein Mensch bekommt, was er braucht, sind zwei verschiedene Dinge. Ein Button kann einen Erfolgsstatus zurückgeben, während der Nutzer auf einem defekten Bildschirm feststeckt.
Ich habe einen Weg entwickelt, um diese UX-Sackgassen zu finden, ohne die App auszuführen. Ich nenne es den „Two-Agent Static Walkthrough“. Er nutzt zwei KI-Agenten, die in einer Schleife miteinander kommunizieren.
- Agent A ist der Nutzer. Dieser Agent hat ein spezifisches Ziel. Er ist hartnäckig. Er gibt nach einem Fehler nicht auf. Er versucht immer wieder verschiedene Pfade.
- Agent B ist die App. Er hat Lesezugriff auf den tatsächlichen Quellcode. Er verfolgt den Code-Pfad jeder Benutzeraktion. Er berichtet exakt, was der Code tut. Er nennt die Datei und die Zeilennummer. Er kann sich nichts vorstellen, was nicht im Code existiert.
Ich habe es an einem fehlerhaften KI-Minispiel-Generator getestet. Das ist passiert:
Runde 1: Der Button versagte. Der Nutzer klickte auf „Generate“. Der Code sendete die Anfrage an einen alten, toten Endpunkt anstatt an den neuen. Die Tests bestanden, weil die alte API noch funktionierte.
Runde 2: Die nicht anklickbare Leere. Der Nutzer versuchte, das Ergebnis anzuklicken. Der Code platzierte den Text in einem einfachen Feld ohne Click-Handler. Es passierte nichts.
Runde 3: Der falsche Segen. Der Nutzer versuchte, den Fehler zu beheben. Das Backend schlug aufgrund einer fehlenden ID fehl. Der Bildschirm zeigte eine grüne Erfolgsmeldung an, obwohl das System abgestürzt war.
Runde 4: Abgeschnittene Hoffnung. Der Nutzer versuchte, den Code manuell zu kopieren. Die API schnitt den Text mitten im Satz ab. Der Code war unbrauchbar.
Der Nutzer gab auf.
Die meisten Unit-Tests prüfen nur, ob ein Endpunkt 200 zurückgibt. Sie prüfen nicht, ob der Nutzer tatsächlich sein Ziel erreicht.
So verwenden Sie dies:
- Machen Sie den Nutzer-Agenten hartnäckig. Echte Bugs verstecken sich hinter dem ersten Fehler.
- Verankern Sie den App-Agenten im echten Code. Das macht aus einem Rollenspiel einen echten Bug-Report.
- Nutzen Sie dies als Ergänzung zu Ihren Tests. Es findet die Lücken, an denen Ihre Logik auf die Realität trifft.
Diese Methode ist statisch und kostengünstig. Sie läuft, noch bevor Sie auch nur eine einzige Test-Fixture schreiben. Sie verwandelt „der Code funktioniert“ in „der Nutzer hat Erfolg“.
Source: https://dev.to/terum/every-test-passed-the-user-still-couldnt-play-the-game-388o
Optional learning community: https://t.me/GyaanSetuAi
