当 LLM 生成的重构引发连锁反应:代码仓库采纳就绪性的实证研究
When LLM-Generated Refactorings Ripple: An Empirical Study of Repository Adoption Readiness
精选理由
深度 92 / 可操作性 88,来自 arXiv cs.AI。
AI 摘要
大型语言模型(LLM)正越来越多地用于重构源文件,但仅针对文件本地的评估无法揭示会影响代码仓库采纳的契约、依赖关系或调用方假设的变化。为弥补这一空白,我们从 15 个开源 Java 代码仓库中选取 150 个生产环境文件,在 5 种 LLM 配置和两种依赖感知生成条件下开展了 1,500 次生成尝试:单提示词重构和基于 LangGraph 的多智能体重构。其中,1,455 次尝试生成了符合分析条件的完整候选结果。我们通过本地变更、面向代码仓库的结构指标、检测到的调用方影响、行为等价指标以及可用的测试证据对这些候选结果进行评估,并将其分类为低风险、需审查、高契约/依赖风险或结论不确定。结果显示,1,365 个候选结果(93.8%)被归类为高契约/依赖风险;其中,106 个(7.3%)至少存在一个检测到的下游调用方破坏问题,290 个(19.9%)具有错误的行为等价指标;仅有 8 个满足低风险标准。在具有原因标注的子集中,采用更为保守的依赖变更阈值后,高风险率有所下降;在 65 个具有明确目标测试结果的候选结果中,有 60 个通过了测试,其中包括 50 个被归类为高风险的候选结果。对 705 对完整配对结果进行的分析未发现生成条件在主要风险指标上存在统计显著差异,不过不同模型配置在具体检测到的风险渠道上有所不同。这些发现表明,实践者应将 LLM 生成的重构视为需要分阶段进行代码仓库级验证的候选结果;未来研究则应验证筛选和提取的准确性,并加强编译、行为以及协同多文件验证。