Software Engineering Empirical Research Radar

Repair 论文地图

先看每类工作的贡献、推进和难度,再决定自己的切入点。

读 repair 不能只问“修了多少个 bug”。更好的读法是:它改变了 pipeline 的哪一层?给了模型/算法什么信息?比谁强?代价是什么?失败案例暴露了什么下一步机会?

代表工作怎么贡献

工作 / 类型核心贡献推进了什么难度与启发
GenProg / RSRepair
搜索式 APR
把程序补丁看成搜索空间,用测试作为 fitness 过滤。奠定 generate-and-validate 范式:生成候选、跑测试、保留 plausible。难点在搜索空间巨大、测试 oracle 弱、补丁容易 overfit;今天仍是理解 APR 的第一层。
SemFix / Angelix
语义约束式 repair
从失败路径和约束求解中合成表达式或条件。推进了从随机搜索到语义约束的方向,强调 specification/test constraints。工程适配难、语言/表达式范围受限;但它提醒我们 runtime evidence 不是新鲜玩具,而是 repair 的硬资产。
TBar / template APR
模板式修复
从常见 bug-fix pattern 里套模板生成补丁。在 Defects4J 等 benchmark 上建立了强传统 baseline。模板覆盖有限,但很难被弱 LLM baseline 轻松打败;适合作为 related work 中的传统强线。
AlphaRepair / CodeBERT-style repair
预训练模型 repair
用代码预训练模型做补丁生成或 token 替换。把 neural code model 引入 repair,连接传统 APR 与 LLM。上下文窗口、真实编译反馈和多文件理解较弱;现在常作为 LLM repair 的前史。
SRepair
function-level LLM repair
把 repair scope 放到 function level,让 LLM 在更完整的局部语义中修。重要推进是反驳“必须先精确到 statement 才能修”的直觉;function scope 可能更适合 LLM。难点是 scope 公平性:给 function 比给 top statement 信息更多,实验必须控制上下文长度和候选预算。
RepairAgent
agentic LLM repair
LLM 不只输出补丁,还能查文件、定位、改代码、运行测试并迭代。推进到 autonomous repair loop,baseline 心智从 prompt 变成 agent workflow。难点是可复现和预算公平:agent 每多看一个文件、多跑一次测试,都是额外信息。
DebugRepair
self-directed debugging + runtime evidence
把 runtime/debugging evidence 纳入 LLM 修复循环。说明运行时证据、自主 debugging 和 test feedback 是 2025--2026 的强方向。难点是 evidence 不能泄漏 patch 或 gold fault;必须压缩成 patch-free、可复现、固定格式。
SWE-bench / SWE-agent line
issue-level agentic repair
在真实 GitHub issue、仓库、多文件环境中让 agent 修 bug。把 repair 从 benchmark function/method 推到真实工程任务。成本和噪声很高,不适合第一篇从 FL/TCP 转 repair 的主实验;适合作为后续外部有效性。

今年最重要的变化

从 patch generator 到 repair system

强工作不再只是让模型输出 diff,而是包含定位、上下文检索、补丁生成、编译测试、失败反馈和正确性判定的一整套系统。

从 statement FL 到 scope selection

LLM 可能需要 method/function/file 级上下文。FL 的价值变成“如何限制和解释 scope”,而不是单纯给 top-1 line。

从测试通过到 correctness defense

Defects4J 全测试通过只能说明 plausible。first-tier 论文会追问 overfitting、语义等价、人工审查和额外测试。

从更多上下文到更好证据

我们的机会不是把所有 trace 都塞给模型,而是把 00/06/07/08/09 的诊断结果压成短、稳、patch-free 的 advice。

我们的切入点

Position

Diagnostic advice for LLM repair

最合适的 claim 不是“我们也做一个 repair agent”,而是:在同一 LLM、同一预算、同一 bug universe 下,诊断证据是否让 repair loop 更快、更准、更少 overfit。这里 FL/TCP/trace 背景不是包袱,是优势。