Od 5% do 96% pokrivenosti testova u danu — Zahvaljujući AI CoPilot...
Kada sam počeo ovaj projekt i još uvijek je bio mala baza koda, znao sam da će unit testiranje biti važno, ali kao mnogi developeri, odložio sam ga na stranu nakon izgradnje prvog seta testova u korist izgradnje glavne funkcionalnosti. Moj glavni cilj u ranim fazama bio je pokrenuti middleware logiku — srce aplikacije — i oživjeti Minimum Viable Product (MVP). To je značilo preskakanje velikog dijela pokrivenosti testovima u ime napretka.
Čim je MVP zaradio, okrenuo sam pažnju natrag na testiranje. Gledajući projekt, procijenio sam najmanje tjedan ili dva pisanja testova, ovisno o složenosti svake komponente. Neki bi bili jednostavni. Drugi — posebno tamo gdje su uključeni granični slučajevi ili složena logika grananja — bili bi puno vremenski zahtjevniji.
U ovoj točki okrenuo sam se AI. Koristio sam "CoPilot" za pomoć pri pisanju koda i mislio sam da bi mogao pomoći i s testovima.
U početku sam zamolio AI da "napiše unit testove" bez ikakvog stvarnog konteksta ili ograničenja. Rezultat? Nered. Testovi nisu radili, radili su pogrešne pretpostavke o kodu, i cijeli pothvat se pretvorio u ciklus pokvarenog testnog koda i frustrirajućih prepisa. AI je generirao puno koda — ali ne onaj tip koji bih mogao koristiti bez ozbiljnog refaktoriranja.
Proboj je došao kada sam promijenio svoj pristup. Umjesto postupanja s AI kao s čarobnjakom, počeo sam ga koristiti više kao junior developera. Davao sam mu jednu datoteku po jednu, objašnjavao namjeru koda i govorio mu da se fokusira na pisanje preciznih, funkcionalnih testova samo za tu datoteku.
To je promijenilo sve.
Odjednom su testovi postali lakši za AI implementaciju. Bili su ispravno ograničeni, usklađeni sa stvarnom logikom i nisu zahtijevali sate debugiranja. Moj AI je prošao kroz datoteku za datotekom, pišući i pokretajući testove.
U manje od dana, pokrivenost testovima je skočila s 5% na preko 96%.
Testovi koji bi trebali dane za pisanje bili su završeni u satima, a duševni mir koji dolazi s gotovo potpunom pokrivenosti testovima? Neprocjenjiv.
Prešao sam od jednog Test Suite-a i 5 testova na:
Bez obzira na to pokretate li novi projekt ili pokušavate dodati testove u stariji, AI može biti ogromna ušteda vremena — ako ga koristite ispravno.
Koristite li AI za pisanje testova u vašim projektima? Kakvo je vaše iskustvo?