Från 5% till 96% testtäckning på en dag — Tack vare AI CoPilot...
När jag startade detta projekt och det fortfarande var en liten kodbas visste jag att enhetstestning skulle vara viktigt, men som många utvecklare skjöt jag undan det efter att ha byggt den första testsviten till förmån för att bygga ut kärnfunktionaliteten. Mitt huvudmål tidigt var att få middleware-logiken att fungera — hjärtat i appen — och ge liv åt Minimum Viable Product (MVP). Det innebar att hoppa över en stor del av testtäckningen i framstegets namn.
När MVP:n fungerade vände jag uppmärksamheten tillbaka till testning. När jag tittade på projektet uppskattade jag minst en vecka eller två av att skriva tester, beroende på komplexiteten hos varje komponent. Vissa skulle vara enkla. Andra — särskilt där kantfall eller komplicerad förgreningslogik var inblandad — skulle vara mycket mer tidskrävande.
Vid den punkten vände jag mig till AI. Jag hade använt en "CoPilot" för att hjälpa till att skriva kod, och jag tänkte att den också kunde hjälpa till med tester.
Först bad jag AI:n att "skriva enhetstester" utan någon verklig kontext eller begränsningar. Resultatet? En röra. Testerna fungerade inte, de gjorde felaktiga antaganden om koden, och hela ansträngningen förvandlades till en loop av trasig testkod och frustrerande omskrivningar. AI:n genererade mycket kod — men inte den typ jag kunde använda utan seriös refaktorering.
Genombrottet kom när jag ändrade min approach. Istället för att behandla AI:n som en trollkarl började jag använda den mer som en junior-utvecklare. Jag gav den en fil i taget, förklarade kodens avsikt, och sa åt den att fokusera på att skriva korrekta, funktionella tester endast för den filen.
Det förändrade allt.
Plötsligt var testerna lättare för AI:n att implementera. De var korrekt avgränsade, i linje med den faktiska logiken, och krävde inte timmar av felsökning. Min AI arbetade sig igenom fil för fil, skrev och körde tester.
På mindre än en dag hoppade testtäckningen från 5% till över 96%.
Tester som skulle ha tagit dagar att skriva slutfördes på timmar, och sinnesfriden som kommer med nästan fullständig testtäckning? Ovärderlig.
Jag gick från en Testsvit och 5 tester till:
Oavsett om du startar ett nytt projekt eller försöker fylla i tester på ett äldre kan AI vara en enorm tidsbesparing — om du använder den väl.
Använder du AI för att skriva tester i dina projekt? Vad har din erfarenhet varit?