An Empirical Study of Regression Bug Chains in Linux

被引:9
作者
Xiao, Guanping [1 ]
Zheng, Zheng [1 ]
Jiang, Bo [2 ]
Sui, Yulei [3 ,4 ]
机构
[1] Beihang Univ, Sch Automat Sci & Elect Engn, Beijing 100191, Peoples R China
[2] Beihang Univ, Sch Comp Sci & Engn, Beijing 100191, Peoples R China
[3] Univ Technol Sydney, Ctr Artificial Intelligence, Sydney, NSW 2007, Australia
[4] Univ Technol Sydney, Sch Software, Sydney, NSW 2007, Australia
基金
澳大利亚研究理事会; 中国国家自然科学基金;
关键词
Bipartite network; bug-fixing commit (BFC); bug-introducing commit (BIC); Linux; regression bug; regression bug chain (RBC);
D O I
10.1109/TR.2019.2902171
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Regression bugs are a type of bugs that cause a feature of software that worked correctly but stop working after a certain software commit. This paper presents a systematic study of regression bug chains, an important but unexplored phenomenon of regression bugs. Our paper is based on the observation that a commit c1, which fixes a regression bug b1, may accidentally introduce another regression bug b2. Likewise, commit c2 repairing b2 may cause another regression bug b3, resulting in a bug chain, i.e., b1 -> c1 -> b2 -> c2 -> b3. We have conducted a large-scale study by collecting 1579 regression bugs and 2630 commits from 57 Linux versions (from 2.6.12 to 4.9). The relationships between regression bugs and commits are modeled as a directed bipartite network. Our major contributions and findings are fourfold: 1) a novel concept of regression bug chains and their formulation; 2) compared to an isolated regression bug, a bug on a regression bug chain is muchmore difficult to repair, costing 2.4xmore fixing time, involving 1.3x more developers and 2.8x more comments; 3) 85.8% of bugs on the chains in Linux reside in Drivers, ACPI, Platform Specific/Hardware, and Power Management; and 4) 83% of the chains affect only a single Linux subsystem, while 68% of the chains propagate across Linux versions.
引用
收藏
页码:558 / 570
页数:13
相关论文
共 40 条
  • [1] Asaduzzaman M., 2012, 2012 9th IEEE Working Conference on Mining Software Repositories (MSR 2012), P116, DOI 10.1109/MSR.2012.6224267
  • [2] Bachmann A., 2010, P FAST SOFTW ENCR WO, P97
  • [3] Bird Christian, 2009, 2009 20th International Symposium on Software Reliability Engineering (ISSRE 2009), P109, DOI 10.1109/ISSRE.2009.17
  • [5] How do bugs surface? A comprehensive study on the characteristics of software bugs manifestation
    Cotroneo, Domenico
    Pietrantuono, Roberto
    Russo, Stefano
    Trivedi, Kishor
    [J]. JOURNAL OF SYSTEMS AND SOFTWARE, 2016, 113 : 27 - 43
  • [6] Cotroneo D, 2013, PROC INT SYMP SOFTW, P178, DOI 10.1109/ISSRE.2013.6698917
  • [7] D'Ambros Marco, 2010, Proceedings of the 2010 7th IEEE Working Conference on Mining Software Repositories (MSR 2010), P31, DOI 10.1109/MSR.2010.5463279
  • [8] A Framework for Evaluating the Results of the SZZ Approach for Identifying Bug-Introducing Changes
    da Costa, Daniel Alencar
    McIntosh, Shane
    Shang, Weiyi
    Kulesza, Uira
    Coelho, Roberta
    Hassan, Ahmed E.
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2017, 43 (07) : 641 - 657
  • [9] Dittrich A., 2013, Complex Networks, P187
  • [10] Correlations between bugginess and time-based commit characteristics
    Eyolfson, Jon
    Tan, Lin
    Lam, Patrick
    [J]. EMPIRICAL SOFTWARE ENGINEERING, 2014, 19 (04) : 1009 - 1039