paperbot · PL 论文追踪

全部论文 待读 收藏

P2 HireBuild

HireBuild:历史驱动的构建脚本修复
ICSE Proceedings of the 40th International Conference on Software Engineering2018匹配度 2/10 · 论文聚焦 Gradle 构建脚本失败的自动修复,属于软件工程中的自动程序修复方向,未涉及用户画像中的静态分析、LLM/Agent、浮点程序分析或贝叶斯程序分析;仅“程序修复”与调试修复标签存在弱关联。引用 83 inbox
Foyzul Hassan, Xiaoyin Wang
crossref: 2026-09-12

AI 速览

一句话:提出首个自动生成构建脚本补丁的方法 HireBuild,利用历史修复模式与构建日志相似度修复 Gradle 构建失败。

Maven、Gradle 等构建工具虽降低了构建管理负担,但开发者仍需花费大量精力维护构建脚本并解决构建失败;TravisTorrent 数据显示 22% 的代码提交涉及构建脚本修改。现有自动程序修复技术主要针对源代码,无法直接修复构建脚本失败。为此,作者提出 HireBuild,从已有构建脚本修复中自动生成修复模式,并基于构建日志相似度推荐和应用修复模式。实验从 TravisTorrent 提取 175 个 Gradle 构建失败及其修复,其中 135 个较早修复用于自动生成修复模式,40 个较新失败用于评估。结果表明,该方法可在与人工修复相当的时间内修复 24 个可复现构建失败中的 11 个,即 45%。

问题
构建脚本维护困难且构建失败修复成本高,而现有自动程序修复技术主要面向源代码,难以直接用于修复构建脚本失败。
方法
HireBuild 从历史构建脚本修复中自动挖掘修复模式,并根据当前构建日志与历史修复日志的相似度推荐和应用补丁。
评估
在 TravisTorrent 的 175 个 Gradle 构建失败及修复上评估,用 135 个较早修复生成模式、40 个较新失败测试,修复了 24 个可复现失败中的 11 个(45%),耗时与人工修复相当。
原文摘要(Abstract)

Advancements in software build tools such as Maven reduce build management effort, but developers still need specialized knowledge and long time to maintain build scripts and resolve build failures. More recent build tools such as Gradle give developers greater extent of customization flexibility, but can be even more difficult to maintain. According to the TravisTorrent dataset of open-source software continuous integration, 22% of code commits include changes in build script files to maintain build scripts or to resolve build failures. Automated program repair techniques have great potential to reduce cost of resolving software failures, but the existing techniques mostly focus on repairing source code so that they cannot directly help resolving software build failures. To address this limitation, we propose HireBuild: History-Driven Repair of Build Scripts, the first approach to automatic patch generation for build scripts, using fix patterns automatically generated from existing build script fixes and recommending fix patterns based on build log similarity. From TravisTorrent dataset, we extracted 175 build failures and their corresponding fixes which revise Gradle build scripts. Among these 175 build failures, we used the 135 earlier build fixes for automatic fix-pattern generation and the more recent 40 build failures (fixes) for evaluation of our approach. Our experiment shows that our approach can fix 11 of 24 reproducible build failures, or 45% of the reproducible build failures, within comparable time of manual fixes.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot4511,
  title = {HireBuild},
  author = {Foyzul Hassan and Xiaoyin Wang},
  booktitle = {ICSE},
  year = {2018},
  doi = {10.1145/3180155.3180181}
}