Aankondigingen

Hoe We 273 Unittests in 3 Dagen Hebben Gecreëerd Zonder Een Enkele Regel Code Te Schrijven

Hoe We 273 Unittests in 3 Dagen Hebben Gecreëerd Zonder Een Enkele Regel Code Te Schrijven

Dit bericht is Deel 3 van een serie van 4 delen. Zorg ervoor dat je de andere berichten in de serie bekijkt voor een diepere duik in onze AI-gestuurde bedrijfsplangenerator.
Deel 1: Hoe we een AI-gestuurde bedrijfsplangenerator hebben gebouwd met LangGraph & LangChain
Deel 2: Hoe we AI bedrijfsplangeneratie hebben geoptimaliseerd: snelheid versus kwaliteitscompromissen
Deel 3: Hoe we 273 unit tests in 3 dagen hebben gecreëerd zonder een enkele regel code te schrijven
Deel 4: AI Evaluatie Framework — Hoe we een systeem hebben gebouwd om AI-gegenereerde bedrijfsplannen te beoordelen en te verbeteren

In het snel veranderende landschap van softwareontwikkeling, breidt de rol van kunstmatige intelligentie zich uit voorbij het genereren van code naar testautomatisering. Gedurende een intensieve periode van drie dagen in februari 2025 hebben we bij DreamHost een diepgaand onderzoeksproject uitgevoerd om te evalueren hoe effectief AI autonoom unit tests kan schrijven met minimale menselijke tussenkomst. Dit artikel deelt belangrijke bevindingen, statistieken en inzichten die de manier waarop we testautomatisering benaderen, kunnen hervormen.

De Onderzoekspremisse

Het kernobjectief was duidelijk: evalueren of AI betrouwbaar productiekwaliteit unit tests kan creëren zonder menselijk code schrijven. Dit was niet slechts een academische oefening — bij DreamHost passen we AI toe om onze productiviteit met “100000x” te verhogen in het Business Planner project, en dit onderzoek was ontworpen om die grenzen verder te verleggen. Deze aanpak vertegenwoordigt een significante verschuiving van traditionele unit test workflows en zou de productiviteit van ontwikkeling dramatisch kunnen beïnvloeden.

Projectparameters

Voor dit onderzoek hebben we een gestructureerde methodologie vastgesteld:

  1. AI Input: Geef de AI broncode, voorbeeldtestbestanden die patronen/stijl tonen, testvereisten en context van de ontwikkelomgeving
  2. Beperkingen Voor Mensen: Beperk menselijke input tot verduidelijkingen, correctie van misvattingen en het verstrekken van ontbrekende context — zonder directe code te schrijven
  3. Focus Op Meting: Volg de benodigde tijd tot voltooiing, benodigde iteraties, typen fouten die zijn aangetroffen, kwaliteit van de output, bereikte dekking en vereiste menselijke inspanning

Onze succes criteria waren ambitieus maar noodzakelijk voor toepasbaarheid in productie:

  • 100% testdekking
  • Type-veilige implementatie
  • Naleving van de beste testpraktijken
  • Minimale menselijke interventie
  • Redelijke voltooiingstijd
  • Onderhoudbare testcode

Belangrijkste Onderzoeksresultaten

In slechts drie dagen heeft ons team 273 nieuwe tests toegevoegd aan het Business Planner project, waardoor onze testdekking aanzienlijk is verhoogd. Na het analyseren van meerdere door AI gegenereerde testimplementaties over verschillende diensten en componenten, kwamen er verschillende patronen naar voren die waardevolle inzichten geven in de huidige staat van AI-gestuurde unit testing.

1. Efficiëntie Metrieken

Een van de meest opvallende bevindingen was de drastische vermindering van de implementatietijd:

De tijdsbesparing is aanzienlijk — de meeste testimplementaties waren in minder dan 10 minuten voltooid, met een geschatte menselijke equivalent van 30–60 minuten voor dezelfde taak. Dit vertegenwoordigt een potentiële productiviteitsverhoging van 4–6x voor routinematig testschrijven.

2. Sterke Punten Van AI-Testen

Door meerdere implementaties vielen bepaalde AI-capaciteiten consequent op:

  • Uitgebreide Dekking: AI bereikte consequent 96–100% code dekking bij verschillende complexiteiten van diensten
  • Patroonherkenning: AI blonk uit in het herkennen van testpatronen uit voorbeelden en paste deze consequent toe
  • Aanpassing aan Feedback: De meeste fouten konden opgelost worden met minimale verduidelijking
  • Mock Implementatie: AI toonde sterke capaciteiten in het creëren van geschikte mocks en testfixtures
  • Structuurconsistentie: De organisatie van tests volgde de beste praktijken met duidelijke arrange-act-assert patronen

3. Waargenomen Beperkingen En Uitdagingen

Ondanks indrukwekkende resultaten, doken er verschillende terugkerende uitdagingen op:

  • TypeScript Type Handling: De meest voorkomende bron van fouten betrof onvolledige type-definities of verkeerde aannames over typen
  • Project Structure Understanding: Importpaden en afhankelijkheidsrelaties vereisten vaak menselijke correctie
  • Edge Case Coverage: Hoewel basispaden goed gedekt waren, vereiste complexe conditionele logica soms extra testgevallen
  • Template Assumptions: AI maakte af en toe ongegronde aannames over applicatiespecifieke sjablonen of patronen
  • Iteration Requirements: Meer complexe diensten vereisten meer heen-en-weer communicatie om volledige dekking te bereiken

Case Study Momentopnames

Laten we een paar representatieve implementaties bekijken om deze patronen beter te begrijpen.

Geval 1: Eenvoudige Constante Export Testen

Voor het testen van bestanden die voornamelijk constante exports bevatten:

  • Implementatietijd: 1 minuut 30 seconden
  • Testgevallen: 10
  • Dekking: 100%
  • Iteraties: 1 (geen reparaties nodig)
  • Aanpak: Effectief gebruik van snapshot tests voor grote constante objecten

Dit geval toont aan dat AI voor eenvoudige testsituaties complete tests kan genereren zonder enige iteratie — in wezen “perfect” bij de eerste poging.

Casus 2: Complexe Dienst met DI Afhankelijkheden

Voor een complexere dienst met afhankelijkheidsinjectie:

  • Implementatietijd: 4 minuten 50 seconden
  • Testgevallen: 5
  • Dekking: 100%
  • Iteraties: 2
  • Uitdagingen: Implementatie van Bootstrap-test vereiste oplossingen voor afhankelijkheidsbinding

De AI heeft de testen voor afhankelijkheidsinjectie succesvol aangepakt, waarbij slechts kleine aanpassingen nodig waren voor de initialisatie van de container.

Case 3: Zeer Complexe Dienst met Veel Vertakkingen

Voor de meest complexe diensten getest:

  • Implementatietijd: 24 minuten
  • Testgevallen: 11
  • Dekking: 51,26% (onder doel)
  • Iteraties: 5–6
  • Uitdagingen: Moeilijkheden bij het volledig bereiken van branchdekking voor complexe conditionele logica

Dit vertegenwoordigt een belangrijk grensgeval waar AI nog steeds worstelde met uitgebreide tests van zeer complexe vertakte logica.

Gevolgen Voor Het Ontwikkelingsproces

Deze bevindingen suggereren verschillende veranderingen in hoe we de testimplementatie zouden kunnen benaderen:

1. Herziene Werkstroom

In plaats van dat ontwikkelaars tests vanaf nul schrijven, lijkt een efficiëntere workflow te zijn:

  1. Ontwikkelaar levert broncode en voorbeeldtests aan AI
  2. AI genereert initiële testimplementatie
  3. Ontwikkelaar geeft iteratieve feedback over specifieke kwesties
  4. AI verfijnt implementatie totdat dekkingsdoelen zijn bereikt
  5. Ontwikkelaar voert de laatste controle uit en doet de commit

Deze aanpak stelt ontwikkelaars in staat zich te concentreren op het beoordelen van testkwaliteit en randgevallen in plaats van het schrijven van standaard testcode.

2. Optimalisatiekansen

Verschillende praktijken hebben de prestaties van AI-testgeneratie aanzienlijk verbeterd:

  • Heldere voorbeeldtests bieden in dezelfde stijl/patroon
  • Vooraf exacte dekkingsvereisten specificeren
  • Informatie over complexe typen opnemen
  • Potentiele randgevallen proactief identificeren
  • Gebruikmaken van test-eerst benaderingen waarbij de AI tegelijkertijd toegang heeft tot zowel implementatie als tests

3. Economische Impact

Op basis van de vergelijking tussen de implementatietijd van AI en de geschatte implementatietijd van mensen, zijn de potentiële productiviteitswinsten aanzienlijk:

  • 70–85% reductie in tijd besteed aan het schrijven van routine unit tests
  • Hogere consistentie in dekking
  • Snellere feedbackcycli tijdens ontwikkeling
  • Meer testgevallen voor dezelfde ontwikkelinspanning

Vooruitblik: De Toekomst Van AI-Gedreven Testen

Dit onderzoek vertegenwoordigt een vroege verkenning van wat waarschijnlijk een standaard ontwikkelingspraktijk zal worden. Verschillende trends suggereren waar dit veld naartoe gaat:

Toekomstige Kansen

  1. Testgestuurde Ontwikkeling: AI kan zowel tests als implementatiecode iteratief genereren
  2. Integratie met CI/CD: Automatische generatie en onderhoud van tests tijdens het bouwproces
  3. Training voor Eigen Domeinen: Modellen fijnslijpen voor specifieke codebases of patronen
  4. Zelfherstellende Tests: AI die tests bijwerkt wanneer de implementatie verandert
  5. Gespecialiseerde Testmodellen: AI-modellen specifiek geoptimaliseerd voor het genereren van tests

Resterende Uitdagingen

Ondanks aanzienlijke vooruitgang blijven er verschillende uitdagingen bestaan:

  1. Complexe Statusbeheer: Testen van stateful componenten met complexe interacties
  2. Gespecialiseerde Kennis: Testen die domeinspecifieke inzichten of bedrijfsregels vereisen
  3. Integratietests: Voorbij unit-testing naar integratie- en systeemtests
  4. Performancetests: Het identificeren en schrijven van effectieve performancetests
  5. Beveiligingstests: Het vinden en exploiteren van beveiligingskwetsbaarheden

Projectoverzicht: De Cijfers

Hier is een overzicht van wat we hebben bereikt in ons driedaagse experiment:

  • Test Toevoegingen: 273 nieuwe tests toegevoegd (van 22 naar 295 in totaal)
  • Succespercentage: ~90% van de pogingen bereikte met succes 100% dekking
  • Implementatietijd: Gemiddeld 5–8 minuten per component
  • Grootste Test Suite: 273 tests toegevoegd in ongeveer 6 uur totale werktijd
  • Snelste Implementatie: 90 seconden voor framework snapshots met 100% dekking
  • Meest Complexe Geval: Graph component met 13 afhankelijkheden, voltooid in 5 minuten
  • Kwaliteitsniveau: Codekwaliteit op niveau van senior ontwikkelaar gehandhaafd
  • Menselijke Invoer: Nul regels code geschreven door mensen

Vanuit het oogpunt van ROI schatten we een tijdsbesparing van 70–80% in vergelijking met handmatige implementatie, zonder concessies te doen aan de kwaliteit. De enige opvallende mislukking was met de RunsService, waar we slechts 51% dekking bereikten vanwege extreem complexe vertakkingslogica.

Conclusie: Praktische Aanbevelingen

Op basis van dit onderzoek raden we de volgende praktijken aan voor teams die AI willen benutten voor eenheidstests:

  1. Begin Eenvoudig: Begin met eenvoudige componenten die gevestigde patronen volgen
  2. Geef Voorbeelden: Voeg representatieve voorbeelden van je teststijl toe
  3. Iteratieve Feedback: Plan 2–3 feedbackcycli voor optimale resultaten
  4. Focus op Randgevallen: Gebruik je domeinkennis om randgevallen te suggereren die de AI kan missen
  5. Stel Duidelijke Richtlijnen Op: Defineer hoe “klaar” eruitziet voor testdekking en stijl
  6. Regelmatige Updates: Naarmate AI-modellen verbeteren, herzie je aanpak om nieuwe mogelijkheden te benutten

Het meest opwindende aspect van dit onderzoek is dat het slechts het begin vertegenwoordigt. Naarmate de mogelijkheden van AI zich blijven ontwikkelen, zal het potentieel voor AI-gestuurde tests zich uitbreiden over meer complexe testdomeinen, waardoor uiteindelijk de manier waarop we kwaliteitsborging in softwareontwikkeling benaderen, wordt getransformeerd.

Dit onderzoek is uitgevoerd gedurende drie dagen in februari 2025 aan het DreamHost’s Business Planner project, gebruikmakend van meerdere AI-modellen waaronder GitHub Copilot, OpenAI’s GPT-modellen, en Anthropic’s Claude. De testomgeving was een TypeScript-gebaseerde service met Jest en ts-mockito voor het testen, gericht op componenten van echte zakelijke applicaties. Het belangrijkste is dat we gedurende het hele proces nul regels code hebben geschreven — alle testimplementatie werd gedaan door AI met alleen menselijke begeleiding.

Deze post is Deel 3 van een 4-delige serie. Zorg ervoor dat je de andere posts in de serie bekijkt voor een diepere duik in onze AI-gedreven bedrijfsplannengenerator.
Deel 1: Hoe We Een AI-Gedreven Bedrijfsplannengenerator Hebben Gebouwd Met LangGraph & LangChain
Deel 2: Hoe We AI Bedrijfsplangeneratie Hebben Geoptimaliseerd: Snelheid vs. Kwaliteit Afwegingen
Deel 3: Hoe We 273 Unit Tests In 3 Dagen Hebben Gemaakt Zonder Een Regel Code Te Schrijven
Deel 4: AI Evaluatie Framework — Hoe We Een Systeem Hebben Gebouwd Om AI-GeGenereerde Bedrijfsplannen Te Beoordelen En Verbeteren