Why and how bug blocking relations are breakable: An empirical study on breakable blocking bugs

Why and how bug blocking relations are breakable: An empirical study on breakable blocking bugs
复制标题

DOI:
10.1016/j.infsof.2023.107354
复制
发表时间:
2023-11
期刊:
Inf. Softw. Technol.
影响因子:
--
通讯作者:
Hao Ren;Yanhui Li;Lin Chen;Yuming Zhou;Changhai Nie
Hao Ren;Yanhui Li;Lin Chen;Yuming Zhou;Changhai Nie
中科院分区:
其他
文献类型:
--
作者:
Hao Ren;Yanhui Li;Lin Chen;Yuming Zhou;Changhai Nie

文献摘要

相似文献

上下文阻塞错误防止修复其他错误,这些错误很难修复,并对软件质量产生负面影响。在软件维护过程中,开发人员通常试图打破阻塞和被阻塞错误之间的阻塞关系,例如提出一个临时修复方法。在这项研究中,我们旨在构建一个实证分析来探索可打破的阻塞漏洞(BBB)。方法具体地说,我们从两个方面对这些BBB进行了定量和定性分析。一个是调查这些错误的特征,另一个是探索开发人员为什么以及如何在软件维护过程中打破错误之间的阻塞关系。我们在五个大型开源项目上构建了一个数据集,并将错误分为三种类型(BBBS、正常阻止错误和其他错误),以比较BBBS与其他类型错误的差异。结果我们观察到BBBS与其他错误相比,参与程度更高,修复时间更长,涉及的源代码更复杂。此外,我们总结了Bug之间阻塞关系被破坏的四个原因,即部分关联(41.87%)、严重影响(26.40%)、时间压力(19.73%)和有缺陷阻塞(12.21%),以及开发人员为打破这些阻塞关系而采取的三种措施,即快速修补Bug(41.33%)、快速修补Bug(38.67%)和忽略阻塞关系而直接修复Bug(20.00%)。对于软件维护人员来说,深入了解BBBS的特点和修复实践是有意义的,这将有助于在未来有效地解决BBBS。
ContextBlocking bugs prevents other bugs from being fixed, which is difficult to repair and negatively impacts software quality. During software maintenance, developers usually try to break the blocking relationship between blocking and blocked bugs, e.g., propose a temporary fix.ObjectHowever, to our knowledge, no studies have investigated why and how blocking relations between bugs are breakable. In this study, we aim to construct an empirical analysis to explore breakable blocking bugs (BBBs).MethodSpecifically, we employ quantitative and qualitative analysis to study these BBBs from two aspects. One is to investigate the characteristics of these bugs, and the other is to explore why and how developers break the blocking relationship between bugs during software maintenance. We build a dataset on five large-scale open-source projects and classify bugs into three types (BBBs, normal blocking bugs, and other bugs) to compare the differences between BBBs and other types of bugs.ResultsWe observe that BBBs have higher levels of involvement, take longer to fix, and involve more complex source code than other bugs. Moreover, we summarize four reasons blocking relationships between bugs are broken, i.e., partial association (41.87%), serious influence (26.40%), time pressure (19.73%), and flawed blocking (12.21%), and three measures developers adopt to break these blocking relationships, i.e., quick patch for blocking bugs (41.33%), quick patch for blocked bugs (38.67%), and ignore the blocking relation and fix blocked bugs directly (20.00%).ConclusionThrough these analyses, it is meaningful for software maintainers to have a deeper understanding of the characteristics and repair practices of BBBs, which will help solve these BBBs effectively in the future.