No 5% līdz 96% testu pārklājums dienā — Pateicoties AI CoPilot...
Kad sāku šo projektu un tas joprojām bija maza koda bāze, es zināju, ka vienību testēšana būs svarīga, bet tāpat kā daudzi izstrādātāji, es to atliku malā pēc pirmā testu komplekta izveides galvenās funkcionalitātes veidošanas labā. Mans galvenais mērķis agrīnos posmos bija likt middleware loģikai darboties — lietotnes sirds — un atdzīvināt Minimāli Dzīvotspējīgo Produktu (MVP). Tas nozīmēja liela testu pārklājuma daļas izlaišanu progresa vārdā.
Tiklīdz MVP strādāja, es pavērsu uzmanību atpakaļ pie testēšanas. Skatoties uz projektu, es novērtēju vismaz nedēļu vai divas testu rakstīšanai, atkarībā no katras komponentes sarežģītības. Daži būtu vienkārši. Citi — īpaši tur, kur iesaistīti robežgadījumi vai sarežģīta sazarošanās loģika — būtu daudz laikietilpīgāki.
Šajā brīdī es pievērsos MI. Es izmantoju "CoPilot" palīdzībai koda rakstīšanā un domāju, ka tas varētu palīdzēt arī ar testiem.
Sākumā es lūdzu MI "uzrakstīt vienību testus" bez jebkāda reāla konteksta vai ierobežojumiem. Rezultāts? Haoss. Testi nestrādāja, tie veica nepareizus pieņēmumus par kodu, un viss pasākums pārvērtās salauztā testu koda un nomācošu pārrakstīšanu ciklā. MI ģenerēja daudz koda — bet ne to veidu, kuru es varētu izmantot bez nopietnas refaktorēšanas.
Caururums radās, kad es mainīju savu pieeju. Tā vietā, lai izturētos pret MI kā pret burvi, es sāku to izmantot vairāk kā jaunāko izstrādātāju. Es tam dodu pa vienam failam vienlaicīgi, izskaidroju koda nolūku un teicu koncentrēties uz precīzu, funkcionālu testu rakstīšanu tikai šim failam.
Tas mainīja visu.
Pēkšņi testi kļuva vieglāki MI īstenošanai. Tie bija pareizi ierobežoti, saskaņoti ar faktisko loģiku un neprasīja stundu skaitei ilgu atkļūdošanu. Mans MI strādāja cauri failam pēc faila, rakstot un palaižot testus.
Mazāk nekā dienā testu pārklājums palēcās no 5% līdz vairāk nekā 96%.
Testi, kas prasītu dienas rakstīšanai, tika pabeigti stundās, un garīgais miers, kas nāk ar gandrīz pilnīgu testu pārklājumu? Nenovērtējams.
Es pārgāju no viena Testu komplekta un 5 testiem uz:
Neatkarīgi no tā, vai jūs palaižat jaunu projektu vai mēģināt pievienot testus vecākam, MI var būt milzīga laika ietaupīšana — ja jūs to izmantojat pareizi.
Vai jūs izmantojat MI testu rakstīšanai savos projektos? Kāda ir jūsu pieredze?