A Bayesian Framework for Automated Debugging

12/28/2022
by   Sungmin Kang, et al.
0

Debugging takes up a significant portion of developer time. As a result, automated debugging techniques including Fault Localization (FL) and Automated Program Repair (APR) have garnered significant attention due to their potential to aid developers in debugging tasks. Despite intensive research on these subjects, we are unaware of a theoretic framework that highlights the principles behind automated debugging and allows abstract analysis of techniques. Such a framework would heighten our understanding of the endeavor and provide a way to formally analyze techniques and approaches. To this end, we first propose a Bayesian framework of understanding automated repair and find that in conjunction with a concrete statement of the objective of automated debugging, we can recover maximal fault localization formulae from prior work, as well as analyze existing APR techniques and their underlying assumptions. As a means of empirically demonstrating our framework, we further propose BAPP, a Bayesian Patch Prioritization technique that incorporates intermediate program values to analyze likely patch locations and repair actions, with its core equations being derived by our Bayesian framework. We find that incorporating program values allows BAPP to identify correct patches more precisely: when applied to the patches generated by kPAR, the rankings produced by BAPP reduce the number of required patch validation by 68 reduce the repair time by 34 minutes on average. Further, BAPP improves the precision of FL, increasing acc@5 on the studied bugs from 8 to 11. These results highlight the potential of value-cognizant automated debugging techniques, and further validates our theoretical framework. Finally, future directions that the framework suggests are provided.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
06/05/2019

Restore: Retrospective Fault Localization Enhancing Automated Program Repair

Fault localization is a crucial step of automated program repair, becaus...
research
04/09/2021

Self-Boosted Automated Program Repair

Program repair is an integral part of every software system's life-cycle...
research
12/18/2018

You Cannot Fix What You Cannot Find! An Investigation of Fault Localization Bias in Benchmarking Automated Program Repair Systems

Properly benchmarking Automated Program Repair (APR) systems should cont...
research
04/24/2023

ITER: Iterative Neural Repair for Multi-Location Patches

Automated program repair (APR) has achieved promising results, especiall...
research
09/15/2020

PRF: A Framework for Building Automatic Program Repair Prototypes for JVM-Based Languages

PRF is a Java-based framework that allows researchers to build prototype...
research
07/22/2020

Fast and Precise On-the-fly Patch Validation for All

Generate-and-validate (G V) automated program repair (APR) techniques ...

Please sign up or login with your details

Forgot password? Click here to reset