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 条
  • [31] An empirical evaluation of classification algorithms for fault prediction in open source projects
    Kaur, Arvinder
    Kaur, Inderpreet
    [J]. JOURNAL OF KING SAUD UNIVERSITY-COMPUTER AND INFORMATION SCIENCES, 2018, 30 (01) : 2 - 17
  • [32] Assessing the Representativeness of Open Source Projects in Empirical Software Engineering Studies
    Zhong, Hao
    Yang, Ye
    Keung, Jacky
    [J]. 2012 19TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC), VOL 1, 2012, : 808 - 817
  • [33] Are unit and integration test definitions still valid for modern Java']Java projects? An empirical study on open-source projects
    Trautsch, Fabian
    Herbold, Steffen
    Grabowski, Jens
    [J]. JOURNAL OF SYSTEMS AND SOFTWARE, 2020, 159
  • [34] On the analysis of non-coding roles in open source developmentAn empirical study of NPM package projects
    Javier Luis Cánovas Izquierdo
    Jordi Cabot
    [J]. Empirical Software Engineering, 2022, 27
  • [35] An Empirical Study on the Relationship among Software Design Quality, Development Effort, and Governance in Open Source Projects
    Capra, Eugenio
    Francalanci, Chiara
    Merlo, Francesco
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2008, 34 (06) : 765 - 782
  • [36] Analyzing the Relationship between Community and Design Smells in Open-Source Software Projects: An Empirical Study
    Mumtaz, Haris
    Singh, Paramvir
    Blincoe, Kelly
    [J]. PROCEEDINGS OF THE16TH ACM/IEEE INTERNATIONAL SYMPOSIUM ON EMPIRICAL SOFTWARE ENGINEERING AND MEASUREMENT, ESEM 2022, 2022, : 23 - 33
  • [37] A Large-Scale Empirical Study of Real-Life Performance Issues in Open Source Projects
    Zhao, Yutong
    Xiao, Lu
    Bondi, Andre B.
    Chen, Bihuan
    Liu, Yang
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2023, 49 (02) : 924 - 946
  • [38] The Reaction of Open-Source Projects to New Language Features: An Empirical Study of C# Generics
    Kim, Donghoon
    Murphy-Hill, Emerson
    Parnin, Chris
    Bird, Christian
    Garcia, Ronald
    [J]. JOURNAL OF OBJECT TECHNOLOGY, 2013, 12 (04): : 1 - 30
  • [39] On the analysis of non-coding roles in open source development An empirical study of NPM package projects
    Canovas Izquierdo, Javier Luis
    Cabot, Jordi
    [J]. EMPIRICAL SOFTWARE ENGINEERING, 2022, 27 (01)
  • [40] Preliminary empirical identification of barriers faced by newcomers to Open Source Software projects
    Steinmacher, Igor
    Chaves, Ana Paula
    Conte, Tayana
    Gerosa, Marco Aurelio
    [J]. 2014 28TH BRAZILIAN SYMPOSIUM ON SOFTWARE ENGINEERING (SBES 2014), 2014, : 51 - +