• DocumentCode
    2401323
  • Title

    An empirical study of supplementary bug fixes

  • Author

    Park, Jihun ; Kim, Miryung ; Ray, Baishakhi ; Bae, Doo-Hwan

  • Author_Institution
    Korea Adv. Inst. of Sci. & Technol., Daejeon, South Korea
  • fYear
    2012
  • fDate
    2-3 June 2012
  • Firstpage
    40
  • Lastpage
    49
  • Abstract
    A recent study finds that errors of omission are harder for programmers to detect than errors of commission. While several change recommendation systems already exist to prevent or reduce omission errors during software development, there have been very few studies on why errors of omission occur in practice and how such errors could be prevented. In order to understand the characteristics of omission errors, this paper investigates a group of bugs that were fixed more than once in open source projects - those bugs whose initial patches were later considered incomplete and to which programmers applied supplementary patches. Our study on Eclipse JDT core, Eclipse SWT, and Mozilla shows that a significant portion of resolved bugs (22% to 33%) involves more than one fix attempt. Our manual inspection shows that the causes of omission errors are diverse, including missed porting changes, incorrect handling of conditional statements, or incomplete refactorings, etc. While many consider that missed updates to code clones often lead to omission errors, only a very small portion of supplementary patches (12% in JDT, 25% in SWT, and 9% in Mozilla) have a content similar to their initial patches. This implies that supplementary change locations cannot be predicted by code clone analysis alone. Furthermore, 14% to 15% of files in supplementary patches are beyond the scope of immediate neighbors of their initial patch locations - they did not overlap with the initial patch locations nor had direct structural dependencies on them (e.g. calls, accesses, subtyping relations, etc.). These results call for new types of omission error prevention approaches that complement existing change recommendation systems.
  • Keywords
    inspection; program debugging; project management; public domain software; recommender systems; software maintenance; Eclipse JDT core; Eclipse SWT; Mozilla; change recommendation system; code clone analysis; conditional statement handling; manual inspection; omission error detection; omission error prevention approach; open source project; software development; supplementary bug fixes; supplementary patch; Cloning; Computer bugs; Databases; Dispersion; Entropy; History; Manuals; bug fixes; empirical study; patches; software evolution;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Mining Software Repositories (MSR), 2012 9th IEEE Working Conference on
  • Conference_Location
    Zurich
  • ISSN
    2160-1852
  • Print_ISBN
    978-1-4673-1760-3
  • Type

    conf

  • DOI
    10.1109/MSR.2012.6224298
  • Filename
    6224298