Od 5% do 96% pokrivenosti testova u danu — Zahvaljujući AI CoPilot

Od 5% do 96% pokrivenosti testova u danu — Zahvaljujući AI CoPilot...

16 May 2025

5

min čitanja

AI inovacija

Adrian Sweeney

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.

Rani promašaji s AI

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.

Davanje smjera AI

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.

Rezultati

U manje od dana, pokrivenost testovima je skočila s 5% na preko 96%.

  • Naredbe: 96,72%
  • Grane: 95,67%
  • Funkcije: 92,1%
  • Linije: 96,87%

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:

  • 20 Test Suite-ova
  • 136 Prošlih testova

Što sam naučio

  • AI nije magija — ali je nevjerojatan asistent. Dajte mu kontekst, vodite ga, i dobit ćete odlične rezultate.
  • Fokus je bitan. Tražiti od AI da "testira sve" vodi u kaos. Tražiti od njega da testira ovu datoteku, ovu funkciju, ovaj slučaj — to radi.
  • Očekujte debugiranje — ali puno manje nego pisanje od nule. AI ponekad pravi greške, ali ukupni proces je puno brži nego rad sam.

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?

PrimeCRM

Povratak u Centar Znanja