On the Relationship between Refactoring Actions and Bugs: A Differentiated Replication

09/24/2020
by   Massimiliano Di Penta, et al.
0

Software refactoring aims at improving code quality while preserving the system's external behavior. Although in principle refactoring is a behavior-preserving activity, a study presented by Bavota et al. in 2012 reported the proneness of some refactoring actions (e.g., pull up method) to induce faults. The study was performed by mining refactoring activities and bugs from three systems. Taking profit of the advances made in the mining software repositories field (e.g., better tools to detect refactoring actions at commit-level granularity), we present a differentiated replication of the work by Bavota et al. in which we (i) overcome some of the weaknesses that affect their experimental design, (ii) answer the same research questions of the original study on a much larger dataset (3 vs 103 systems), and (iii) complement the quantitative analysis of the relationship between refactoring and bugs with a qualitative, manual inspection of commits aimed at verifying the extent to which refactoring actions trigger bug-fixing activities. The results of our quantitative analysis confirm the findings of the replicated study, while the qualitative analysis partially demystifies the role played by refactoring actions in the bug introduction.

READ FULL TEXT
research
01/19/2018

Dissection of a Bug Dataset: Anatomy of 395 Patches from Defects4J

Well-designed and publicly available datasets of bugs are an invaluable ...
research
03/28/2021

Watch out for Extrinsic Bugs! A Case Study of their Impact in Just-In-Time Bug Prediction Models on the OpenStack project

Intrinsic bugs are bugs for which a bug introducing change can be identi...
research
05/19/2023

Algorithmic failure as a humanities methodology: machine learning's mispredictions identify rich cases for qualitative analysis

This commentary tests a methodology proposed by Munk et al. (2022) for u...
research
07/25/2023

An Empirical Study on Bugs Inside PyTorch: A Replication Study

Software systems are increasingly relying on deep learning components, d...
research
06/26/2022

An Empirical Study on Bug Severity Estimation Using Source Code Metrics and Static Analysis

In the past couple of decades, significant research efforts are devoted ...
research
02/09/2019

Replication Can Improve Prior Results: A GitHub Study of Pull Request Acceptance

Crowdsourcing and data mining can be used to effectively reduce the effo...
research
12/10/2022

A Quantitative Flavour of Robust Reachability

Many software analysis techniques attempt to determine whether bugs are ...

Please sign up or login with your details

Forgot password? Click here to reset