Towards characterizing bug fixes through dependency-level changes in Apache Java open source projects

The complexity and diversity of bug fixes require developers to understand bug fixes from multiple perspectives in addition to fine-grained code changes. The dependencies among files in a software system are an important dimension to inform software quality. Recent studies have revealed that most bu...

Full description

Saved in:
Bibliographic Details
Main Authors: Cui, Di, Fan, Lingling, Chen, Sen, Cai, Yuanfang, Zheng, Qinghua, Liu, Yang, Liu, Ting
Other Authors: School of Computer Science and Engineering
Format: Article
Language:English
Published: 2022
Subjects:
Online Access:https://hdl.handle.net/10356/163264
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Nanyang Technological University
Language: English
id sg-ntu-dr.10356-163264
record_format dspace
spelling sg-ntu-dr.10356-1632642022-11-29T08:09:35Z Towards characterizing bug fixes through dependency-level changes in Apache Java open source projects Cui, Di Fan, Lingling Chen, Sen Cai, Yuanfang Zheng, Qinghua Liu, Yang Liu, Ting School of Computer Science and Engineering Engineering::Computer science and engineering Empirical Software Engineering Software Maintenance The complexity and diversity of bug fixes require developers to understand bug fixes from multiple perspectives in addition to fine-grained code changes. The dependencies among files in a software system are an important dimension to inform software quality. Recent studies have revealed that most bug-prone files are always architecturally connected with dependencies, and as one of the best practices in the industry, changes in dependencies should be avoided or carefully made during bug fixing. Hence, in this paper, we take the first attempt to understand bug fixes from the dependencies perspective, which can complement existing code change perspectives. Based on this new perspective, we conducted a systematic and comprehensive study on bug fixes collected from 157 Apache open source projects, involving 140456 bug reports and 182621 bug fixes in total. Our study results show that a relatively high proportion of bug fixes (30%) introduce dependency-level changes when fixing the corresponding 33% bugs. The bugs, whose fixes introduce dependency-level changes, have a strong correlation with high priority, large fixing churn, long fixing time, frequent bug reopening, and bug inducing. More importantly, patched files with dependency-level changes in their fixes, consume much more maintenance costs compared with those without these changes. We further summarized three representative patch patterns to explain the reasons for the increasing costs. Our study unveils useful findings based on qualitative and quantitative analysis and also provides new insights that might benefit existing bug prediction techniques. We release a large set of benchmarks and also implement a prototype tool to automatically detect dependency-level changes from bug fixes, which can warn developers and remind them to design a better fix. This work was supported by National Key R&D Program of China (Grant No. 2020AAA0108800), National Natural Science Foundation of China (Grant Nos. 61632015, 61772408, U1766215, 61721002, 61532015, 61833015, 61902306, 62072351), China Postdoctoral Science Foundation (Grant Nos. 2019TQ0251, 2020M673439), Youth Talent Support Plan of Xi'an Association for Science and Technology (Grant No. 095920201303), Ministry of Education Innovation Research Team (Grant No. IRT 17R86), and Project of China Knowledge Center for Engineering Science and Technology. 2022-11-29T08:09:35Z 2022-11-29T08:09:35Z 2022 Journal Article Cui, D., Fan, L., Chen, S., Cai, Y., Zheng, Q., Liu, Y. & Liu, T. (2022). Towards characterizing bug fixes through dependency-level changes in Apache Java open source projects. Science China Information Sciences, 65(7), 172101-. https://dx.doi.org/10.1007/s11432-020-3317-2 1674-733X https://hdl.handle.net/10356/163264 10.1007/s11432-020-3317-2 2-s2.0-85132367658 7 65 172101 en Science China Information Sciences © 2022 Science China Press and Springer-Verlag GmbH Germany, part of Springer Nature. All rights reserved.
institution Nanyang Technological University
building NTU Library
continent Asia
country Singapore
Singapore
content_provider NTU Library
collection DR-NTU
language English
topic Engineering::Computer science and engineering
Empirical Software Engineering
Software Maintenance
spellingShingle Engineering::Computer science and engineering
Empirical Software Engineering
Software Maintenance
Cui, Di
Fan, Lingling
Chen, Sen
Cai, Yuanfang
Zheng, Qinghua
Liu, Yang
Liu, Ting
Towards characterizing bug fixes through dependency-level changes in Apache Java open source projects
description The complexity and diversity of bug fixes require developers to understand bug fixes from multiple perspectives in addition to fine-grained code changes. The dependencies among files in a software system are an important dimension to inform software quality. Recent studies have revealed that most bug-prone files are always architecturally connected with dependencies, and as one of the best practices in the industry, changes in dependencies should be avoided or carefully made during bug fixing. Hence, in this paper, we take the first attempt to understand bug fixes from the dependencies perspective, which can complement existing code change perspectives. Based on this new perspective, we conducted a systematic and comprehensive study on bug fixes collected from 157 Apache open source projects, involving 140456 bug reports and 182621 bug fixes in total. Our study results show that a relatively high proportion of bug fixes (30%) introduce dependency-level changes when fixing the corresponding 33% bugs. The bugs, whose fixes introduce dependency-level changes, have a strong correlation with high priority, large fixing churn, long fixing time, frequent bug reopening, and bug inducing. More importantly, patched files with dependency-level changes in their fixes, consume much more maintenance costs compared with those without these changes. We further summarized three representative patch patterns to explain the reasons for the increasing costs. Our study unveils useful findings based on qualitative and quantitative analysis and also provides new insights that might benefit existing bug prediction techniques. We release a large set of benchmarks and also implement a prototype tool to automatically detect dependency-level changes from bug fixes, which can warn developers and remind them to design a better fix.
author2 School of Computer Science and Engineering
author_facet School of Computer Science and Engineering
Cui, Di
Fan, Lingling
Chen, Sen
Cai, Yuanfang
Zheng, Qinghua
Liu, Yang
Liu, Ting
format Article
author Cui, Di
Fan, Lingling
Chen, Sen
Cai, Yuanfang
Zheng, Qinghua
Liu, Yang
Liu, Ting
author_sort Cui, Di
title Towards characterizing bug fixes through dependency-level changes in Apache Java open source projects
title_short Towards characterizing bug fixes through dependency-level changes in Apache Java open source projects
title_full Towards characterizing bug fixes through dependency-level changes in Apache Java open source projects
title_fullStr Towards characterizing bug fixes through dependency-level changes in Apache Java open source projects
title_full_unstemmed Towards characterizing bug fixes through dependency-level changes in Apache Java open source projects
title_sort towards characterizing bug fixes through dependency-level changes in apache java open source projects
publishDate 2022
url https://hdl.handle.net/10356/163264
_version_ 1751548553642115072