Generowani przez AI mutanci wspierający testowanie. Od Meta

Generowani przez AI mutanci wspierający testowanie. Od Meta
Testy mutacyjne nie są proste i są niestety zbyt rzadko stosowane podczas naszego codziennego testowania. Meta chce to zmienić przez implementację pracy naukowej o testowaniu mutacyjnym wspieranym przez LLM-a.

Przez lata jakość była zakładnikiem metryk pokrycia kodu. 90%? Świetnie! Tylko że ta liczba nie powie ci, czy twoja aplikacja faktycznie działa, kiedy użytkownik najbardziej jej potrzebuje. W praktyce nawet systemy z niemal pełnym pokryciem testami potrafią spektakularnie zawieść.

Meta dostrzegła ten paradoks i zaproponowała radykalną zmianę perspektywy. Zamiast pytać "ile kodu przetestowaliśmy?", ich nowe narzędzie ACH (Automated Compliance Hardening) pyta "jakie problemy chcemy wykryć?". To dość znacząca zmiana filozofii testowania - od ilościowej do jakościowej, od mechanicznej do intencjonalnej.

Co ważne, ACH pozwala inżynierom komunikować swoje obawy i wymagania w języku naturalnym. Nie wymaga precyzyjnych specyfikacji, akceptuje nawet niespójne czy niekompletne opisy. Przypomina to dialog z doświadczonym testerem, który potrafi wyciągnąć istotę problemu i przełożyć ją na konkretne scenariusze testowe. LLM pełni tu rolę partnera, który potrafi zinterpretować ludzkie intencje i przełożyć je na konkretne scenariusze testowe.

Testowanie mutacyjne + LLM

Sposób, w jaki ACH łączy testowanie mutacyjne z modelami językowymi, to krok milowy. Klasyczne testowanie mutacyjne losowo modyfikuje kod, by sprawdzić jego odporność. ACH idzie dalej, generując celowane mutacje, które odzwierciedlają realne zagrożenia. To jak porównanie przypadkowych crash-testów do symulowania konkretnego, rzeczywistego wypadku.

W praktyce oznacza to, że zamiast polegać na standardowych przypadkach testowych, system dynamicznie generuje nowe, dopasowane do kontekstu zagrożenia. Na przykład jeśli aplikacja obsługuje dane finansowe, ACH może celowo manipulować wartościami przelewów, by sprawdzić, czy algorytm walidacji je odrzuci. Jeśli mamy aplikację medyczną, system może zasymulować błędne jednostki dawkowania leków i sprawdzić, czy UI ostrzeże użytkownika.

llm-w-testowaniu.png

Jednym z większych problemów generatorów testów i danych testowych jest duży procent testów odrzucanych przez inżynierów. Wyniki dla opisanego narzędzia są obiecujące. Na 6 platformach 23 na 30 testów przeszło ludzką kontrolę jakości. 

llm-w-testowaniu-2.pngTo oczywiście początkowy etap prac, a czy zakończą się one powodzeniem przekonamy się wkrótce. 

Tester ery AI

Zmiana podejścia do testowania oznacza, że testerzy będą musieli się adaptować do rzeczywistości, w której umiejętność pisania kodu testowego nadal będzie ważna, ale ważniejsze stanie się precyzyjne formułowanie zagrożeń i wymagań. Tester przyszłości (tester 3.0?) będzie więc działał jak analityk ryzyka, czyli ktoś, kto nie tylko wykrywa błędy, ale przewiduje, gdzie mogą się pojawić.

Nowe pomysły narzędziowe raczej nie zastąpią testerów, ale znacznie zmienią ich rolę. Zamiast pisać testy, będą musieli myśleć jak prawnicy przewidujący słabe punkty kontraktu, hakerzy szukający dziur w systemie, czy eksperci ds. cyberbezpieczeństwa analizujący potencjalne wektory ataku.

ACH może być zapowiedzią nadchodzącej transformacji w testowaniu oprogramowania. W przyszłości nie będzie liczyło się, ile testów uruchomiłeś, ale czy były one rzeczywiście potrzebne. To oznacza, że testerzy nie mogą już tylko wykonywać testów; muszą wiedzieć, czego szukać, nawet jeśli jeszcze nie wiedzą dokładnie, gdzie to znajdą.

Źródła:
https://engineering.fb.com/2025/02/05/security/revolutionizing-software-testing-llm-powered-bug-catchers-meta-ach/
https://arxiv.org/pdf/2501.12862
https://www.infoq.com/news/2025/02/meta-ach-tool/

To powinno Cię zainteresować