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

被引:0
|
作者
Di Cui
Lingling Fan
Sen Chen
Yuanfang Cai
Qinghua Zheng
Yang Liu
Ting Liu
机构
[1] Xi’an Jiaotong University,School of Computer Science and Technology
[2] Xi’an Jiaotong University,School of Cyber Science and Engineering
[3] Nankai University,College of Cyber Science
[4] Tianjin University,College of Intelligence and Computing
[5] Drexel University,Department of Computer Science
[6] Nanyang Technological University,School of Computer Science and Engineering
来源
关键词
empirical software engineering; software maintenance; software evolution; software architecture; software design;
D O I
暂无
中图分类号
学科分类号
摘要
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.
引用
收藏
相关论文
共 9 条
  • [1] Towards characterizing bug fixes through dependency-level changes in Apache Java open source projects
    Di CUI
    Lingling FAN
    Sen CHEN
    Yuanfang CAI
    Qinghua ZHENG
    Yang LIU
    Ting LIU
    Science China(Information Sciences), 2022, 65 (07) : 102 - 120
  • [2] 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
    Science China Information Sciences, 2022, 65 (07)
  • [3] Towards characterizing bug fixes through dependency-level changes in Apache Java']Java open source projects
    Cui, Di
    Fan, Lingling
    Chen, Sen
    Cai, Yuanfang
    Zheng, Qinghua
    Liu, Yang
    Liu, Ting
    SCIENCE CHINA-INFORMATION SCIENCES, 2022, 65 (07)
  • [4] Characterizing logging practices in Java']Java-based open source software projects - a replication study in Apache Software Foundation
    Chen, Boyuan
    Jiang, Zhen Ming
    EMPIRICAL SOFTWARE ENGINEERING, 2017, 22 (01) : 330 - 374
  • [5] Characterizing logging practices in Java-based open source software projects – a replication study in Apache Software Foundation
    Boyuan Chen
    Zhen Ming (Jack) Jiang
    Empirical Software Engineering, 2017, 22 : 330 - 374
  • [6] Two level empirical study of logging statements in open source Java projects
    Lal, Sangeeta
    Sardana, Neetu
    Sureka, Ashish
    International Journal of Open Source Software and Processes, 2015, 6 (01) : 49 - 73
  • [7] Studying the Impact of Continuous Delivery Adoption on Bug-Fixing Time in Apache's Open-Source Projects
    de Almeida, Carlos D. A.
    Feijo, Diego N.
    Rocha, Lincoln S.
    2022 MINING SOFTWARE REPOSITORIES CONFERENCE (MSR 2022), 2022, : 132 - 136
  • [8] Method Level Refactoring Prediction on Five Open Source Java']Java Projects using Machine Learning Techniques
    Kumar, Lov
    Satapathy, Shashank Mouli
    Murthy, Lalita Bhanu
    PROCEEDINGS OF THE 12TH INNOVATIONS ON SOFTWARE ENGINEERING CONFERENCE (ISEC), 2019,
  • [9] From Reports to Bug-Fix Commits: A 10 Years Dataset of Bug-Fixing Activity from 55 Apache's Open Source Projects
    Vieira, Renan
    da Silva, Antonio
    Rocha, Lincoln
    Gomes, Joao Paulo
    15TH INTERNATIONAL CONFERENCE ON PREDICTIVE MODELS AND DATA ANALYTICS IN SOFTWARE ENGINEERING (PROMISE'19), 2019, : 80 - 89