Test-based Patch Clustering for Automatically-Generated Patches Assessment

07/22/2022
by   Matias Martinez, et al.
0

Previous studies have shown that Automated Program Repair (APR) techniques suffer from the overfitting problem. Overfitting happens when a patch is run and the test suite does not reveal any error, but the patch actually does not fix the underlying bug or it introduces a new defect that is not covered by the test suite. Therefore, the patches generated by APR tools need to be validated by human programmers, which can be very costly, and prevents APR tools adoption in practice.Our work aims at increasing developer trust in automated patch generation by minimizing the number of plausible patches that they have to review, thereby reducing the time required to find a correct patch. We introduce a novel light-weight test-based patch clustering approach called xTestCluster, which clusters patches based on their dynamic behavior. xTestCluster is applied after the patch generation phase in order to analyze the generated patches from one or more repair tools. The novelty of xTestCluster lies in using information from execution of newly generated test cases to cluster patches generated by multiple APR approaches. A cluster is formed with patches that fail on the same generated test cases. The output from xTestCluster gives developers a) a way of reducing the number of patches to analyze, as they can focus on analyzing a sample of patches from each cluster, b) additional information attached to each patch. After analyzing 1910 plausible patches from 25 Java APR tools, our results show that xTestCluster is able to reduce the number of patches to review and analyze with a median of 50 have to review the multitude of patches generated by APR tools, and provides them with new test cases that show the differences in behavior between generated patches.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/12/2019

iFixR: Bug Report driven Program Repair

Issue tracking systems are commonly used in modern software development ...
research
03/25/2020

Patch Quality and Diversity of Invariant-Guided Search-Based Program Repair

Most automatic program repair techniques rely on test cases to specify c...
research
07/28/2021

Checking Patch Behaviour against Test Specification

Towards predicting patch correctness in APR, we propose a simple, but no...
research
06/08/2020

ObjSim: Lightweight Automatic Patch Prioritization via Object Similarity

In the context of test case based automatic program repair (APR), patche...
research
03/31/2021

Exploring Plausible Patches Using Source Code Embeddings in JavaScript

Despite the immense popularity of the Automated Program Repair (APR) fie...
research
11/30/2019

Validation of Automatically Generated Patches: An Appetizer

In the context of test case based automated program repair (APR), the re...
research
12/14/2020

Fixing Multiple Type Errors in Model Transformations with Alternative Oracles to Test Cases

This paper addresses the issue of correcting type errors in model transf...

Please sign up or login with your details

Forgot password? Click here to reset