ExecCritic improves coding fixes by testing and revising separately
ExecCritic: Learn to Test, Test to Improve for Coding Agents
Artificial IntelligenceComputation and LanguageSoftware Engineering
Summary
Sometimes, computer programs that try to fix code also write tests to check their work. But if the tests and fixes are made together, they might both be wrong in the same way and give a false sense of correctness. The authors created ExecCritic, which splits the job into two parts: one part writes tests, and another part fixes the code based on those tests without changing them. By training these parts separately with special learning methods, they made code repairs more reliable and effective. This approach helps coding agents learn better by testing first, then improving based on feedback from those tests.
coding agentssoftware testingreinforcement learningrepository repairpatch verificationQwen language modeltest generationfeedback-driven revisionSWE-bench Verifiedsoftware harness
Authors
Leitian Tao, Baolin Peng, Haorui Wang, Hang Wang, Hao Cheng, Wenlin Yao, Qianhui Wu, Tao Ge, Sharon Li, Jianfeng Gao
Abstract
Execution feedback can guide coding agents toward correct repository repairs, but only when the tests capture the behavior requested by the issue. Agent-generated tests can encode incomplete or incorrect behavioral targets; when the same trajectory writes both the patch and the test, their errors can agree and create false confidence. We introduce ExecCritic, combining a test--verify--revise scaffold with a role-specific reinforcement learning recipe for training agents within it. The scaffold separates test construction from source-code repair: a Test agent independently generates repository-native tests, a fail-closed harness qualifies and freezes them, and a Repair agent revises source code from their execution feedback without changing the tests. Both roles use Qwen-3.5-35B-A3B as the backbone and are trained separately. In Learn to Test, the Test agent learns to produce behaviorally valid tests that distinguish correct from incorrect patches. In Test to Improve, the Repair agent learns both direct task resolution and feedback-guided revision. On SWE-bench Verified, test quality determines whether feedback helps: holding the base Repair agent fixed, tests from the base Test agent reduce resolved rate from a no-test baseline of 61.2% to 57.3%, whereas tests from GPT-5.6-sol raise it to 65.3%. Role-specific post-training raises the Qwen Test agent's Base-to-Gold success from 22.2% to 62.2%; composing the two post-trained Qwen agents reaches 72.6%, an 11.4-point gain over the original no-test baseline without stronger-model or Oracle feedback at evaluation time. Code is publicly available at https://github.com/MSR-Orchard/execcritic.