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

01/19/2018
by   Victor Sobreira, et al.
0

Well-designed and publicly available datasets of bugs are an invaluable asset to advance research fields such as fault localization and program repair. They allow directly and fairly comparison between competing techniques and also the replication of experiments. These datasets need to be deeply understood by researchers: the answer for questions like "which bugs can my technique handle?" and "for which bugs is my technique effective?" depends on the comprehension of properties related to bugs and their patches. However, such properties are usually not included in the datasets, and there is still no widely adopted methodology for characterizing bugs and patches. In this work, we deeply study 395 patches of the Defects4J dataset. Quantitative properties (patch size and spreading) were automatically extracted, whereas qualitative ones (repair actions and patterns) were manually extracted using a thematic analysis-based approach. We found that 1) the median size of Defects4J patches is four lines, and almost 30 92 the top-3 most applied repair actions are addition of method calls, conditionals, and assignments, occurring in 77 repair patterns were found for 95 appearing in 43 useful for researchers to perform advanced analysis on their techniques' results based on Defects4J. Moreover, our set of properties can be used to characterize and compare different bug datasets.

READ FULL TEXT
research
12/21/2021

Elixir: Effective object-oriented program repair

This work is motivated by the pervasive use of method invocations in obj...
research
09/24/2020

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

Software refactoring aims at improving code quality while preserving the...
research
07/30/2018

Towards an automated approach for bug fix pattern detection

The characterization of bug datasets is essential to support the evaluat...
research
10/03/2018

FixMiner: Mining Relevant Fix Patterns for Automated Program Repair

Code comprehension is critical in software maintenance. Towards providin...
research
04/06/2021

A large-scale study on human-cloned changes for automated program repair

Research in automatic program repair has shown that real bugs can be aut...
research
06/21/2019

Harnessing Evolution for Multi-Hunk Program Repair

Despite significant advances in automatic program repair (APR)techniques...
research
11/30/2019

Validation of Automatically Generated Patches: An Appetizer

In the context of test case based automated program repair (APR), the re...

Please sign up or login with your details

Forgot password? Click here to reset