TENET : Exploiter les tests au-delà de la validation pour la génération de code
TENET: Leveraging Tests Beyond Validation for Code Generation
September 29, 2025
papers.authors: Yiran Hu, Nan Jiang, Shanchao Liang, Yi Wu, Lin Tan
cs.AI
papers.abstract
Le développement piloté par les tests (Test-Driven Development, TDD) est une pratique largement adoptée en ingénierie logicielle qui exige des développeurs de créer et d'exécuter des tests parallèlement à l'implémentation du code, garantissant ainsi que le comportement du logiciel est continuellement validé et affiné. À l'ère du "vibe coding", où les développeurs délègent de plus en plus l'écriture du code à des modèles de langage de grande taille (LLMs) en spécifiant des intentions de haut niveau, le TDD devient encore plus crucial, car les cas de test servent de spécifications exécutables qui définissent et vérifient explicitement la fonctionnalité souhaitée, au-delà de ce que les descriptions en langage naturel et le contexte du code peuvent exprimer. Bien que le "vibe coding" sous TDD soit prometteur, il existe trois défis principaux : (1) sélectionner une suite de tests petite mais efficace pour améliorer la précision de la génération et contrôler la charge d'exécution, (2) récupérer efficacement le contexte, tel que le code pertinent, et (3) utiliser systématiquement les retours des tests pour un affinement efficace du code. Pour relever ces défis, nous présentons TENET, un agent LLM dédié à la génération de fonctions dans des dépôts complexes du monde réel dans un cadre TDD. TENET se compose de trois éléments : (1) un mécanisme innovant de harnais de test qui sélectionne une suite de tests concise pour maximiser la diversité des scénarios d'utilisation cibles ; (2) un ensemble d'outils d'agent personnalisé qui effectue une récupération efficace du code pertinent avec un débogage interactif ; et (3) un workflow d'affinement basé sur la réflexion qui analyse itérativement les échecs, complète le contexte et applique l'affinement du code. TENET atteint respectivement 69,08 % et 81,77 % de Pass@1 sur les benchmarks RepoCod et RepoEval, surpassant les meilleurs agents de référence de 9,49 et 2,17 points de pourcentage. De plus, il s'agit de la première étude sur la génération de code pilotée par les tests avec un contexte au niveau du dépôt, examinant comment différents aspects des suites de tests affectent les performances des agents LLM dans un cadre TDD.
English
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.