Software Engineering Empirical Research Radar

Repair 初学 FAQ

把第一次接触 LLM repair 会问的问题先说透。

这页不是论文综述,而是上手前的防摔垫。第一次做 repair,最容易混淆的是:工具能修和论文能发表、测试通过和真正修对、更多上下文和公平比较。

FAQ

第一次应该先读什么?

先读总览页和论文地图,不要先读所有 APR 老论文。你只需要先掌握 generate-and-validate、plausible/correct、Defects4J、LLM feedback loop 四个概念。

FAQ

我必须懂程序合成或形式化方法吗?

不用一开始就懂。传统 APR 里有 synthesis/constraint line,但你的第一篇可以从 empirical LLM repair protocol 和 diagnostic evidence 开始。

FAQ

为什么不能直接让 LLM 修,然后跑全测试?

可以作为工程工具,但论文不够。因为全测试通过只是 plausible,而且不同方法如果反馈预算不一致,就不是公平比较。

FAQ

修完跑所有测试再反馈给 LLM 可以吗?

实验上可以,但要公平、昂贵且可能过拟合。推荐分层反馈:compile、triggering、relevant、full。full tests 的结果要谨慎回传,避免把 test suite 当训练 oracle 用到极致。

FAQ

Ochiai 和 repair 有什么关系?

Ochiai 是必须比较的普通 FL baseline。我们的 diagnostic advice 必须证明比 statement-level Ochiai top-k 更能帮助 LLM 修复。

FAQ

statement-level mapping 为什么还重要?

06/07/08/09 的诊断输出可能是 route、frontier、chain、event。要和 Ochiai 公平比较,必须先投影回 statement level,并采用 strict tie-worst。

FAQ

怎么避免 oracle leakage?

prompt 里不能出现 developer patch、真实 fix diff、bug type、gold fault line。diagnostic card 只能写运行事实、对比、可疑证据和固定格式解释。

FAQ

什么叫 overfitting patch?

补丁通过已有测试,但语义仍错。例如删除功能、放宽断言、硬编码测试值、吞异常、绕过边界条件。

FAQ

人工判 correct 会不会主观?

会,所以要有 rubric:是否保持 API 语义、是否与 developer patch 语义一致、是否通过额外测试、是否引入行为回归。最好双人审查或抽样复审。

FAQ

SANER 来得及吗?

来得及做 pilot 或 short/ERA 风格信号,但 full paper 需要强 RQ、严格 baseline 和稳定 runner。第一目标是 3-bug smoke + 16-bug paired pilot。

FAQ

LLM repair 的新意会不会很快过时?

会,所以贡献不要写成某个 prompt。写成诊断证据 schema、预算公平 protocol、repair-loop validation scheduling 或 correctness defense,寿命更长。

FAQ

我现在第一条命令该跑什么?

先不要跑 LLM。先 checkout 一个 Defects4J bug,确认 compile/test/export triggering tests 都通,再接一个 dummy patch receipt。

第一周检查清单