TDAD: Test-Driven Agentic Development - Reducing Code Regressions in AI Coding Agents via Graph-Based Impact Analysis
Dit paper introduceert TDAD, een open-source tool die AI-coderingsagenten helpt regressies te verminderen door een grafische afhankelijkheidskaart van broncode en tests te genereren, wat resulteert in een 70% daling van regressies en een hogere probleemoplossingsgraad vergeleken met traditionele methoden.
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
TDAD: De Slimme "Controleur" voor AI-Programmeurs
Stel je voor dat je een zeer getalenteerde, maar soms een beetje onvoorspelbare AI-assistent hebt die voor je werkt als programmeur. Deze AI kan best complexe taken oplossen, zoals het repareren van een kapotte functie in een grote software-applicatie. Maar er is een groot probleem: terwijl de AI het ene probleem oplost, breekt ze vaak per ongeluk iets anders dat daarvoor perfect werkte. In de programmeerwereld noemen we dit een regressie.
Het is alsof je een lekkende kraan repareert, maar tijdens het werk per ongeluk de waterleiding naar de badkamer doorboort. De kraan is gerepareerd, maar nu heb je een groter probleem.
Dit artikel introduceert TDAD (Test-Driven Agentic Development), een slim hulpmiddel dat deze AI-assistenten helpt om niet alleen goed te werken, maar ook om niet per ongeluk andere dingen kapot te maken.
Het Probleem: De "Blinde" AI
Tot nu toe werden AI-programmeurs alleen beloond voor het oplossen van het probleem dat ze kregen. Ze kregen geen straf als ze ergens anders iets kapot maakten. Het was alsof je een chauffeur beloont omdat hij op tijd aankomt, maar negeert dat hij onderweg drie auto's heeft geraakt.
AI's weten vaak niet welke andere onderdelen van de software met het stukje code dat ze aan het wijzigen zijn, verbonden zijn. Ze werken vaak "blind". Ze kunnen wel alle tests in het hele programma draaien om te kijken of het werkt, maar dat duurt te lang. Of ze kijken alleen naar de directe omgeving, maar missen dan verborgen verbindingen.
De Oplossing: TDAD als een "Landkaart"
TDAD lost dit op door de AI een landkaart te geven.
Stel je voor dat de software een enorme stad is met duizenden straten (bestanden) en gebouwen (functies). TDAD bouwt een gedetailleerde kaart van deze stad. Op deze kaart staat precies aangegeven: "Als je dit ene huisje (code) aanpast, welke andere huizen en straten worden dan ook beïnvloed?"
Voordat de AI haar werk aflevert, kijkt ze op deze kaart. Ze ziet: "Oh, als ik dit verander, moet ik zeker ook de tests uitvoeren voor die drie andere gebouwen verderop." Zo kan de AI zichzelf corrigeren voordat ze het werk inlevert.
De Grote Verassing: "Minder Instructies, Meer Context"
Het meest interessante deel van dit onderzoek is een verrassende ontdekking. De onderzoekers dachten eerst dat ze de AI moesten vertellen hoe ze moest werken, net als een mens die Test-Driven Development (TDD) doet (eerst een test schrijven, dan de code).
Ze gaven de AI dus een lange, gedetailleerde handleiding: "Schrijf eerst een test, maak de code, refactoren..."
Resultaat: Het ging juist slechter. De AI maakte meer fouten.
Waarom? Omdat de AI (vooral de kleinere, snellere modellen) haar "werkgeheugen" volpropte met die lange instructies. Er was geen ruimte meer om na te denken over de feitelijke code.
De echte oplossing was simpel:
Geen lange handleiding, maar gewoon de kaart (de lijst met tests die gecontroleerd moeten worden) en een heel kort briefje: "Kijk op de kaart, doe de tests, en maak het goed als het fout gaat."
Dit werkte wonderbaarlijk goed. De AI maakte 70% minder fouten dan zonder deze kaart. Het bewijst dat voor AI's context (wát je moet controleren) veel belangrijker is dan procedures (hoe je het moet doen).
De Resultaten in het Kort
- Minder schade: De AI maakte 70% minder "ongelukken" (regressies) dan voorheen.
- Beter resultaat: In sommige gevallen loste de AI zelfs meer problemen op, omdat ze zich durfde te focussen op de juiste tests in plaats van in de war te raken door lange instructies.
- Zelflerend: De onderzoekers lieten de AI het TDAD-systeem zelf een beetje verbeteren. Na een paar rondjes van proberen en fouten maken, werd het systeem nog slimmer en efficiënter.
Conclusie
TDAD is als het geven van een GPS en een verkeerskaart aan een beginnende chauffeur, in plaats van hem een 50 pagina's tellend boekje over verkeersregels te geven. De chauffeur (de AI) kan dan sneller en veiliger rijden, omdat hij precies weet waar de gevaren liggen, zonder verstrikt te raken in de theorie.
Dit onderzoek laat zien dat we AI's niet hoeven te dwingen om op een specifieke manier te denken, maar dat we ze juist moeten voorzien van de juiste informatie om slimme keuzes te maken.
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.