Od 5% do 96% pokrycia testów w ciągu dnia — Dzięki AI CoPilot...
Kiedy zaczynałem ten projekt i był to nadal mała baza kodowa, wiedziałem, że testy jednostkowe będą ważne, ale jak wielu programistów, odłożyłem je na bok po zbudowaniu pierwszego zestawu testów na rzecz budowania głównej funkcjonalności. Moim głównym celem na początku było uruchomienie logiki middleware — centrum aplikacji — i ożywienie Minimum Viable Product (MVP). To oznaczało pominięcie dużej części pokrycia testów w imię postępu.
Gdy MVP działał, zwróciłem uwagę z powrotem na testowanie. Patrząc na projekt, oszacowałem co najmniej tydzień lub dwa pisania testów, w zależności od złożoności każdego komponentu. Niektóre byłyby proste. Inne — szczególnie tam, gdzie zaangażowane były przypadki brzegowe lub skomplikowana logika rozgałęzień — byłyby znacznie bardziej czasochłonne.
W tym momencie zwróciłem się do AI. Używałem "CoPilot" do pomocy w pisaniu kodu i pomyślałem, że może również pomóc w testach.
Na początku poprosiłem AI o "napisanie testów jednostkowych" bez rzeczywistego kontekstu czy ograniczeń. Wynik? Bałagan. Testy nie działały, robiły nieprawidłowe założenia o kodzie, a cały wysiłek przekształcił się w pętlę zepsutego kodu testowego i frustrujących przepisań. AI wygenerował dużo kodu — ale nie takiego, którego mógłbym użyć bez poważnej refaktoryzacji.
Przełom nastąpił, gdy zmieniłem podejście. Zamiast traktować AI jak maga, zacząłem używać go bardziej jak młodszego programistę. Dawałem mu jeden plik na raz, wyjaśniałem intencję kodu i mówiłem, żeby skupił się na pisaniu dokładnych, funkcjonalnych testów tylko dla tego pliku.
To zmieniło wszystko.
Nagle testy były łatwiejsze do implementacji dla AI. Były prawidłowo ograniczone, wyrównane z rzeczywistą logiką i nie wymagały godzin debugowania. Mój AI przepracował plik za plikiem, pisząc i uruchamiając testy.
W mniej niż dzień pokrycie testów skoczyło z 5% do ponad 96%.
Testy, które zajęłyby dni na napisanie, zostały ukończone w godziny, a spokój ducha, który pojawia się przy prawie pełnym pokryciu testów? Bezcenny.
Przeszedłem od jednego Zestawu Testów i 5 testów do:
Niezależnie od tego, czy rozpoczynasz nowy projekt, czy próbujesz wypełnić testy w starszym, AI może być ogromną oszczędnością czasu — jeśli używasz go dobrze.
Czy używasz AI do pisania testów w swoich projektach? Jakie są twoje doświadczenia?