Hur man granskar AI-genererad kod

Praktik3 min läsning

Att granska AI-genererad kod använder samma principer som att granska vilken kod som helst, men vissa typer av fel uppträder oftare och kräver medveten uppmärksamhet. Övertygande, rimligt utseende fel är vanligare; granskarens uppgift är att sakta ner där mänskliga granskare instinktivt skyndar på.

Varför AI-genererad kod känns lättare att godkänna

AI-genererad kod är vanligtvis välformaterad, konsekvent namngiven och åtföljd av inline-kommentarer. Den ytliga kvaliteten kan sänka en granskares vaksamhet. Koden läses som om någon kompetent skrivit den, vilket skapar en press att godkänna snabbt. Den pressen är det första att motstå.

Det underliggande problemet är att en språkmodell optimerar för rimlighet, inte korrekthet. Den har inget egenintresse i resultatet. Den kan inte köra koden innan den föreslår den, och den vet inte vad som ändrades i din kodbas förra tisdagen.

Vad som förändras i granskningen

Anta mindre om avsikten. När en kollega skriver en funktion kan du fråga dem varför de gjorde ett visst val. AI-genererad kod har ingen upphovsperson att förhöra. Om avsikten inte framgår tydligt av koden och dess sammanhang är det ett gap som behöver fyllas innan du godkänner, inte efteråt.

Kontrollera sömmarna. AI-verktyg arbetar utifrån ett kontextfönster. De ser vad som skickades till dem och ingenting annat. Fel samlas vid gränserna: där den genererade koden möter resten av systemet, där typer antas snarare än importeras, där ett API-anrop matchar modellens träningsdata snarare än den version du faktiskt kör. Se vad är ett kontextfönster för mer om denna begränsning.

Var särskilt skeptisk till tester. Modeller genererar tester som godkänns mot den kod de nyss skrev. Det är inte samma sak som tester som skulle fånga en regression. Kontrollera om testerna testar det beteende du bryr dig om, eller om de bara bekräftar att funktionen returnerar något.

Håll utkik efter hallucinerande beroenden. Modeller refererar ibland till bibliotek, metoder eller konfigurationsnycklar som inte finns, eller som finns i en annan version än den du använder. En snabb kontroll av importer och beroendeversioner kostar lite. Att upptäcka problemet i produktion gör det inte.

Läs felhanteringen noga. AI-genererad felhantering tenderar att vara generisk. Tysta catches, nakna except-block, fel som sväljs i en loggrad som ingen övervakar. Dessa klarar en ytlig granskning eftersom de ser ut som felhantering. Läs varje ett och fråga dig vad som faktiskt händer när den vägen tas.

Vad som inte förändras

Standardchecklistan för kodgranskning gäller fortfarande: korrekthet, säkerhet, prestanda, läsbarhet, testtäckning och hur koden passar in i den befintliga arkitekturen. AI-generering gör inte dessa aspekter mindre relevanta. Det förändrar var felen tenderar att gömma sig, inte om de finns.

Säkerhetsgranskning bör i synnerhet inte kortas ned. Prompt injection är en kategori av risker som är specifik för AI-assisterade system, men den bredare uppsättningen av problem, injektion, osäkra standardvärden och bristfällig åtkomstkontroll, gäller AI-genererad kod lika mycket som annan kod.

Praktiska vanor

  • Läs diff:en som kod, inte som en sammanfattning. Motstå impulsen att skumma för att det ser rent ut.
  • Om ett block är långt, dela upp granskningen i omgångar: en för logik, en för felhantering, en för tester.
  • När något ser mer komplicerat ut än det behöver vara är det värt en andra titt. Modeller producerar ibland onödigt komplicerade lösningar.
  • Dokumentera var AI-genererad kod orsakade problem. Mönster framträder snabbt och hjälper dig att veta vad du ska kontrollera nästa gång.

För en bredare bild av hur praxis för kodgranskning förändras, se vad som förändrats i kodgranskning.

Vad vi testar

Granskning av AI-genererad kod är en av de färdigheter vi bedömer direkt. I AI-native-bedömningen poängsätts verifiering av AI:ns resultat uttryckligen: hittar utvecklaren påhittade API:er, subtilt felaktig logik eller säkerhetsluckor i genererad kod innan den släpps, även när koden kompilerar? Riskbedömning poängsätts i båda bedömningarna, eftersom agenter levererar en textändring och en betalningsmigrering lika snabbt och med samma säkerhet. Hur båda bedömningarna går till beskrivs under så granskar vi.

Korta svar

Är granskning av AI-genererad kod i grunden annorlunda än att granska mänskligt skriven kod?

Principerna är desamma, men feltyperna förskjuts. AI-genererad kod tenderar att se renare ut än den är, fel koncentreras vid kontextgränser och tester bekräftar ofta bara vad modellen nyss skrev snarare än att fånga framtida regressioner.

Bör AI-genererad kod märkas som sådan i en pull request?

Många team tycker det är användbart, eftersom det uppmanar granskare att tillämpa de specifika kontroller som är viktiga. Det hjälper också till att spåra var problem uppstår. Det finns ännu ingen allmänt accepterad standard, men transparens tenderar att förbättra granskningskvaliteten.

Hur granskar du AI-genererade tester effektivt?

Kontrollera om varje test testar beteende som kodbasen faktiskt behöver skydda, inte bara om det godkänns. Modeller skriver tester som bekräftar sina egna resultat. Fråga vilken regression testet skulle fånga, inte bara om det godkänns just nu.

Vi pratar

Få en shortlist inom fem arbetsdagar

Du beskriver rollerna och din stack i ett kort formulär eller i ett samtal på trettio minuter. Inom fem arbetsdagar får du namngivna seniora utvecklare att gå igenom, alla med båda scorecards.

Omdömen påClutch4.9 av 5 från 36 recensioner
ISO 27001
Certifierad

Boka trettio minuter med Dale

Kalendern tillhandahålls av HubSpot, som sätter egna cookies. Ladda den här, eller boka på HubSpots sida.

Öppna bokningssida