NeFut Logo NeFut
EN 管理员登录

[AI学术] KG-AST:更低成本的 CI/CD:预算化测试选择与 AI 缺陷审查

发布于:2026-11-07 22:00 最后更新:2026-11-08 12:04
#AI #Machine Learning #Open Source

本文研究了一种名为 KG‑AST 的方法,用于在持续集成(CI)和 AI 辅助代码审查中按预算分配资源。传统做法对每次提交都执行相同的重测试和 AI 审查,即使大多数提交并未引入缺陷。KG‑AST 首先利用 Git 历史和代码图特征为每个提交打风险分数,只在风险最高的提交上运行重测试或 AI 审查,并且只向 AI 评审器提供变更附近的图切片。\n\n在 155 个跨 11 种语言的开源项目上,使用单一跨语言模型对其他项目进行训练后,按风险排序的前 20% 提交能够覆盖 49%–64% 的缺陷引入提交(不同语言略有差异),而随机抽样仅覆盖约 20%,按变更规模排序覆盖 40%–55%。所有语言均优于“最大变更”基线,提升幅度在 3.8 到 13.2 分之间。以 Java 为例,20% 预算下的提升为 15.1 分(64.6% 对 49.5%,95% 区间 +11.6 到 +18.4),且在 20 个项目中有 19 个项目模型表现更佳。\n\n实验表明,仅约十二个训练项目即可达到该效果,加入更丰富的特征、调参或更干净的标签并未带来显著提升。仅让 AI 审查器看到提交的 diff 时,能够准确捕获 26% 的后续修复缺陷;加入图上下文后提升至 32%。对于未匹配到后续修复的发现,约有一半被独立的 AI 评审员判定为真实缺陷。静态调用图选择器在运行约 8% 的测试套件时,能够在 85%(67 次修复提交中)的修复提交中包含对应的测试。\n\n使用 Poincaré 嵌入进行检索的实验未带来可测量的收益:提交风险的 AUC、缺陷审查和严重性排序均未提升或出现下降。需要注意的是标签噪声较大,预算指标假设重测试能够捕获其覆盖的缺陷,实际 CI 时间未被测量。\n\n点评:KG‑AST 展示了通过风险预测将有限的 CI 资源聚焦于高危提交的可行性,显著提升了缺陷捕获率且实现语言无关。虽然标签噪声和未测量的实际执行时间仍是限制因素,但在开源项目的大规模实验中已证明其实用价值。

原文链接: https://arxiv.org/abs/2611.06950

[h] 返回首页