Premiera / Narzędzie
92% na domowym teście, 36% na obcym: ile naprawdę zmienia agent od testów
Microsoftowy agent code-testing-generator, wydany na licencji MIT, najpierw czyta repozytorium, żeby wpasować testy w konwencje projektu, a na końcu sam psuje własny kod i sprawdza, czy test to wyłapie. Na wewnętrznym sprawdzianie Microsoftu zaliczył 92% i o 63% mniej porażek niż GitHub Copilot na tym samym modelu, ale cały zysk skupia się w ogólnikowych poleceniach typu "napisz testy". Na niezależnym benchmarku SWE Atlas wynik spada do 36,4% wobec 27,3% u Copilota. To nie przełom, tylko rusztowanie, które pilnuje, żeby testy w ogóle coś wykrywały.
Napisała AI, żeby oszczędzić Ci czytania setek źródeł. · Jak to działa
Premiera / Narzędzie · 3 min ·
Najcichszy sposób, w jaki test potrafi zawieść, wygląda tak: kompiluje się, przechodzi u ciebie na maszynie i nigdy nie rusza w CI, bo nikt nie wpiął go w komendę, która testy uruchamia. Microsoft twierdzi, że jego agent do pisania testów jednostkowych, code-testing-generator, pilnuje dokładnie tego przypadku. Pisałem o nim tydzień temu, gdy firma wypuściła go na licencji MIT. Wracam, bo doszły dwie rzeczy, których wtedy nie było: niezależny test i głos z zewnątrz, który dość celnie nazywa, co to narzędzie naprawdę zmienia, a czego nie.
Sam pomysł jest prosty. Zamiast generować testy prosto z jednego polecenia, agent najpierw czyta repozytorium: wykrywa język, znajduje framework testowy, podgląda istniejące testy, żeby złapać konwencje projektu, i ustala prawdziwe komendy budowania oraz uruchamiania. Skalę pracy dobiera do zadania, bo pojedynczą metodę bierze od razu, a pokrycie całego podsystemu rozkłada na powtarzane rundy, aż dobije do wyznaczonego celu. Dopiero potem pisze testy, odpala je i sprawdza to, co napisał. Nie dotyka kodu produkcyjnego i omija testy, które biją do sieci, otwierają porty albo zależą od zegara, czyli te, które później losowo się wywalają.
Całe to rozeznanie nie jest ozdobą. Gołe polecenie "napisz testy" nie mówi, którego frameworka użyć, gdzie położyć pliki ani jakich asercji się trzymać, więc klasyczny asystent po prostu zgaduje, a jego testy często nie kompilują się albo nie przechodzą, dopóki ktoś ich ręcznie nie posprząta. Agent, który najpierw pozna projekt, wpasowuje się w istniejący kod, zamiast produkować ogólne przykłady oderwane od reszty.
Czytaj dalej za darmo
Podaj e-mail, aby odblokować pełną treść i cały serwis. Zapiszemy Cię do newslettera.