← Nieuwste papers
🤖 AI

AACR-Bench: Evaluating Automatic Code Review with Holistic Repository-Level Context

Dit artikel introduceert AACR-Bench, een uitgebreide, meertalige benchmark op repository-niveau voor geautomatiseerde code-review die gebruikmaakt van een door AI ondersteunde, door experts geverifieerde annotatiepipeline om de defectdekking aanzienlijk uit te breiden en een striktere standaard vast te stellen voor het evalueren van Large Language Models.

Oorspronkelijke auteurs: Lei Zhang, Yongda Yu, Minghui Yu, Xinxin Guo, Zhengqi Zhuang, Guoping Rong, Dong Shao, Haifeng Shen, Hongyu Kuang, Zhengfeng Li, Boge Wang, Guoan Zhang, Bangyu Xiang, Xiaobin Xu

Gepubliceerd 2026-02-02
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Lei Zhang, Yongda Yu, Minghui Yu, Xinxin Guo, Zhengqi Zhuang, Guoping Rong, Dong Shao, Haifeng Shen, Hongyu Kuang, Zhengfeng Li, Boge Wang, Guoan Zhang, Bangyu Xiang, Xiaobin Xu

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

Stel je voor dat je een senior redacteur bent bij een enorm uitgeverijhuis. Je taak is om manuscripten (code) te beoordelen voordat ze naar de druk gaan. Je hebt een nieuwe assistent, een AI, die beweert dat het fouten, plotgaten en opmaalfouten beter kan opsporen dan welke mens dan ook.

Om deze AI te testen, moet je een "eindexamen" maken. Dit is precies waar het paper AACR-Bench over gaat: het creëren van een beter, eerlijker en realistischer eindexamen voor AI-codebeoordelaars.

Hier is de uitsplitsing van het paper met behulp van eenvoudige analogieën:

1. Het Probleem: De Oude Examens Waren Gebrekkig

De auteurs stellen dat eerdere tests voor AI-codebeoordelaars op twee specifieke manieren kapot waren:

  • Het "Ruisende Antwoordboek"-probleem: Stel je voor dat je een toets nakijkt waarbij de "juiste antwoorden" slechts willekeurige aantekeningen zijn die studenten in de marges van hun eigen huiswerk hebben gekrabbeld. Soms misten de studenten de fouten, soms schreven ze dingen op die eigenlijk geen fouten waren. De oude benchmarks gebruikten deze ruwe, slordige aantekeningen als de "waarheid". Als de AI een bug miste die de menselijke student ook had gemist, kreeg de AI een voldoende, ook al had de AI de fout niet gevonden.

    • De Oplossing: De auteurs hebben een nieuw antwoordboek gemaakt door 80 senior software engineers (de "super-experts") elke regel te laten controleren. Ze gebruikten ook andere AI's om verborgen bugs te vinden. Dit verhoogde het aantal bekende fouten met 285%, waardoor het examen veel moeilijker en nauwkeuriger werd.
  • Het "Blinddoek"-probleem: Stel je voor dat je een detective vraagt een misdaad op te lossen, maar je laat hen alleen de plaats van het misdrijf in één kamer zien, terwijl de rest van het huis verborgen blijft. Veel bugs in code ontstaan doordat verschillende bestanden met elkaar communiceren (zoals een personage in Hoofdstuk 1 het plot in Hoofdstuk 10 beïnvloedt). Oude tests toonden de AI alleen de specifieke regels code die werden gewijzigd, waardoor de rest van het "huis" (het repository) verborgen bleef.

    • De Oplossing: AACR-Bench geeft de AI het hele huis. Het biedt de volledige context van het project, inclusief alle gerelateerde bestanden, zodat de AI kan zien hoe een verandering in één kamer de keuken ernaast beïnvloedt.

2. Het Nieuwe Examen: AACR-Bench

De auteurs hebben een enorme, meertalige testsuite genaamd AACR-Bench gebouwd.

  • De Omvang: Het beslaat 10 verschillende programmeertalen (zoals Python, Java, C++, etc.), niet slechts één. Dit is alsoamt het testen van de AI op Franse, Spaanse en Duitse literatuur, en niet alleen op Engels.
  • De Inhoud: Het bevat 200 echte "Pull Requests" (codewijzigingen) en meer dan 1.500 specifieke review-comments.
  • De "Context"-niveaus: Ze hebben vragen gecategoriseerd op moeilijkheidsgraad op basis van hoeveel context er nodig is:
    • Diff Level: Alleen kijken naar de gewijzigde regels (gemakkelijk).
    • File Level: De hele file moeten zien (gemiddeld).
    • Repo Level: Het hele project moeten zien om de bug te begrijpen (moeilijk).

3. De Resultaten: Wat Er Gebeurde Toen Ze de AI Testten?

De auteurs testten de beste AI-modellen (zoals GPT-5, Claude en anderen) op dit nieuwe, moeilijkere examen. Ze ontdekten een aantal verrassende zaken:

  • De "Agent" vs. De "Scanner":

    • Traditionele AI (De Scanner): Deze modellen lezen de code en spugen een enorme lijst met comments uit. Ze vinden veel potentiële problemen (hoge recall), maar bevatten vaak ook veel onzin of valse alarmen (lage precisie). Het is als een beveiliger die "Indringer!" roept telkens wanneer er een kat langskomt.
    • Agent AI (De Detective): Deze modellen handelen meer als mensen. Ze kunnen "denken", vragen stellen en zelfstandig bestanden opzoeken. Ze vonden minder problemen in totaal, maar de problemen die ze vonden, waren meestal zeer accuraat (hoge precisie). Echter, ze raakten soms zo gefocust op het "grotere plaatje" dat ze overduidelijke typefouten direct voor hun neus misten.
  • De "Context"-paradox:

    • Het paper vond dat het geven van meer informatie aan de AI niet altijd helpt.
    • Voor sommige talen (zoals Python of C#) maakte het geven van de volledige projectcontext de AI juist verwarrend, waardoor de prestaties verslechterden. Het was alsoك een chef die te veel ingrediënten krijgt; hij raakte overweldigd en maakte een slechtere maaltijd.
    • Voor andere talen (zoals Go of Java) hielp de extra context de AI om complexe problemen op te lossen die hij alleen niet had kunnen oplossen.
  • Taalbias:

    • De AI was veel beter in het reviewen van sommige talen dan andere. Het was een "supergenie" in Python en Java, maar worstelde aanzienlijk met C en Rust. De auteurs suggereren dat dit komt omdat de AI getraind is op veel meer data voor de populaire talen, waardoor het "analfabeet" is voor de nuances van de andere talen.

4. De Belangrijkste Conclusie

Het paper concludeert dat we niet simpelweg kunnen zeggen "AI is goed in code review" of "AI is slecht". Het hangt volledig af van:

  1. De Taal: Is het Python of C?
  2. De Context: Tonen we de AI alleen de wijziging, of het hele project?
  3. De Strategie: Gebruiken we een "Scanner" (traditioneel) of een "Detective" (Agent)?

Kortom: De oude manier van testen was als het beoordelen van een student met een defect antwoordboek en een blinddoek. Het nieuwe AACR-Bench verwijdert de blinddoek, repareert het antwoordboek en laat ons zien dat hoewel AI slimmer wordt, het nog steeds in de war raakt door te veel informatie en worstelt met talen die het niet genoeg heeft bestudeerd. De toekomst van code review gaat niet alleen over het slimmer maken van de AI; het gaat over het leren van de AI hoe het naar de code moet kijken.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →