paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Rechecking Recheck Requests in Continuous Integration: An Empirical Study of OpenStack

持续集成中的 Recheck 请求再审视:OpenStack 实证研究
ASE 2025 40th IEEE/ACM International Conference on Automated Software Engineering (ASE)2025匹配度 2/10 · 该论文关注 CI 重检请求的统计预测与 OpenStack 实证,属于软件工程/测试与开发者工具方向,与用户核心关注的 PL→AI、AI→PL、浮点程序分析及贝叶斯程序分析均无直接关联。引用 1 inbox
Yelizaveta Brus, Rungroj Maipradit, Earl T. Barr, Shane McIntosh
crossref: 2026-09-12

AI 速览

一句话:通过统计模型区分 CI recheck 成功与否,节省开发者与计算时间。

持续集成(CI)常因 flaky 失败而误报,开发者需判断是否发出 recheck 重测补丁集;盲目重测浪费大量时间与算力。本文对 OpenStack 的 314,947 个 recheck 请求开展实证研究,拟合统计模型以区分会成功的 recheck(使失败 CI 转为成功)和会再次失败的 recheck。模型在 AUROC 上达 0.736,比基线高 23.6 个百分点;作业、机器人和用户的历史行为比补丁集静态特征更具解释力。若自动发起预测成功的 recheck,可节省约 247 年开发者时间;若在预测失败时跳过 recheck,可避免 86.49% 的浪费性重测,节省约 262 年计算时间。

问题
持续集成中的非确定性(flaky)失败会触发大量 recheck 请求,开发者难以判断重测是否会成功,造成开发者时间与计算资源浪费。
方法
论文对 OpenStack 的 314,947 个 recheck 请求进行实证研究,拟合并分析统计模型,利用作业、机器人和用户的历史行为等特征来区分成功与失败的 recheck。
评估
以 AUROC 为主要指标将模型与基线方法比较,并估算自动发起成功 recheck、跳过失败 recheck 所能节省的开发者时间与计算时间。
原文摘要(Abstract)

Continuous Integration (CI) is a process for automatically checking patch sets for errors. CI periodically fails due to non-deterministic (a.k.a., "flaky") behaviour. Since a patch set may not be the cause of a flaky failure, developers can issue a "recheck" command to request retesting a patch set. Developers waste time considering whether or not to issue a recheck after a CI failure. Prior work also shows that rechecks are issued liberally, wasting up to 187.4 compute years when CI continues to fail. To save developer time and avoid wasteful rechecks, we fit and analyze statistical models that discriminate between successful and failing rechecks, i.e., those rechecks that will change a failing CI run into a successful one and those that will fail again. Through an empirical study of 314,947 recheck requests from OpenStack, we find that our model can differentiate successful and failed rechecks well, outperforming baseline approaches by 23.6 percentage points in terms of AUROC (0.736).Analysis of our model suggests that, in terms of explanatory power, past behaviour of jobs, bots, and users dominate static characteristics of patch sets. Applying our model to automatically request rechecks for those predicted to succeed would have saved roughly 247 years of elapsed developer time for OpenStack. Applying our model to skip recheck requests when they are predicted to fail would avoid 86.49% of wasted rechecks, saving roughly 262 years of compute time.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot9239,
  title = {Rechecking Recheck Requests in Continuous Integration: An Empirical Study of OpenStack},
  author = {Yelizaveta Brus and Rungroj Maipradit and Earl T. Barr and Shane McIntosh},
  booktitle = {ASE},
  year = {2025},
  doi = {10.1109/ase63991.2025.00121}
}