Mentionsy Mentionsy
AI pod CTRL-ą
AI pod CTRL-ą

Gdy algorytmy szukają błędów. Search-Based Software Testing spotyka LLM

13.11.2026 ·18 min 11 s · 7 rozdziałów

W 24. odcinku podcastu i audycji radiowej „AI pod CTRL-ą” Paulina Cecko i Michał Sierlecki zabierają słuchaczy na kieleckie spotkanie społeczności AI@Kielce, które odbyło się 21 października 2026 roku przy ul. Sienkiewicza 25 w Kielcach. Gościem specjalnym odcinka jest Bernard van der Esch – ekspert backendu (PHP, Symfony, Python), inżynier automatyzacji AI oraz członek zespołu Open Mercato w Fast White Cat SA. W audycji prześwietlamy rewolucyjny paradygmat w inżynierii oprogramowania: połączenie Search-Based Software Testing (SBST) z dużymi modelami językowymi (LLM). Dowiemy się, dlaczego proste polecenie „napisz mi test” leads jedynie do bezmyślnego generowania wtórnego kodu pod tzw. „zielony pasek”, a traktowanie generowania testów jako problemu optymalizacyjnego i przeszukiwania przestrzeni stanów pozwala odnaleźć najgroźniejsze błędy krawędziowe.

3:38 · Prelegacja Bernarda van der Escha 2

Aby w pełni zrozumieć tematykę dzisiejszego odcinka, wyjaśnię kluczowe pojęcia z zakresu automatycznego testowania oprogramowania oraz modeli językowych. Search-Based Software Testing testowanie oprogramowania oparte na przeszukiwaniu. Metoda inżynierii oprogramowania, której korzenie sięgają lat 70. XX wieku. Przekształca ona proces tworzenia testów w matematyczny problem optymalizacyjny. Zamiast ręcznie pisać przypadki testowe, algorytmy ewolucyjne i genetyczne automatycznie przeszukują ogromną przestrzeń możliwych danych wejściowych, dążąc do wykrycia sytuacji awaryjnych lub maksymalizacji pokrycia struktury kodu. Synergia SBST plus LLM.

Klasyczne algorytmy SBST miały trudność z przechodzeniem przez głęboko zagnieżdżone, skomplikowane warunki biznesowe w kodzie. Z kolei duże modele językowe posiadają głębokie zrozumienie semantyki kodu, lecz generują testy w sposób przewidywalny i podatny na wtórność oraz halucynacje. Połączenie SBST z LLM umożliwia wykorzystanie modelu językowego jako inteligentnego przewodnika, który generuje semantycznie poprawne testy, podczas gdy algorytm SBST steruje poszukiwaniem najmniej oczywistych przypadków brzegowych. Problem wyroczni testowej. Test Oracle Problem. Tradycyjne wyzwanie w automatyzacji testów, polegające na trudności w automatycznym i jednoznacznym określeniu, czy odpowiedź lub wynik zwracany przez system, zwłaszcza nieterminowy lub niedeterministyczny system oparty na AI, jest poprawny czy stanowi błąd.

6:41 · Zakłócenia w testowaniu przez AI 1

Zacznijmy od odczarowania rzeczywistości, w której wielu programistów żyje od czasu premiery chat GPT. Wystarczy wpisać proste polecenie, np. napisz mi testy unitowe do tej klasy. Model wypluwa kilkadziesiąt linii kodu, odpalamy komendę, widzimy piękny zielony pasek w konsoli i czujemy się bezpiecznie. Ty w swojej prelekcji na spotkaniu AI małpa Kielce postawiłeś bardzo mocną tezę, że musimy jak najszybciej przestać ufać testom napisanym przez AI pod tzw. zielony pasek. Dlaczego z zewnątrz wygląda to świetnie, a w rzeczywistości bywa pułapką? I w ogóle czym jest Search-Based Software Testing, czyli SBST, jak to szumnie brzmi? W skrócie, Search-Based Software Testing polega na takim generowaniu testów.

8:43 · Architektura systemów i testowalność 1

I dzisiaj jest to wąskim gadłem często przy A jakie konkretnie wzorce architektoniczne, praktyki projektowe w systemach backendowych, np. przy użyciu frameworka Symfony, zwiększają testowalność algorytmiczną ułatwiającą agentom AI, a także algorytmom SPST skuteczną eksplorację przestrzeni, stanów i odnajdywanie ukrytych defektów? Nie no, tutaj się nic nie zmieniło tak naprawdę. To, co było dobrym wzorcem w czasach, gdy tworzyliśmy kod zupełnie ręcznie, jest dobrym wzorcem dzisiaj i to, że Nasze klasy w kodzie mają pojedynczą odpowiedzialność, zasada open-close. Właśnie wszystkie inne, które dotychczas stosowaliśmy, jak najbardziej mają zastosowanie.

Pokazano wszystkie 4 dopasowania. Transkrypcja generowana automatycznie i niesprawdzana ręcznie — może zawierać błędy.