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
相关论文
共 50 条
  • [41] Adaptive Regression Testing Strategy: An Empirical Study
    Arafeen, Md. Junaid
    Do, Hyunsook
    22ND IEEE INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING (ISSRE), 2011, : 130 - 139
  • [42] An empirical study of the Python']Python/C API on evolution and bug patterns
    Hu, Mingzhe
    Zhang, Yu
    JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2023, 35 (02)
  • [43] An Empirical Study of Multi-Entity Changes in Real Bug Fixes
    Wang, Ye
    Meng, Na
    Zhong, Hao
    PROCEEDINGS 2018 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME), 2018, : 287 - 298
  • [44] Bug Characteristics in Blockchain Systems: A Large-Scale Empirical Study
    Wan, Zhiyuan
    Lo, David
    Xia, Xin
    Cai, Liang
    2017 IEEE/ACM 14TH INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR 2017), 2017, : 413 - 424
  • [45] An empirical study of regression test selection techniques
    Graves, TL
    Harrold, MJ
    Kim, JM
    Porter, A
    Rothermel, G
    PROCEEDINGS OF THE 1998 INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 1998, : 188 - 197
  • [46] An empirical study of regression test application frequency
    Kim, JM
    Porter, A
    Rothermel, G
    SOFTWARE TESTING VERIFICATION & RELIABILITY, 2005, 15 (04): : 257 - 279
  • [47] An empirical study of regression test selection techniques
    Graves, TL
    Harrold, MJ
    Kim, JM
    Porter, A
    Rothermel, G
    ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2001, 10 (02) : 184 - 208
  • [48] An empirical study of PLAD regression using the bootstrap
    Kondylis, Athanassios
    Whittaker, Joe
    COMPUTATIONAL STATISTICS, 2007, 22 (02) : 307 - 321
  • [49] Are duplicates really harmful? An empirical study on bug report summarization techniques
    Hao, Rui
    Li, Yuying
    Feng, Yang
    Chen, Zhenyu
    JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2023, 35 (11)
  • [50] Are tweets useful in the bug fixing process? An empirical study on Firefox and Chrome
    Mariam El Mezouar
    Feng Zhang
    Ying Zou
    Empirical Software Engineering, 2018, 23 : 1704 - 1742