Przejdź do głównej zawartości

Weryfikacja kodu pisanego przez agentów polega na zbudowaniu sprawdzeń na tyle silnych, że zielonemu przebiegowi można zaufać bez czytania każdej linii przez człowieka.

Agent otwiera pull request: 600 zmienionych linii i 40 nowych testów, wszystko na zielono. Przeczytanie całości zajmie popołudnie; scalenie po zielonym checku CI to zaufanie testom napisanym przez agenta, który miał sprawić, żeby przeszły. Ta sekcja jest dla developerów i tech leadów, którzy chcą trzeciej drogi: sprawić, żeby sprawdzeniom dało się ufać, a potem oceniać dowody zamiast diffu.

Czytaj od góry: mocny zestaw testów, który agent może edytować, niczego nie dowodzi.

Twoje pytanieStronaDlaczego właśnie tutaj
Czy te testy w ogóle łapią błędy?Siła wyroczniPoprzeczka, na której opiera się reszta.
Czy agent może zmienić testy, żeby przeszły?Ochrona wyroczniTrzyma decydujące sprawdzenia poza zasięgiem agenta.
Jakie testy agent ma pisać na każdej warstwie?Jednostkowe, integracyjne, API, end-to-endTesty z kryteriów akceptacji, a nie z kodu.
Czy działa uruchomiona aplikacja, a nie tylko kod?Weryfikacja w przeglądarce przez agentaZrzuty ekranu i ślady jako dowód.
Czy sam agent działa tak samo po zmianie modelu albo promptu?Ciągłe ewaluacjeTesty regresyjne harnessu agenta uruchamiane w CI.
Co z zachowaniem, którego nie da się uchwycić przykładami?Testy właściwości, ocena przez modelNiezmienniki, których agent nie obejdzie, i sędziowie oceniający teksty i wygląd według rubryki.
Działa, ale czy zostanie utrzymywalne i bezpieczne?Funkcje dopasowania, wykrywanie slopu, kontrola zależności, bramki jakościBramki jakości na erozję, kod wiarygodny, ale błędny, i zmyślone pakiety.
Kod nie ma jeszcze testów.Testy charakteryzacyjneUtrwal dzisiejsze zachowanie, zanim agent zacznie refaktoryzować.
Czy potrzebuję specjalistycznej bramki jakości?Dostępność, wydajność, bezpieczeństwo, wstrzykiwanie błędów, aplikacje mobilne, dane testoweDodaj, gdy wymaga tego produkt.

Wybierz moduł, który agent zmienia najczęściej. Pierwszy prompt mierzy, co łapią jego testy, i niczego nie zmienia.

Jeśli narzędzie mutacyjne nie jest skonfigurowane, instalacja to npm i -D @stryker-mutator/core (Stryker 10.0.0), pip install mutmut (mutmut 3.8.0) albo cargo install cargo-mutants (cargo-mutants 27.1.0); konfigurację opisuje strona siła wyroczni.

Drugi prompt pisze czerwone testy na podstawie wykonywalnych kryteriów akceptacji przed implementacją.

Zapisz pierwszy prompt jako prompts/oracle-audit.md; polecenia bez interakcji poniżej czytają go z tego pliku. Prompty są takie same w każdym narzędziu; różni się sposób ich uruchamiania.

Wklej prompt do interaktywnej sesji claude albo uruchom go bez interakcji. claude -p startuje w trybie uprawnień Manual (od v2.1.285 w trybie auto u zewnętrznych dostawców lub z wyłączoną telemetrią, gdzie decyduje klasyfikator), więc dodaj --permission-mode dontAsk, żeby u każdego dostawcy odrzucać wywołania Bash, o które nie może zapytać, i jawnie zezwól na polecenia testów i mutacji (tu dla projektu JS/TS): claude -p "$(cat prompts/oracle-audit.md)" --permission-mode dontAsk --allowedTools "Bash(npx stryker *)" "Bash(npm test *)" (flagi: 2.1.283; zmiana z v2.1.285: changelog Claude Code, sprawdzone 2026-10-12). Przy prompcie z czerwonymi testami, który zapisuje pliki, przekaż zamiast tego --permission-mode acceptEdits. Żeby agent nie edytował testów przy drugim prompcie, dodaj reguły deny dla ścieżek testowych, jak na stronie ochrona wyroczni. Szczegóły konfiguracji w tym narzędziu: testowanie z Claude Code.

Skąd wiesz, że testom można ufać, skoro ich nie czytasz?

Dział zatytułowany „Skąd wiesz, że testom można ufać, skoro ich nie czytasz?”

Cztery sygnały zastępują czytanie każdego testu.

SygnałWystarczy, gdyKto odpowiada
Wynik mutacyjny na zmienionym kodziePrzeżyte mutanty są wypisane, a każdy jest zabity albo wyjaśnionyDeveloper, który uruchamia agenta
Mapa kryterium → testKażde kryterium akceptacji ma test z zapisanym czerwonym przebiegiemDeveloper; recenzent sprawdza wyrywkowo
Ochrona wyroczniZmiana testów i konfiguracji CI wymaga zgody właściciela koduTech lead
Odsetek niestabilnych testówNiestabilne testy trafiają do kwarantanny, a nie są ponawiane do skutkuTech lead

Te sygnały trafiają do pull requesta jako pakiet dowodów, a recenzent zatwierdza pakiet. Uzasadnienie takiego sposobu pracy znajdziesz w tekście czytanie dowodów zamiast kodu.

Zestaw jest zielony, a błędy i tak trafiają na produkcję. Testy sprawdzają szczegóły implementacji albo mocki. Jak naprawić: uruchom prompt audytowy, a potem każ agentowi zabić każdego przeżytego mutanta asercją na zachowaniu.

Agent poluzował test, żeby przeszedł. W ramach „poprawki” toBe(19.99) zmieniło się w toBeCloseTo(20, 0). Jak naprawić: cofnij zmianę w teście i schowaj ścieżki testowe za regułami deny i CODEOWNERS.

Próg pokrycia stał się celem samym w sobie. Agenci goniący za procentem pokrycia dopisują testy wykonujące linie bez sprawdzania ich. Jak naprawić: zastąp próg pokrycia mapą kryterium → test i wynikiem mutacyjnym na zmienionym kodzie.

Po serii wygenerowanych testów zestaw zwolnił i stał się niestabilny. Jak naprawić: usuń testy, które nie zabijają żadnego mutanta pominiętego przez resztę zestawu, i przenieś do kwarantanny każdy test, którego wynik zmienia się między identycznymi przebiegami.