Einem LLM zeigen, wo die Knöpfe sind
Ein Crawler kartiert eine Web-App, damit KI-generierte Tests keine Selektoren mehr erfinden. Erfundene Selektoren gingen von 18 % auf 0 %.
Das Problem
Lässt man ein Sprachmodell End-to-End-Tests für eine Web-App schreiben, klickt es fröhlich auf Knöpfe, die es nicht gibt. Es rät Selektoren danach, wie so eine Seite normalerweise aussieht, und die Tests scheitern aus Gründen, die mit der App nichts zu tun haben.
Was ich gebaut habe
Ein Crawler, der die App nur lesend durchläuft, jede Anfrage, die Daten ändern könnte, ist gesperrt. Aus dem, was er findet, entsteht ein Graph aus Zuständen, Übergängen und Selektoren, die auf der echten Seite geprüft wurden. Das Modell bekommt beim Schreiben der Tests nur diesen Graphen als Kontext. Ein Dashboard zeigt die Karte, und ein Benchmark prüft jeden erzeugten Selektor dagegen.
Was dabei herauskam
Mit Graph waren 0 % der Selektoren erfunden, ohne Graph 18 %. Ein unabhängiges Bewertungsmodell gab den Tests mit Graph über 0,9 für Treue zur Vorlage, ohne Graph etwa 0,1.
Gebaut mit
Python, Playwright, Crawlee, FastAPI, LLMs über Ollama Cloud
Entstanden im Job für ein Kundenprojekt, deshalb ohne Namen und Screenshots.