TENET: Leveraging Tests Beyond Validation for Code Generation

2509.24148v2 cs.SE, cs.AI 2025-10-01
Авторы:

Yiran Hu, Nan Jiang, Shanchao Liang, Yi Wu, Lin Tan

Резюме на русском

#### Контекст Тест-драйвенное разработки (Test-Driven Development, TDD) — это методология программирования, в рамках которой разработчики создают тесты одновременно с реализацией кода, чтобы обеспечить непрерывный контроль и улучшение функциональности программ. В появившемся вибе-кодинге, где разработчики передают роль написания кода системам на основе больших языковых моделей (LLM), опираясь на высокоуровневые цели, TDD становится еще более важным. Тесты в этой системе выступают как исполняемые спецификации, которые определяют и проверяют функционал не только на основе естественного языка или контекста кода. Однако возникает несколько проблем: выбор эффективного набора тестов, эффективное восстановление контекста (например, связанного кода) и систематическое использование тестовых ответов для улучшения системы. Эти проблемы настоятельно подчеркивают необходимость развития TDD в контексте новых технологий. #### Метод TENET — это LLM-агент, разработанный для генерации функций в реальных репозиториях программных проектов, используя TDD-подход. Он включает в себя три основных компонента: (1) механизм выбора тестов, оптимизированного для максимального разнообразия сценариев использования; (2) инструментарий для эффективного поиска соответствующего кода и интерактивного отладки; (3) рабочую процедуру, основанную на анализе ошибок, пополнении контекста и применении корректий в коде. Эти компоненты работают совместно для повышения точности генерации кода и уменьшения рабочего нагрузки. #### Результаты Используя две б BENCHMARK-базы данных, RepoCod и RepoEval, TENET показал высокую эффективность. Процент Pass@1 — 69.08% и 81.77% соответственно — значительно превосходит результаты других существующих агентов. Эксперименты показали, что выбор тестов с максимальным разнообразием сценариев и интерактивная отладка значительно повышают качество кода. Это первое исследование, которое изучает влияние разных аспектов тестов на результаты LLM-агентов в контексте TDD. #### Значимость Результаты TENET открывают пути к более эффективному TDD в ситуациях, когда разработка использует вибе-кодинг. Этот подход может быть применен в различных областях программирования, где необходимо быстро и качественно генерировать код, обеспечивая его работоспособность. Благодаря TENET улучшается степень контроля за качеством кода и экономится время разработчиков. #### Выводы TENET доказывает, что тесты в TDD могут быть значительно улучшены с использованием LLM-агентов, что привносит новые возможности в программирование. Будущие ис

Abstract

Test-Driven Development (TDD) is a widely adopted software engineering practice that requires developers to create and execute tests alongside code implementation, ensuring that software behavior is continuously validated and refined. In the era of vibe coding, where developers increasingly delegate code writing to large language models (LLMs) by specifying high-level intentions, TDD becomes even more crucial, as test cases serve as executable specifications that explicitly define and verify intended functionality beyond what natural-language descriptions and code context can convey. While vibe coding under TDD is promising, there are three main challenges: (1) selecting a small yet effective test suite to improve the generation accuracy and control the execution workload, (2) retrieving context such as relevant code effectively, and (3) systematically using test feedback for effective code refinement. To address these challenges, we introduce TENET, an LLM agent for generating functions in complex real-world repositories under the TDD setting. TENET features three components: (1) a novel test harness mechanism that selects a concise test suite to maximize diversity of target usage scenarios; (2) a tailored agent toolset that performs efficient retrieval of relevant code with interactive debugging; and (3) a reflection-based refinement workflow that iteratively analyzes failures, replenishes context, and applies code refinement. TENET achieves 69.08% and 81.77% Pass@1 on RepoCod and RepoEval benchmarks, outperforming the best agentic baselines by 9.49 and 2.17 percentage points, respectively. In addition, this is the first study of test-driven code generation with repository-level context, examining how different aspects of test suites affect the performance of LLM agents under the TDD setting.

Ссылки и действия