5%-ról 96%-ra teszt lefedettség egy nap alatt — AI CoPilot-nak köszönhetően...
Amikor elkezdtem ezt a projektet és még mindig egy kis kódbázis volt, tudtam, hogy az egységtesztelés fontos lesz, de mint sok fejlesztő, félretettem a első tesztkészlet felépítése után a fő funkcionalitás építése mellett. A fő célom a korai szakaszokban az volt, hogy a middleware logikát működésre bírjam — az alkalmazás szíve — és életre keltsem a Minimum Viable Product (MVP) terméket. Ez azt jelentette, hogy a tesztlefedettség nagy részét kihagytam a haladás érdekében.
Amint az MVP működött, visszafordítottam a figyelmemet a tesztelésre. A projektet nézve legalább egy vagy két hét tesztírást becsültem, attól függően, hogy mennyire összetett az egyes komponensek. Néhány egyszerű lett volna. Mások — különösen ott, ahol szélsőséges esetek vagy bonyolult elágazási logika volt érintett — sokkal időigényesebbek lettek volna.
Ezen a ponton az AI-hoz fordultam. A "CoPilot"-ot használtam a kódírás segítésére és arra gondoltam, hogy segíthet a tesztekkel is.
Kezdetben megkértem az AI-t, hogy "írjon egységteszteket" anélkül, hogy valós kontextust vagy korlátozásokat adtam volna. Az eredmény? Zűrzavar. A tesztek nem működtek, rossz feltételezéseket tettek a kódról, és az egész vállalkozás hibás teszt kód és frusztráló újraírások ciklusává vált. Az AI sok kódot generált — de nem olyan típust, amit komolyabb refaktorálás nélkül használhattam volna.
Az áttörés akkor jött, amikor megváltoztattam a megközelítésemet. Ahelyett, hogy varázslóként bántam volna az AI-val, elkezdtem inkább junior fejlesztőként használni. Egyszerre egy fájlt adtam neki, megmagyaráztam a kód szándékát és azt mondtam neki, hogy koncentráljon pontos, funkcionális tesztek írására csak arra a fájlra.
Ez mindent megváltoztatott.
Hirtelen a tesztek könnyebbé váltak az AI számára implementálni. Megfelelően korlátozottak voltak, a valós logikával összehangolva és nem igényeltek órákig tartó hibakeresést. Az AI-m fájlról fájlra haladt, teszteket írva és futtatva.
Kevesebb mint egy nap alatt a tesztlefedettség 5%-ról 96% fölé ugrott.
A tesztek, amelyek napokig tartottak volna megírni, órák alatt elkészültek, és a lelki békesség, amely a szinte teljes tesztlefedettséggel jár? Felbecsülhetetlen.
Egy Test Suite-ról és 5 tesztről eljutottam:
Akár új projektet indítasz, akár egy régebbihez próbálsz teszteket hozzáadni, az AI hatalmas időmegtakarítás lehet — ha helyesen használod.
Használsz AI-t tesztek írására a projektjeidben? Milyen a tapasztalatod?