为何某些缺陷无法复现?一项基于数据融合的实证研究
软件工程
2021-08-12 v1
摘要
软件开发人员试图复现软件缺陷以理解其错误行为并修复它们。遗憾的是,他们经常无法复现(或修复)这些缺陷,从而导致有缺陷、不可靠的软件系统。然而,迄今为止,仅有少量研究致力于更好地理解是什么导致软件缺陷无法复现。在本文中,我们开展了一项多模态研究,以更好地理解软件缺陷的不可复现性。首先,我们使用来自两个流行软件系统(Firefox、Eclipse)的 576 份不可复现缺陷报告进行实证研究,并识别出可能导致报告缺陷不可复现的 11 个关键因素。其次,我们开展了一项涉及 13 名专业开发人员的用户研究,调查开发人员如何应对不可复现的缺陷。我们发现他们要么关闭这些缺陷,要么索取进一步信息,而这涉及冗长的审议和适得其反的人工搜索。第三,我们通过结合来自多项研究(例如实证研究、开发人员研究)的分析,提供了若干可操作的见解,说明如何避免不可复现性(例如假阳性缺陷报告检测器)并提高报告缺陷的复现性(例如用于缺陷复现的沙箱)。
引用
@article{arxiv.2108.05316,
title = {Why are Some Bugs Non-Reproducible? An Empirical Investigation using Data Fusion},
author = {Mohammad Masudur Rahman and Foutse Khomh and Marco Castelluccio},
journal= {arXiv preprint arXiv:2108.05316},
year = {2021}
}
备注
12 pages