Testowanie z AI w praktyce. Modele, narzędzia i podejścia

Testowanie z AI w praktyce. Modele, narzędzia i podejścia
Nie wszystkie narzędzia AI sprawdzają się tak samo w testowaniu. Jedne dobrze radzą sobie z prostymi przypadkami, inne potrafią analizować cały kod i samodzielnie uruchamiać testy. Rodzi się jednak pytanie, które modele i narzędzia faktycznie warto włączyć do procesu testowania?

Dlaczego testerzy sięgają po AI?

Pisanie przypadków testowych, zwłaszcza dla dużych i złożonych systemów, od dawna uchodzi za pracę czasochłonną i mało wdzięczną. Każdy, kto choć raz musiał przygotować kilkaset scenariuszy dla rozbudowanego API wie, że to zadanie potrafi pochłonąć tygodnie. Dlatego coraz częściej testerzy sięgają po sztuczną inteligencję, chcąc realnie przyspieszyć i uporządkować cały ten proces.

Problem w tym, że na rynku mamy dziś wiele modeli i narzędzi - od ChatGPT i Claude’a, po bardziej wyspecjalizowane rozwiązania takie jak Cursor czy Windsurf. Każde z nich działa inaczej i sprawdza się w innych sytuacjach. Warto więc wiedzieć, czego można od nich oczekiwać, a co pozostaje wciąż poza ich zasięgiem. 

Samodzielne modele

Najprostszym sposobem na wykorzystanie AI w testowaniu jest sięgnięcie po popularne modele językowe, np. ChatGPT (OpenAI) czy Claude (Anthropic) lub Gemini (Google). Testerzy używają ich do pisania podstawowych przypadków testowych na podstawie kodu i dokumentacji, generowania danych testowych, czy proponowania scenariuszy pozytywnych i negatywnych.

Ich największa zaleta to łatwa dostępność. Wystarczy kilka promptów, by otrzymać pierwsze wyniki. Niestety, to także ich słabość, bo modele działają jak zewnętrzny konsultant, który nie zna całego kontekstu projektu. Gdy system jest rozbudowany, a logika jest ukryta w wielu plikach, ChatGPT/Claude/Gemini mają trudności z zachowaniem spójności i często popadają w uproszczenia. 

Warto ich użyć na początku pracy, by zebrać inspiracje, przy małych projektach albo prototypach lub do szybkiego generowania przykładowych testów.

Nie wystarczą one jednak przy dużych repozytoriach, gdy potrzebna jest dokładna analiza zależności między modułami oraz kiedy wymagane jest kompleksowe mockowanie danych i usług. 

Narzędzia z dostępem do kodu

Znacznie większe możliwości dają narzędzia zintegrowane z repozytorium kodu, takie jak Cursor czy Windsurf. To edytory i środowiska deweloperskie wyposażone w AI, które rozumie nie tylko pojedyncze pliki, ale też strukturę całego projektu.

Dzięki temu potrafią:

  • analizować zależności pomiędzy modułami, 
  • samodzielnie lokalizować pliki powiązane z API, 
  • proponować testy uwzględniające realne dane i interakcje, 
  • a nawet uruchamiać testy i diagnozować błędy. 

Przykład? Jeśli poprosisz ChatGPT o wygenerowanie testów dla endpointu /login, dostaniesz kilka ogólnych propozycji. Cursor czy Windsurf sprawdzą dodatkowo, jak działa kontroler, jakie dane przechodzą przez warstwę bazy i jakie są zależności między tymi usługami. W efekcie dostajemy testy znacznie bliższe rzeczywistości, a nie samą teorię. 

W rzeczywistości przekłada się to na nawet kilkukrotnie większą wydajność. W miejscach, w których samodzielny model dawał nam kilka przypadków dziennie, narzędzia z dostępem do repo potrafią wygenerować ich nawet kilkadziesiąt.

Prompt engineering

Bez względu na używane narzędzie, jakość wyników w dużej mierze zależy od tego, jak formułujemy polecenia. Testerzy szybko przekonują się, że nie wystarczy napisać „napisz testy dla modułu użytkownika”. Dużo skuteczniej działa precyzyjna instrukcja: „wygeneruj testy jednostkowe dla endpointu /login z pliku controllers/v1/user.js. Skorzystaj z danych przygotowanych w MockDataFactory. Uwzględnij scenariusze błędne (np. niepoprawne hasło, nieaktywne konto).”

Dobrze skonstruowany prompt eliminuje przypadkowość i pozwala AI skupić się na właściwym fragmencie kodu. To oznacza mniej poprawek i krótszy czas pracy. 

Chain of Thought

Nowym podejściem, które mocno poprawia jakość generowanych testów, jest tzw. Chain of Thought (CoT). Polega on na rozbijaniu dużego zadania na serię mniejszych kroków. Zamiast pisać: „Wygeneruj testy dla modułu X”, lepiej poprowadzić model etapami:

  1. Zidentyfikuj metody eksportowane w module.
  2. Wskaż dane wejściowe i zależności.
  3. Zaproponuj dane testowe.
  4. Stwórz testy dla ścieżek poprawnych. 
  5. Dodaj testy dla scenariuszy błędnych. 
  6. Uruchom testy i popraw błędy. 

Jeśli poprowadzimy AI w taki sposób, nie tylko zwiększymy trafność wyników, ale też ograniczymy tzw. halucynacje, a dodatkowo będziemy mieć większą kontrolę nad całym procesem. 

Zarządzanie promptami

Kiedy w projekcie pojawiają się dziesiątki API i setki testów, problemem staje się zarządzanie promptami. Ręczne poprawianie instrukcji i zmiennych w wielu miejscach prowadzi do chaosu i błędów. 

Dlatego coraz częściej zespoły budują swoje własne narzędzia do obsługi promptów. Są to dość proste interfejsy, które pozwalają wersjonować i przechowywać prompty w repozytorium, łatwo podmieniać zmienne (np. nazwy endpointów) i kopiować poszczególne kroki Chain of Thought. To rozwiązanie nie jest co prawda spektakularne, ale w codziennej pracy wyeliminuje sporo frustracji i pozwoli realnie skalować cały proces. 

AI nie zastąpi naszej wiedzy o systemie, znajomości architektury ani krytycznego myślenia testera, ale jeśli użyjemy go mądrze, może kilkukrotnie przyspieszyć naszą pracę, a czasem także poprawić jakość testów, wskazując scenariusze, o których sami byśmy nie pomyśleli. 

W takim przypadku, jeśli mielibyśmy wskazać najbardziej praktyczne podejście, będzie nim korzystanie np. z ChatGPT/Claude/Gemini do szybkich eksperymentów i prostych przypadków, używanie Cursora i Windsurfa do pracy złożonej i wymagającej kontekstu, stosowanie Chain of Thought i dobrze przygotowanych promptów i wprowadzenie narzędzi porządkujących procesy (np. systemów do zarządzania promptami).

Wykorzystanie AI w testowaniu

Chcesz dowiedzieć się więcej o tym, jak skorzystać ze sztucznej inteligencji w procesie zapewnienia jakości? Zajrzyj na nasze szkolenie Wykorzystanie AI w testach manualnych

Na najbliższe warsztaty weekendowe zapraszamy już 18-19 października 2025. 

>> zapisz się <<

To powinno Cię zainteresować