We are excited to announce that our paper “Fonte: Finding Bug Inducing Commits from Failures” has been accepted at ICSE 2023. This work builds upon our previous research on Reducing the Search Space of Bug Inducing Commits (BICs) Using Failure Coverage, and introduces new techniques for quantifying the suspiciousness of commits instead of simply reducing search space.

In this paper, we present a novel approach for identifying BICs by combining Fault Localization (FL) and commit history mining. Our approach is based on the simple idea that

A commit is more likely to be a BIC if it introduced or modified code that is relevant to a given failure.

We measure the relevancy of code elements to the failure using FL techniques, and define a voting system where each code element “votes” for the commits that introduced or modified it. The voting power of a code element is based on its FL ranking, and decayed for older commits as we hypothesise that older commits are less likely to be responsible for the currently observed failure.

Fonte voting

We also proposed a weighted bisection algorithm to use the commit suspiciousness scores from Fonte effectively. In weighted bisection, a search pivot is set to a commit that will halve the amount of remaining commit scores, not the number of the remaining commits.

We evaluated our approach using 130 bugs from Defects4J and found that FONTE achieved a mean reciprocal rank (MRR) of 0.528 outperforming existing state-of-the-art techniques. Weighted bisection with Fonte can also reduce the bisection cost significantly!

If you’re interested in this work and want to see more results, please check out the preprint on arXiv. We’re looking forward to presenting our work at ICSE 2023!