An empirical study of supplementary patches in open source projects

被引:9
|
作者
Park, Jihun [1 ]
Kim, Miryung [2 ]
Bae, Doo-Hwan [1 ]
机构
[1] Korea Adv Inst Sci & Technol, Sch Comp, Daejeon, South Korea
[2] Univ Calif Los Angeles, Dept Comp Sci, Los Angeles, CA 90024 USA
基金
美国国家科学基金会;
关键词
Software evolution; Empirical study; Patches; Bug fixes; MINING VERSION HISTORIES; CLONE DETECTION; CODE;
D O I
10.1007/s10664-016-9432-x
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Developers occasionally make more than one patch to fix a bug. The related patches sometimes are intentionally separated, but unintended omission errors require supplementary patches. Several change recommendation systems have been suggested based on clone analysis, structural dependency, and historical change coupling in order to reduce or prevent incomplete patches. However, very few studies have examined the reason that incomplete patches occur and how real-world omission errors could be reduced. This paper systematically studies a group of bugs that were fixed more than once in open source projects in order to understand the characteristics of incomplete patches. Our study on Eclipse JDT core, Eclipse SWT, Mozilla, and Equinox p2 showed that a significant portion of the resolved bugs require more than one attempt to fix. Compared to single-fix bugs, the multi-fix bugs did not have a lower quality of bug reports, but more attribute changes (i.e., cc'ed developers or title) were made to the multi-fix bugs than to the single-fix bugs. Multi-fix bugs are more likely to have high severity levels than single-fix bugs. Hence, more developers have participated in discussions about multi-fix bugs compared to single-fix bugs. Multi-fix bugs take more time to resolve than single-fix bugs do. Incomplete patches are longer and more scattered, and they are related to more files than regular patches are. Our manual inspection showed that the causes of incomplete patches were diverse, including missed porting updates, incorrect handling of conditional statements, and incomplete refactoring. Our investigation showed that only 7 % to 17 % of supplementary patches had content similar to their initial patches, which implies that supplementary patch locations cannot be predicted by code clone analysis alone. Furthermore, 16 % to 46 % of supplementary patches were beyond the scope of the immediate structural dependency of their initial patch locations. Historical co-change patterns also showed low precision in predicting supplementary patch locations. Code clones, structural dependencies, and historical co-change analyses predicted different supplementary patch locations, and there was little overlap between them. Combining these analyses did not cover all supplementary patch locations. The present study investigates the characteristics of incomplete patches and multi-fix bugs, which have not been systematically examined in previous research. We reveal that predicting supplementary patch is a difficult problem that existing change recommendation approaches could not cover. New type of approaches should be developed and validated on a supplementary patch data set, which developers failed to make the complete patches at once in practice.
引用
收藏
页码:436 / 473
页数:38
相关论文
共 50 条
  • [1] An empirical study of supplementary patches in open source projects
    Jihun Park
    Miryung Kim
    Doo-Hwan Bae
    [J]. Empirical Software Engineering, 2017, 22 : 436 - 473
  • [2] Writing Acceptable Patches: An Empirical Study of Open Source Project Patches
    Tao, Yida
    Han, DongGyun
    Kim, Sunghun
    [J]. 2014 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME), 2014, : 271 - 280
  • [3] An Empirical Study of License Violations in Open Source Projects
    Mathur, Arunesh
    Choudhary, Harshal
    Vashist, Priyank
    Thies, William
    Thilagam, Santhi
    [J]. PROCEEDINGS OF THE 2012 IEEE 35TH SOFTWARE ENGINEERING WORKSHOP (SEW 2012), 2012, : 168 - 176
  • [4] An Empirical Study of Security Issues Posted in Open Source Projects
    Zahedi, Mansooreh
    Babar, Muhammad Ali
    Treude, Christoph
    [J]. PROCEEDINGS OF THE 51ST ANNUAL HAWAII INTERNATIONAL CONFERENCE ON SYSTEM SCIENCES (HICSS), 2018, : 5504 - 5513
  • [5] An Empirical Study of Open Source Virtual Reality Software Projects
    Rodriguez, Irving
    Wang, Xiaoyin
    [J]. 11TH ACM/IEEE INTERNATIONAL SYMPOSIUM ON EMPIRICAL SOFTWARE ENGINEERING AND MEASUREMENT (ESEM 2017), 2017, : 474 - 475
  • [6] An Empirical Study of Adoption of Software Testing in Open Source Projects
    Kochhar, Pavneet Singh
    Bissyande, Tegawende F.
    Lo, David
    Jiang, Lingxiao
    [J]. 2013 13TH INTERNATIONAL CONFERENCE ON QUALITY SOFTWARE (QSIC), 2013, : 103 - 112
  • [7] An Empirical Study of the Landscape of Open Source Projects in Baidu, Alibaba, and Tencent
    Han, Junxiao
    Deng, Shuiguang
    Lo, David
    Zhi, Chen
    Yin, Jianwei
    Xia, Xin
    [J]. 2021 IEEE/ACM 43RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: SOFTWARE ENGINEERING IN PRACTICE (ICSE-SEIP 2021), 2021, : 298 - 307
  • [8] An empirical study of the first contributions of developers to open source projects on GitHub
    Subramanian, Vikram N.
    [J]. Proceedings - 2020 ACM/IEEE 42nd International Conference on Software Engineering: Companion, ICSE-Companion 2020, 2020, : 116 - 118
  • [9] An Empirical Study on the Occurrences of Code Smells in Open Source and Industrial Projects
    Rahman, Md. Masudur
    Satter, Abdus
    Joarder, Md. Mahbubul Alam
    Sakib, Kazi
    [J]. PROCEEDINGS OF THE16TH ACM/IEEE INTERNATIONAL SYMPOSIUM ON EMPIRICAL SOFTWARE ENGINEERING AND MEASUREMENT, ESEM 2022, 2022, : 289 - 294
  • [10] An empirical study of the first contributions of developers to open source projects on GitHub
    Subramanian, Vikram N.
    [J]. 2020 ACM/IEEE 42ND INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: COMPANION PROCEEDINGS (ICSE-COMPANION 2020), 2020, : 116 - 118