← Všechny AI tipy

How well do agents use test/verification techniques?

Dan Luu nechal agenta 26× implementovat Zstd v Rustu s různými pokyny k testování (TDD, Lean, fuzzing, skilly…). Žádný pokyn nepřekonal „žádný pokyn“.

  • Článek
  • Vývoj

Účel

Dan Luu si položil otázku, kterou si klademe každý den, když do promptu nebo skillu píšeme „používej TDD“ nebo „napiš property-based testy“: pomůže agentovi, když mu řeknu, jak má testovat? Odpověď hledal empiricky. Stejné zadání (implementuj Zstd v Rustu) spustil v 26 promptových podmínkách a se 4 skilly, v průměru 80 běhů na podmínku a effort, s Codexem na GPT-5.6 Sol. Podmínky pokrývají formální metody (Lean 4, TLA+, Verus, Kani, Alloy, ACL2, Creusot, Spin, SMT solvery), property-based testování a fuzzing (Proptest, QuickCheck, Hegel, Hypothesis-like), procesy (TDD, mutační, diferenciální a metamorfické testování, „audit rizikových míst“) a jako kontrolu „Default“ bez pokynu a vtip „Make no mistakes“. Měřil se podíl běhů, které prošly 100 % skrytých testů, a cena.

Hlavní zjištění:

One thing we can see is that nothing really wildly outperforms. However, Default (no additional instructions) does well above average.

A ještě ostřeji:

Agents are really bad at testing and don't seem to understand how to test reasonably "by default".

Text pak podmínku po podmínce rozebírá, co agent doopravdy udělal: TDD zdvojnásobilo počet testů a zhoršilo výsledek, Verus prokázal smysluplnou vlastnost v 1 ze 160 běhů, „diferenciální testování“ v 135 ze 160 běhů něco připomínalo, ale bez druhé implementace bylo bezcenné, a velké tutoriálové skilly (Hegel, ECC, Trail of Bits) buď uškodily, nebo nepomohly a zdražily běh.

Zdroje