روش EXACT: چطور با ایجنتهای هوش مصنوعی TDD کنیم و کیفیت کد پایین نیاد
خلاصهٔ کاملتر
امیلی باخ تو این مقاله با Marco Emrich و Ferdinand Ade از شرکت Codecentric گفتوگو کرده. این دو نفر یه روش و مجموعه skill برای ایجنتهای کدنویسی ساختن به اسم EXACT. اسمش یه بازی با کلمهست: میخوان دقیقاً همون چیزی رو بگیرن که لازم دارن، نه چیزی که vibe coding (یعنی کد نوشتن با AI بدون برنامه و بدون تست) تحویلت میده. نکته جالبش اینه که روششون رو با آزمایش و داده جلو بردن، نه با حدس.
کار با Example Mapping شروع میشه، یعنی یه تکنیک از دنیای BDD که آدمها با هم روی کاغذ مثالهای واقعی از یه user story رو درمیارن. بعد این مثالها با کمک LLM به یه test list تبدیل میشه (ایده Kent Beck تو Canon TDD، یعنی یه لیست ساده از تستهایی که باید نوشته بشه). LLM اینجا چک میکنه که حالتهای واضحی جا نیفتاده باشه. بعد ایجنت آیتمبهآیتم چرخه red، green، refactor رو اجرا میکنه.
برای سنجیدن، دو تا code kata جدید (یعنی تمرین کدنویسی کوچیک) ساختن که تو دادههای آموزشی مدلها نیستن و یه مجموعه تست پذیرش مخفی دارن که LLM نمیبینه. وقتی فقط توضیح متنی قوانین رو به مدل دادن، یعنی همون vibe coding، نتیجه ضعیف بود. وقتی قبلش Example Mapping کردن، درستی کد حدود ۶۰ تا ۸۰ درصد بالا رفت. Ferdi میگه تو پروژههای واقعی مثل بانک و بیمه، نیازمندیها همیشه پر از ابهامه و مثالها این ابهام رو کم میکنن.
به گفتهشون، فریمورکهای spec-driven مثل BMAD فقط فایلهای markdown بیشتری تولید میکنن و آخرش همون حس «به نظر خوبه» یه Pull Request خیلی بزرگ رو داری. اونا ترجیح میدن فکر کردن رو بیارن اول کار، با ابزارهایی مثل Example Mapping یا event storming از دنیای DDD.
تو مقایسه «Plain TDD» (یعنی فقط به مدل بگی TDD کن) با EXACT، روش EXACT توکن خیلی بیشتری مصرف میکنه ولی کد تمیزتری میده: طولانیترین تابع کوتاهتره، پیچیدگی شناختی (cognitive complexity) کمتره و mutation score، یعنی اینکه تستها چقدر خوب باگها رو میگیرن، بالاتره. یه نسخه سوم هم دارن که مرحله refactor رو به یه subagent جدا با context تازه میسپره. ایدهاش از مقاله معروف lost in the middle اومده، یعنی هر چی context بلندتر بشه، وسطش بیشتر گم میشه.
با Opus 4.6 این subagent جدا خیلی فرق ایجاد میکرد، ولی با Opus 5.5 و Claude Code فقط یه کم بهتره. یه ترفند دیگهشون Predictive TDD هست: قبل از هر قدم، مدل باید پیشبینی کنه تست قرمز میشه یا سبز و با چه پیغام خطایی. به نظرشون این کار مسئله رو میاره جلوی context مدل. تو ابزارشون میتونی سطح نظارت آدم رو هم تنظیم کنی، از بررسی بعد هر قدم تا اجرای کاملاً خودکار. Marco میگه هر چی بیشتر تو حلقه بمونه، نتیجه بهتر میشه. ابزار و آزمایشگاه تستشون open source و روی GitHub هست.
نکات کلیدی:
- EXACT ترکیب Example Mapping، test list و TDD قدمبهقدم برای ایجنتهای AI هست.
- Example Mapping قبل از کدنویسی، درستی کد رو تو آزمایشها حدود ۶۰ تا ۸۰ درصد بالا برده.
- EXACT نسبت به «Plain TDD» توکن بیشتری میخوره ولی mutation score بالاتر و پیچیدگی کمتری داره.
- subagent جدا برای refactor با Opus 4.6 خیلی مؤثر بود، ولی با Opus 5.5 فقط بهبود کمی میده.
- Predictive TDD یعنی مدل قبل از اجرای تست، نتیجه و پیغام خطا رو پیشبینی کنه.
- ابزار و آزمایشگاه تستش open source هست و یه کتاب هم دربارهاش در دست نوشتنه.




