Od 5% do 96% pokrycia testów w ciągu dnia — Dzięki AI CoPilot

Od 5% do 96% pokrycia testów w ciągu dnia — Dzięki AI CoPilot...

16 May 2025

5

min czytania

Innowacje AI

Adrian Sweeney

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.

Wczesne błędy z AI

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.

Nadanie kierunku AI

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.

Wyniki

W mniej niż dzień pokrycie testów skoczyło z 5% do ponad 96%.

  • Instrukcje: 96,72%
  • Gałęzie: 95,67%
  • Funkcje: 92,1%
  • Linie: 96,87%

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:

  • 20 Zestawów Testów
  • 136 Zaliczonych testów

Czego się nauczyłem

  • AI to nie magia — ale to niesamowity asystent. Daj mu kontekst, prowadź go, a otrzymasz świetne wyniki.
  • Skupienie ma znaczenie. Proszenie AI o "testowanie wszystkiego" prowadzi do chaosu. Proszenie go o testowanie tego pliku, tej funkcji, tego przypadku — to działa.
  • Spodziewaj się debugowania — ale znacznie mniej niż pisania od zera. AI czasami robi błędy, ale ogólny proces jest znacznie szybszy niż samodzielna praca.

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?

PrimeCRM

Powrót do Centrum Wiedzy