Testdrevet udvikling med AI-agenter

AI Test Driven Development TDD AI Agents

Hvad er TDD (Testdrevet udvikling)?

I sin kerne kredser TDD om en cyklisk proces kendt som Red-Green-Refactor. Cirklen starter med “Red”-fasen, hvor en udvikler skriver en automatiseret testcase, der definerer en ønsket funktion eller adfærd. Denne test er bevidst skrevet til at fejle i starten, fordi den tilsvarende kode endnu ikke findes. Denne indledende fejl er afgørende, da den sikrer, at testen faktisk tester den tilsigtede funktionalitet og kan fange fejl, når koden implementeres.

Den efterfølgende “Green”-fase går ud på at skrive den mindste mængde kode, der er nødvendig for at få den tidligere fejlede test til at bestå. Dette princip opmuntrer udviklere til at fokusere på det umiddelbare krav defineret af testen, opretholde en ren kodebase og forhindre over-engineering.

Endelig fokuserer “Refactor”-fasen på at forbedre struktur, læsbarhed og vedligeholdelsesvenlighed af både testkoden og produktionskoden, mens man sikrer, at alle eksisterende tests fortsat består. Refaktorering sikrer, at kodebasen forbliver sund og tilpasningsdygtig til fremtidige ændringer uden at introducere regressioner, hvor det eksisterende test-suite fungerer som sikkerhedsnet under denne fase.

Hvordan automatiserer du din TDD-pipeline fuldt ud?

Der er mange faktorer, der påvirker AI-agenters ydeevne under kodning. Lige fra LLM-modellen til, hvordan du strukturerer din kode og din udviklingspipeline. Vi har fundet ud af, at TDD er effektivt med Windsurf og Claude 3.5 Sonnet. Følgende er en eksempelopgave, der er implementeret i TDD.

Hvad skal du bruge?

Inden vi begynder at kode, skal vi bruge følgende:

Nok tests

Sørg for, at du allerede har tests efter TDD-principper, og at de dækker det meste af problemets omfang, som du mener er logisk og hjælpsomt for AI-agenten. Du behøver ikke ændre eller tilpasse noget for AI-agentens skyld. Hvis dine tests og deres navngivning følger en standard, er det endnu bedre. Som første skridt vil AI-agenten se disse tests for at starte implementeringen.

Her er et eksempel på en test, jeg har, der tester, om et dokument er blevet korrekt indsat i MongoDB:

MongoDB test example

Interfaces

Et interface i Java (eller ethvert andet programmeringssprog) er en struktur, der definerer, hvordan klasser skal se ud, og hvilke metoder de skal implementere. For at guide AI-agenten yderligere kan det være nyttigt at oprette et interface for dit repository til at indsætte dokumenter:

Java interface example
Java interface code

Specifik opgavebeskrivelse

Endelig har vi brug for en specifik opgavebeskrivelse. Normalt kan du bruge JIRA eller GitHub issues, hvor du definerer opgaven. Dette er vores:

Task description screenshot

Start Vibe Coding

Vibe coding betyder, at du beskriver, hvad du har brug for på almindeligt dansk (eller endda stemmekommandoer), og AI genererer koden for dig i realtid. Vi går i dybden med Vibe Coding i denne blog. Her er prompten, jeg brugte i Windsurf til at løse opgaven for mig:

Prompt example for Windsurf

Implementér følgende forespørgsel som en kombination af en eller flere navngivne forespørgsler og Java-kode.

Find alle chauffører, der har gennemført mindst X ture med en vurdering over 5 i et givent datointerval og aldrig har modtaget en vurdering under 3 stjerner.

Bemærk:
Du behøver ikke finde én enkelt forespørgsel til at løse denne opgave (du kan bruge en kombination af Java-kode og navngivne forespørgsler), men du skal have ORM-ydeevne i tankerne, dvs. sørg for, at din løsning også er rimelig hurtig, hvis du har mange entiteter. Under diskussionssessionen skal du kunne forklare, hvilke typer problemer der kan opstå med dårligt skrevne forespørgsler.

@Ass1_2_2Test.java#L35-60 dette er de tilsvarende tests. Det er implementeret i @DriverDAO.java#L34-63

At nævne filerne er det vigtigste, når du arbejder med vibe coding. Nu kan du læne dig tilbage og se AI-agenten udføre sin magi. Den implementerede klassen, kørte testene og gentog processen for at få testene til at bestå:

AI Agent coding flow

Ofte stillede spørgsmål

Yasha er en talentfuld softwareudvikler med speciale i Python, Java og maskinlæring. Yasha skriver tekniske artikler om AI, prompt engineering og udvikling af chatbots.

Yasha Boroumand
Yasha Boroumand
CTO, FlowHunt

Boost din udvikling med AI-agenter

Oplev, hvordan FlowHunts AI-flowingeniører og kodeagenter kan automatisere din udviklingsproces for maksimal effektivitet og innovation.

Lær mere

GPT-5 Codex: AI-drevet udvikling og autonom kodning
GPT-5 Codex: AI-drevet udvikling og autonom kodning

GPT-5 Codex: AI-drevet udvikling og autonom kodning

Udforsk hvordan GPT-5 Codex revolutionerer softwareudvikling med avancerede agentiske kodningsevner, 7-timers autonom opgaveløsning og intelligent kodegennemgan...

17 min læsning
AI Development +3
Trello
Trello

Trello

Integrer FlowHunt med Trello for at automatisere dine projektstyringsarbejdsgange ved hjælp af AI-drevne agenter og Trello MCP Serveren. Muliggør styring med na...

4 min læsning
AI Trello +3