Fonte: Finding Bug Inducing Commits from Failures

12/13/2022
by   Gabin An, et al.
0

A Bug Inducing Commit (BIC) is a commit that introduces a software bug into the codebase. Knowing the relevant BIC for a given bug can provide valuable information for debugging as well as bug triaging. However, existing BIC identification techniques are either too expensive (because they require the failing tests to be executed against previous versions for bisection) or inapplicable at the debugging time (because they require post hoc artefacts such as bug reports or bug fixes). We propose Fonte, an efficient and accurate BIC identification technique that only requires test coverage. Fonte combines Fault Localisation (FL) with BIC identification and ranks commits based on the suspiciousness of the code elements that they modified. Fonte reduces the search space of BICs using failure coverage as well as a filter that detects commits that are merely style changes. Our empirical evaluation using 130 real-world BICs shows that Fonte significantly outperforms state-of-the-art BIC identification techniques based on Information Retrieval as well as neural code embedding models, achieving at least 39 ranking scores produced by Fonte can be used to perform weighted bisection, further reducing the cost of BIC identification. Finally, we apply Fonte to a large-scale industry project with over 10M lines of code, and show that it can rank the actual BIC within the top five commits for 87 batch-testing failures, and save the BIC inspection cost by 32

READ FULL TEXT

page 1

page 8

research
11/16/2020

Automatically Repairing Programs Using Both Tests and Bug Reports

The success of automated program repair (APR) depends significantly on i...
research
10/31/2018

Making root cause analysis feasible for large code bases: a solution approach for a climate model

Applications that simulate complex physical processes can be composed of...
research
08/22/2017

Finding Regressions in Projects under Version Control Systems

Version Control Systems (VCS) are frequently used to support development...
research
09/23/2022

Large Language Models are Few-shot Testers: Exploring LLM-based General Bug Reproduction

Many automated test generation techniques have been developed to aid dev...
research
08/29/2019

Analyzing the Context of Bug-Fixing Changes in the OpenStack Cloud Computing Platform

Many research areas in software engineering, such as mutation testing, a...
research
01/14/2021

GloBug: Using Global Data in Fault Localization

Fault Localization (FL) is an important first step in software debugging...
research
02/28/2022

ApacheJIT: A Large Dataset for Just-In-Time Defect Prediction

In this paper, we present ApacheJIT, a large dataset for Just-In-Time de...

Please sign up or login with your details

Forgot password? Click here to reset