TENET: Het benutten van tests verder dan validatie voor codegeneratie
TENET: Leveraging Tests Beyond Validation for Code Generation
September 29, 2025
Auteurs: Yiran Hu, Nan Jiang, Shanchao Liang, Yi Wu, Lin Tan
cs.AI
Samenvatting
Test-Driven Development (TDD) is een veelgebruikte software-engineeringpraktijk waarbij ontwikkelaars tests moeten maken en uitvoeren naast de code-implementatie, om ervoor te zorgen dat het gedrag van de software continu wordt gevalideerd en verfijnd. In het tijdperk van 'vibe coding', waarbij ontwikkelaars steeds vaker het schrijven van code delegeren aan grote taalmodelen (LLMs) door hoogwaardige intenties te specificeren, wordt TDD nog belangrijker, omdat testgevallen dienen als uitvoerbare specificaties die de beoogde functionaliteit expliciet definiëren en verifiëren, verdergaand dan wat natuurlijke-taalbeschrijvingen en codecontext kunnen overbrengen. Hoewel 'vibe coding' onder TDD veelbelovend is, zijn er drie belangrijke uitdagingen: (1) het selecteren van een kleine maar effectieve testsuite om de generatienauwkeurigheid te verbeteren en de uitvoeringsbelasting te beheersen, (2) het effectief ophalen van context, zoals relevante code, en (3) het systematisch gebruiken van testfeedback voor effectieve coderefinering. Om deze uitdagingen aan te pakken, introduceren we TENET, een LLM-agent voor het genereren van functies in complexe real-world repositories onder de TDD-instelling. TENET beschikt over drie componenten: (1) een nieuw testharness-mechanisme dat een beknopte testsuite selecteert om de diversiteit van doelgebruiksscenario's te maximaliseren; (2) een op maat gemaakte agent-toolset die efficiënt relevante code ophaalt met interactieve debugging; en (3) een reflectiegebaseerde verfijningsworkflow die iteratief fouten analyseert, context aanvult en coderefinering toepast. TENET behaalt 69,08% en 81,77% Pass@1 op de RepoCod- en RepoEval-benchmarks, wat respectievelijk 9,49 en 2,17 procentpunt beter is dan de beste agentische baselines. Bovendien is dit de eerste studie naar testgedreven codegeneratie met repository-niveau context, waarbij wordt onderzocht hoe verschillende aspecten van testsuites de prestaties van LLM-agents onder de TDD-instelling beïnvloeden.
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.