Please use this identifier to cite or link to this item: http://hdl.handle.net/10397/76352
Title: Towards an understanding of change types in bug fixing code
Authors: Zhao, YY
Leung, HT 
Yang, YB
Zhou, YM
Xu, BW
Keywords: Change
Bug fixing code
Empirical study
Understanding
Software quality
Issue Date: 2017
Publisher: Elsevier
Source: Information and software technology, 2017, v. 86, p. 37-53 How to cite?
Journal: Information and software technology 
Abstract: Context: As developing high quality software becomes increasingly challenging because of the explosive growth of scale and complexity, bugs become inevitable in software systems. The knowledge of bugs will naturally guide software development and hence improve software quality. As changes in bug fixing code provide essential insights into the original bugs, analyzing change types is an intuitive and effective way to understand the characteristics of bugs. Objective: In this work, we conduct a thorough empirical study to investigate the characteristics of change types in bug fixing code. Method: We first propose a new change classification scheme with 5 change types and 9 change subtypes. We then develop an automatic classification tool CTforC to categorize changes. To gain deeper insights into change types, we perform our empirical study based on three questions from three perspectives, i.e. across project, across domain and across version. Results: Based on 17 versions of 11 systems with thousands of faulty functions, we find that: (1) across project: the frequencies of change subtypes are significantly similar across most studied projects; interface related code changes are the most frequent bug-fixing changes (74.6% on average); most of faulty functions (65.2% on average) in studied projects are finally fixed by only one or two change subtypes; function call statements are likely to be changed together with assignment statements or branch statements; (2) across domain: the frequencies of change subtypes share similar trends across studied domains; changes on function call, assignment, and branch statements are often the three most frequent changes in studied domains; and (3) across version: change subtypes occur with similar frequencies across studied versions, and the most common subtype pairs tend to be same. Conclusion: Our experimental results improve the understanding of changes in bug fixing code and hence the understanding of the characteristics of bugs.
URI: http://hdl.handle.net/10397/76352
ISSN: 0950-5849
EISSN: 1873-6025
DOI: 10.1016/j.infsof.2017.02.003
Appears in Collections:Journal/Magazine Article

Access
View full-text via PolyU eLinks SFX Query
Show full item record

SCOPUSTM   
Citations

1
Citations as of May 12, 2018

WEB OF SCIENCETM
Citations

1
Last Week
0
Last month
Citations as of May 20, 2018

Page view(s)

3
Citations as of May 21, 2018

Google ScholarTM

Check

Altmetric


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.