An empirical study of crash-inducing commits in Mozilla Firefox

An empirical study of crash-inducing commits in Mozilla Firefox
复制标题

DOI:
10.1007/s11219-017-9361-y
复制
发表时间:
2018-06-01
影响因子:
1.9
通讯作者:
Gueheneuc, Yann-Gael
Gueheneuc, Yann-Gael
中科院分区:
计算机科学4区
文献类型:
--
作者:
An, Le;Khomh, Foutse;Gueheneuc, Yann-Gael

文献摘要

被引文献

相似文献

软件组织和终端用户都害怕软件崩溃。许多软件组织在其软件系统中嵌入了自动崩溃报告工具,以帮助质量保证团队跟踪和修复与崩溃相关的错误。以前的方法侧重于对崩溃类型和与崩溃相关的错误进行分类,可以帮助软件组织提高他们对崩溃的调试效率。然而,这些方法只能在软件系统崩溃一段时间后才能应用。为了帮助软件组织更早地检测和修复容易崩溃的代码,我们在Mozilla Firefox中检查了导致崩溃的提交的特征,我们称之为崩溃诱导提交。我们观察到,导致崩溃的提交通常是由经验较少的开发人员提交的,开发人员在导致崩溃的提交中执行更多的代码行添加和删除,但他们需要更少的努力来修复这些提交导致的错误。我们还描述了会导致频繁崩溃的提交,这会影响大量的用户群,我们称之为高度有效的崩溃诱导提交。与其他与崩溃相关的错误相比,我们观察到,由于高影响的崩溃诱导提交而导致的错误较少由开发人员重新打开,并且倾向于通过一次提交来修复。我们构建预测性模型,帮助软件组织在其开发人员提交代码时及早发现并修复容易崩溃的错误。我们的预测模型预测崩溃诱导提交的准确率为61.2%,召回率为94.5%,预测高影响崩溃诱导提交的准确率为60.9%,召回率为91.1%。软件组织可以使用我们的模型和方法在容易崩溃的提交对用户造成负面影响之前及早跟踪和修复,从而提高错误修复效率和用户感知的质量。
Software crashes are dreaded by both software organisations and end-users. Many software organisations have automatic crash reporting tools embedded in their software systems to help quality-assurance teams track and fix crash-related bugs. Previous approaches, which focused on the triaging of crash-types and crash-related bugs, can help software organisations increase their debugging efficiency of crashes. However, these approaches can only be applied after the software systems have been crashing for a certain period of time. To help software organisations detect and fix crash-prone code earlier, we examine the characteristics of commits that lead to crashes, which we call crash-inducing commits, in Mozilla Firefox. We observe that crash-inducing commits are often submitted by developers with less experience and that developers perform more addition and deletion of lines of code in crash-inducing commits but also that they need less effort to fix the bugs caused by these commits. We also characterise commits that would lead to frequent crashes, which impact a large user base, which we call highly impactful crash-inducing commits. Compared to other crash-related bugs, we observe that bugs due to highly impactful crash-inducing commits were less reopened by developers and tend to be fixed by a single commit. We build predictive models to help software organisations detect and fix crash-prone bugs early, when their developers commit code. Our predictive models achieve a precision of 61.2% and a recall of 94.5% to predict crash-inducing commits and a precision of 60.9% and a recall of 91.1% to predict highly impactful crash-inducing commits. Software organisations could use our models and approach to track and fix crash-prone commits early, before they negatively impact users, thus increasing bug fixing efficiency and user-perceived quality.