LLM:er skriver GUI-kod som kraschar vid användning
Baserad på forskning av Zhiyuan Peng, Wei Tao, Xin Yin, Chenhao Ying, Yuan Luo
Stora språkmodeller blir allt bättre på att skriva kod, men de har fortfarande svårt att bygga funktionella grafiska gränssnitt. Även om dessa AI-system kan producera syntax som kompilerar felfritt, misslyckas de ofta när man faktiskt försöker använda applikationen. Klyftan mellan att generera kod och skapa en spelbar upplevelse är fortfarande stor, vilket lämnar utvecklare med verktyg som ser korrekta ut på pappret men bryter samman vid interaktion i verkligheten.
Forskare har identifierat ett kritiskt fel i hur vi utvärderar AI-genererade GUI-applikationer. Traditionella benchmark-tester förlitar sig på testfall som kontrollerar enkel korrekthet, samtidigt som de ignorerar den komplexa, händelsedrivna naturen hos interaktiv mjukvara. För att åtgärda detta introducerade forskarteamet PlayEval, ett ramverk med 43 flerspråkiga GUI-applikationer inom sex huvudkategorier, samt Play@k, en metrik som mäter om genererad kod kan köras från början till slut utan logiska fel. De utvecklade också PlayTester, en AI-agent som spelar igenom dessa applikationer för att automatiskt upptäcka logikbrott som statisk analys missar.
Resultaten var slående. Tester på tio ledande koderingsmodeller visade att även om de flesta koder kompilerades framgångsrikt, låg framgångsfrekvensen för att faktiskt spela applikationerna nära noll. Detta avslöjar en stor svaghet: nuvarande LLM:er kan skriva struktur men misslyckas med den interaktiva logik som krävs för att mjukvara ska fungera. Modellerna producerar kod som ser korrekt ut men innehåller tysta buggar som bara syns vid användarens interaktion.
För att fylla denna klyfta utvecklade teamet PlayCoder, ett ramverk med flera agenter som genererar, utvärderar och reparerar GUI-kod i en kontinuerlig loop. Genom att iterativt fixa logiska fel förbättrade PlayCoder den funktionella korrektheten avsevärt, vilket ökade spelbarheten för både öppna och stängda källmodeller till upp till 38,1 % Exec@3 och 20,3 % Play@3. Detta bevisar att pålitlig AI-genererad mjukvara kräver inte bara generering, utan aktiv, iterativ testning för att säkerställa att den slutliga produkten faktiskt fungerar som avsett.