Přejít k hlavnímu obsahu

Testovací agent Microsoftu řeší důvěru v AI kód: o 63 % méně selhání

AI agenti a autonomní systémy
Každý druhý vývojář dnes nasazuje AI kód bez testování. Microsoft na to reaguje novým open-source agentem code-testing-generator, který v benchmarcích snížil selhání o 63 procent oproti běžnému GitHub Copilotu. Nejdůležitější zjištění? Nepíše víc testů — píše testy, které skutečně odhalí chybu. A je zdarma.

Problém, který zná každý vývojář

AI asistenti jako GitHub Copilot dnes chrlí kód rychleji, než ho kdo stíhá kontrolovat. Podle průzkumů, na které odkazuje DevOps.com, se průměrná důvěra vývojářů v AI generovaný kód pohybuje jen lehce nad polovinou pětibodové škály. A co je horší — více než polovina vývojářů přiznává, že AI kód nasazuje do produkce bez jediného testu.

Čísla o pokrytí kódu (code coverage) často vypadají na papíře dobře, jenže pod pokličkou bývají dutá: test zkontroluje, že výsledek není null, a tím končí. To je falešný pocit bezpečí, který v éře AI generovaného kódu nabírá na síle.

Co dělá code-testing-generator jinak

Microsoft na tuto mezeru odpovídá specializovaným agentem, který je součástí dotnet-test pluginu v repozitáři dotnet/skills (přes 5 000 hvězdiček na GitHubu). Na rozdíl od holého promptu „vygeneruj testy" prochází celým výzkumně-ověřovacím procesem:

  1. Průzkum repozitáře — detekuje jazyk, testovací framework, studuje existující testy a jejich konvence. Zjistí, jak repozitář testy spouští a jestli nové testy vůbec najde CI/CD pipeline.
  2. Škálování podle rozsahu — na jednu metodu stačí přímý průchod. Na celý modul plánuje iterativně, dokud nedosáhne cílového pokrytí.
  3. Psaní a ověřování za běhu — testy píše od jednoduchých částí kódu ke složitějším. Pokud se něco nezkompiluje, opraví to. Pokud aserce nesedí, čte zdrojový kód a opraví test.
  4. Kontrola užitečnosti testů — tady přichází klíčová inovace. Agent spouští lehkou formu mutačního testování: záměrně zavádí drobné změny do kódu a ověřuje, jestli testy selžou tak, jak mají. Kontroluje slabé aserce, potvrzuje, že každý požadovaný scénář má odpovídající test, a nakonec spustí celou testovací sadu.

Poslední bod je zásadní. Tichý zabiják — test, který se sice zkompiluje a projde lokálně, ale nikdy neběží v CI, protože ho nikdo nezapojil do solution — je přesně to, co agent předem detekuje a řeší.

Čísla, která stojí za pozornost

Microsoft agenta otestoval na 152 úlohách z reálných repozitářů proti běžnému GitHub Copilotu se stejným modelem. Výsledky z oficiálního blogu .NET týmu:

Metrika Specializovaný agent Běžný Copilot
Úspěšně dokončené úlohy 140/152 (92,1 %) 120/152 (78,9 %)
Vágní prompty (89 úloh) 79 (88,8 %) 59 (66,3 %)
Detailní prompty (63 úloh) 61 (96,8 %) 61 (96,8 %)
Prompty na konkrétní diff (15 úloh) 15/15 (100 %) 0/15 (0 %)
Průměrný čas na úlohu 359 sekund 380 sekund
Vygenerovaných testů 6 963 7 129

Klíčové zjištění: agent vygeneroval o 2,3 % méně testů, přitom dosáhl prakticky stejného pokrytí řádků (72,4 % vs. 72,2 %) i větví (49,8 % vs. 49,1 %). Rozdíl není v kvantitě, ale ve spolehlivosti na první pokus.

Největší přínos se ukázal u vágních promptů, tedy přesně u situací, kdy vývojář prostě napíše „vygeneruj testy" a nechá veškeré rozhodování na agentovi. Tam Microsoft zaznamenal pokles selhání o 67 procent. U promptů navázaných na konkrétní změnu kódu (diff) agent splnil všech 15 úloh, zatímco běžný Copilot ani jednu.

Výhoda napříč modely i jazyky

Microsoft testoval agenta s různými modely — Claude Opus 4.8, GPT-5.5 a Claude Haiku 4.5 — a workflow pomohl všem. Největší snížení selhání zaznamenal u Claude Opus 4.8 (o 80 % na C# úlohách). Specializovaný GPT-5.5 se v celkovém benchmarku dostal na 90,1 %, tedy těsně pod Opus a o více než 11 procentních bodů nad běžného Copilota s Opusem.

Agent podporuje dvanáct jazyků: .NET/C#, Python, TypeScript/JavaScript, Java, Go, Ruby, Rust, Swift, Kotlin, PowerShell a C++. V Pythonu více než zdvojnásobil úspěšnost (86,7 % vs. 40,0 %), v Go splnil všech 15 úloh.

Co to znamená pro české vývojáře

Agent je zcela zdarma a open-source pod MIT licencí. Instaluje se přes příkazový řádek GitHub Copilotu:

/plugin marketplace add dotnet/skills
/plugin install dotnet-test@dotnet-agent-skills

Je dostupný také v Visual Studio Code a VS Code Insiders (funkce pluginů je zatím v preview). Podpora pro Visual Studio je na cestě.

Pro české firmy, které investují do GitHub Copilotu (individuální licence cca 250 Kč/měsíc, firemní 19 USD/uživatel/měsíc), přináší tento agent konkrétní benefit bez dalších nákladů. V kontextu EU AI Actu, který vyžaduje adekvátní testování vysoce rizikových AI systémů, jde o praktický nástroj, který pomáhá naplnit regulatorní požadavky na kvalitu softwaru — i když samotný agent nespadá do kategorie vysoce rizikových AI systémů, protože funguje jako vývojářský nástroj, nikoliv autonomní rozhodovací systém.

Není to všelék, ale metoda

Mitch Ashley z The Futurum Group pro DevOps.com trefně poznamenal: „Čísla o pokrytí kódu týmům lžou už roky. AI generovaný kód tu lež jen zvětšil." Podle něj není hlavním příběhem model, ale metoda — ověření, že test selže, když se kód rozbije, je důležitější než samotné procento pokrytí.

Na náročnějším benchmarku SWE Atlas, který kontroluje, zda testy skutečně odhalí injektované chyby, dosáhl agent 36,4 % oproti 27,3 % u běžného Copilotu. To je sice stále nízké číslo, ale ukazuje směr, kterým se testování AI kódu musí ubírat.

Agent aktuálně zvládá pouze jednotkové testy. Integrační, end-to-end a výkonnostní testy jsou mimo jeho současný záběr. Microsoft ale naznačuje, že zkoumá rozšíření stejného přístupu i na další typy testování.

Je code-testing-generator od Microsoftu opravdu zdarma?

Ano, je open-source pod MIT licencí v repozitáři dotnet/skills na GitHubu. Potřebujete ale licenci GitHub Copilot (od 10 USD/měsíc pro jednotlivce), protože agent běží jako plugin uvnitř Copilot ekosystému.

Funguje agent i mimo .NET ekosystém?

Ano, přestože vznikl v .NET týmu, je polyglotní. Podporuje Python, JavaScript, TypeScript, Java, Go, Ruby, Rust, Swift, Kotlin, PowerShell i C++. Pro každý jazyk se učí konvence přímo z daného repozitáře.

Jak spolehlivé je mutační testování, které agent používá?

Jde o odlehčenou formu mutačního testování — agent záměrně zavádí malé změny do kódu a ověřuje, že existující testy selžou. Nenahrazuje plnohodnotné mutační testovací frameworky jako Stryker, ale poskytuje rychlou zpětnou vazbu během generování. Na benchmarku SWE Atlas, který měří schopnost testů odhalit reálné chyby, dosáhl 36,4% úspěšnosti — což je o devět bodů více než běžný Copilot, ale pořád je co zlepšovat.

Diskuze

Zatím žádné komentáře — buďte první, kdo se podělí o svůj názor.
X

Nezmeškejte novinky!

Přihlaste se k odběru novinek a aktualit.