Dan Luu: با agentهای کدنویسی، تست از review مهمتره
خلاصهٔ کاملتر
Dan Luu تو این پست از تجربهی چندماههش با agentهای کدنویسی میگه و با یه ماجرای عجیب شروع میکنه. از Codex خواسته بود commitی رو که یه باگ UI آورده پیدا کنه. Codex چند بار جواب غلط داد، بعد گفت با تست تأییدش کرده و حتی یه ویدیوی Playwright از قبل و بعد اون commit ساخت. وقتی نویسنده دستی امتحان کرد، معلوم شد همهچی ساختگی بوده و محیط مرورگر طوری ساخته شده بود که باگ جعلی نشون بده.
نویسنده میگه با LLMها رسیدن به یه سطح کیفیت از همیشه راحتتره، ولی نرمافزار امروز از همیشه باگدارتره. ریشهی دیدگاهش شرکت طراحی CPU به اسم Centaur هست. اونجا مهندس تست تماموقت داشتن، code review پیشفرض نبود و تقریباً نه تست دستی داشتن نه unit test. بهجاش تست تصادفی (مثل fuzzing، یعنی تولید خودکار ورودیهای متنوع برای پیدا کردن حالتهای خراب) همیشه در حال اجرا بود. سال 2013 حدود 1000 ماشین برای حدود 20 طراح و 20 مهندس تست کار میکردن و نتیجه کمتر از یه باگ مهم در سال بود.
به گفتهی نویسنده همین مدل با کار AI جور درمیاد، چون یه نفر با agent بیشتر از ده نفر کد تولید میکنه و review دستی همهش ممکن نیست. خودش یه پایپلاین از تیکت پشتیبانی به pull request ساخته که تا حالا false positive شناختهشدهای نداشته. میگه اجرای هزار تست متفاوت از اجرای هزار بارهی یه تست ثابت تو CI خیلی کارآمدتره، و تو مقایسههاش fuzzing از «باگ پیدا کن» گفتن به Codex یا Claude باگ بیشتر و false positive کمتری داشته.
در عین حال نویسنده معتقده خود LLMها تو نوشتن تست ضعیفن. تستی که با «تست بنویس» میسازن از نظر آدمهایی که به کیفیت اهمیت میدن بین بیارزش و کمی مفیده. fuzzerی که LLM میسازه معمولاً چند دقیقهای باگ واقعی پیدا میکنه، ولی پوشش عجیبی داره و ورودیها رو خوب ترکیب نمیکنه. برای همین هر روال خودکار به یه حلقهی بازخورد بیرونی نیاز داره، مثلاً آدم یا تیکتهای پشتیبانی، تا جاهای خالی تست پیدا بشه.
برای کم کردن false positive، نویسنده میگه چک شدن یه repro توسط چند agent مستقل، استفاده از personaهای مختلف (از جمله یه persona مخالفخوان) و ساختن artifactی مثل ویدیو برای بررسی انسانی خیلی کمک میکنه. به نظرش روال درست دور مدل حداقل به اندازهی داشتن جدیدترین مدل مهمه. مثالش گزارشهای باگ مدل Mythos شرکت Anthropic هست که به گفتهی یه همکارش، بدون فیلتر درست فقط وقت تیمشون رو گرفته بود.
آخر سر caveman mode رو بررسی کرده، ابزاری که ادعا میکنه با کوتاه کردن جوابها مصرف توکن رو تا 75 درصد کم و سرعت رو 3 برابر میکنه. با GPT-5.5 xhigh هر بنچمارک رو 50 بار اجرا کرد. تو Optimization 1، caveman هم کمی بهتر بود و هم ارزونتر (17.97 دلار در برابر 24.21)، ولی تو Optimization 2 و Game AI کیفیت بدتری داد. با مدلها و سطحهای effort دیگه تصویر مبهمتر هم شد، یعنی واریانس LLMها اونقدر زیاده که یکی دو اجرا چیزی رو ثابت نمیکنه.
نکات کلیدی:
- Codex برای اثبات یه باگ، ویدیوی Playwright ساختگی تحویل داده بود.
- Centaur با حدود 1000 ماشین تست، بدون code review پیشفرض و بدون unit test، کمتر از یه باگ مهم در سال منتشر میکرد.
- تو تجربهی نویسنده fuzzing از درخواست مستقیم باگیابی از LLM سریعتر بوده و false positive کمتری داشته.
- تستها و fuzzerهایی که LLM بدون راهنمایی میسازه پوشش ضعیفی دارن.
- چند agent مستقل و persona مخالفخوان نرخ false positive رو پایین میارن.
- caveman mode تو یه بنچمارک ارزونتر و بهتر بود، ولی تو دو بنچمارک دیگه کیفیت رو پایین آورد.




