被接受却是错的:API 迁移后 LLM 代码修复的静默失败
Accepted but Wrong: Silent Failures of LLM Code Repairs after API Migrations
Xiaobo Chen, Genliang Zhu, Ziyuan Wang, Chu Wang
AI 速读 基于摘要
一项预注册研究显示,在 CPython、Node.js 和 SQLite 的 API 迁移场景中,LLM 修复后的代码常能通过常规测试却返回错误结果,而基于发布说明构造的边界输入能显著减少这类错误放行。
cs.SE · cs.AI
查看原文摘要
After a runtime or API migration, an LLM-repaired procedure can run cleanly yet return wrong results, and a release check on typical test inputs ships it. We report a preregistered study of 73 tasks covering 60 documented changes in CPython, Node.js and SQLite. Every candidate is executed on the real runtimes against withheld contracts. Over the complete repair space, the all-assertions gate on typical inputs released 0.410 of wrong repairs. One edge input written from the release note cut this to 0.065, and to 0.061 on 15 unseen clusters. Three inputs from a blind GPT-5.6-luna writer that never saw the program reached 0.070. Two further frozen stages enlarged the menu to 1491 fragments and then added 233 hard distractors that match the legacy output on typical inputs. The edge input (0.058) and the frontier-model writer (0.058) passed their preregistered tests. Yet 0.168 and 0.153 of the hard wrong programs still passed. Two local-model writers failed their preregistered tests. Across four model families, the edge input cut wrong releases per attempt in all three open-weight families on all three menus, for example from 0.233 to 0.057, without lowering correct completion. Self-tests helped less. A blind AI audit flagged 34 contracts as stricter than their requirements. Dropping the disputed checks changed 0 verdicts, but class-label disputes remain open. No model-written code was executed. Artifacts are available from the authors on request.