paperbot · PL 论文追踪

全部论文 待读 收藏

P2 ChangeLocator

ChangeLocator:定位引发崩溃的代码变更
ICSE Proceedings of the 40th International Conference on Software Engineering2018匹配度 3/10 · 该论文用机器学习从崩溃报告桶中定位诱因代码变更,属于ML用于软件调试/缺陷定位,与用户核心关注的静态分析、Agentic程序、LLM改进静态分析/形式化验证、浮点程序分析及贝叶斯程序分析均无直接交叉。它不涉及LLM/Agent,也未在静态分析或形式化方法层面提出理论或工程贡献。引用 11 inbox
Rongxin Wu, Ming Wen, Shing-Chi Cheung, Hongyu Zhang
crossref: 2026-09-12

AI 速览

一句话:提出 ChangeLocator,基于学习模型从崩溃报告桶中自动定位引发崩溃的代码变更。

软件崩溃是严重的缺陷表现,调试费时且困难,定位引发崩溃的代码变更可为修复与自动程序修复提供关键线索。然而,针对由一组崩溃报告(crash report bucket)所反映的崩溃,如何定位仓库中引发该崩溃的软件变更,此前缺乏系统研究。本文首先对崩溃诱因变更(crash-inducing changes)进行实证研究以刻画其特征,进而提出 ChangeLocator:它基于从实证研究中提取的特征构建学习模型,并利用历史上已修复崩溃的数据训练。作者在 NetBeans 的六个发布版本上评估,仅检查推荐列表前 1、5、10 个变更时,可分别定位 44.7%、68.5%、74.5% 的缺陷的诱因变更,显著优于当时最先进方法。

问题
如何从一组崩溃报告(crash report bucket)出发,自动定位源代码仓库中引发该崩溃的变更,以辅助人工调试与自动程序修复。
方法
先通过实证研究刻画崩溃诱因变更的特征,再以此为基础构建学习模型,使用历史已修复崩溃的数据训练,对候选变更进行排序推荐。
评估
在 NetBeans 项目的六个发布版本上评估,以推荐列表前 1、5、10 个变更的命中率作为指标,并与当时最先进方法进行对比。
原文摘要(Abstract)

Software crashes are severe manifestations of software bugs. Debugging crashing bugs is tedious and time-consuming. Understanding software changes that induce a crashing bug can provide useful contextual information for bug fixing and is highly demanded by developers. Locating the bug inducing changes is also useful for automatic program repair, since it narrows down the root causes and reduces the search space of bug fix location. However, currently there are no systematic studies on locating the software changes to a source code repository that induce a crashing bug reflected by a bucket of crash reports. To tackle this problem, we first conducted an empirical study on characterizing the bug inducing changes for crashing bugs (denoted as crash-inducing changes). We also propose ChangeLocator, a method to automatically locate crash-inducing changes for a given bucket of crash reports. We base our approach on a learning model that uses features originated from our empirical study and train the model using the data from the historical fixed crashes. We evaluated ChangeLocator with six release versions of Netbeans project. The results show that it can locate the crash-inducing changes for 44.7%, 68.5%, and 74.5% of the bugs by examining only top 1, 5 and 10 changes in the recommended list, respectively. It significantly outperforms the existing state-of-the-art approach.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot4432,
  title = {ChangeLocator},
  author = {Rongxin Wu and Ming Wen and Shing-Chi Cheung and Hongyu Zhang},
  booktitle = {ICSE},
  year = {2018},
  doi = {10.1145/3180155.3182516}
}