Od 5% do 96% pokritosti testov v dnevu — Zahvaljujoč AI CoPilot...
Ko sem začel s tem projektom in je bila še vedno majhna kodna baza, sem vedel, da bo unit testiranje pomembno, vendar sem ga kot mnogi razvijalci odložil na stran po izgradnji prvega niza testov v korist izgradnje glavne funkcionalnosti. Moj glavni cilj v začetnih fazah je bil zagnati middleware logiko — srce aplikacije — in oživiti Minimalni Življenjski Produkt (MVP). To je pomenilo izpustiti velik del pokritosti testov v imenu napredka.
Ko je MVP deloval, sem pozornost usmeril nazaj k testiranju. Ko sem pogledal projekt, sem ocenil vsaj teden ali dva pisanja testov, odvisno od zapletenosti vsake komponente. Nekateri bi bili preprosti. Drugi — še posebej tam, kjer so bili vključeni robni primeri ali zapletena logika vejitev — bi bili precej bolj zahtevni glede časa.
V tej točki sem se obrnil k AI. Uporabljal sem "CoPilot" za pomoč pri pisanju kode in mislil sem, da bi mi lahko pomagal tudi pri testih.
Sprva sem prosil AI, da "napiše unit teste" brez kakršnega koli pravega konteksta ali omejitev. Rezultat? Zmešnjava. Testi niso delovali, delali so napačne predpostavke o kodi, in celotno podjetje se je spremenilo v cikel pokvarjene testne kode in razočarajočih prepisov. AI je ustvaril veliko kode — vendar ne takšne vrste, ki bi jo lahko uporabil brez resne refaktorizacije.
Preboj je prišel, ko sem spremenil svoj pristop. Namesto da bi se do AI obnašal kot do čarovnika, sem ga začel uporabljati bolj kot mlajšega razvijalca. Dal sem mu eno datoteko naenkrat, razložil namen kode in mu rekel, naj se osredotoči na pisanje natančnih, funkcionalnih testov samo za to datoteko.
To je spremenilo vse.
Nenadoma so testi postali lažji za implementacijo AI. Bili so pravilno omejeni, usklajeni z dejansko logiko in niso zahtevali ur razhroščevanja. Moj AI je šel skozi datoteko za datoteko, pisal in zagnal teste.
V manj kot dnevu je pokritost testov skočila s 5% na več kot 96%.
Testi, ki bi vzeli dneve za pisanje, so bili končani v urah, in duševni mir, ki pride z skoraj popolno pokritostjo testov? Neprecenljiv.
Šel sem od ene Test Suite in 5 testov do:
Ne glede na to, ali zaženjate nov projekt ali poskušate dodati teste v starejšega, AI lahko predstavlja ogromno prihranek časa — če ga uporabite pravilno.
Uporabljate AI za pisanje testov v vaših projektih? Kakšne so vaše izkušnje?