Large-scale software codebases are updated frequently by a large number of developers, leading to a large number of code revisions. It is difficult to identify the exact code revision at which an undesirable behavior (bug or culprit) was introduced, since there may be numerous subsequent changes to the codebase prior to detection of the undesirable behavior. This disclosure describes a general-purpose culprit finder that streamlines and automates the detection of a behavioral change to software code. In particular, the described techniques enable quick determination of the exact code revision that introduced a bug. An ad-hoc signal is defined that numerically represents a behavior of the software. Anomalies in the ad-hoc signal that arise between consecutive software revisions are indicative of the presence of a bug. An iterative N-ary search is performed by dividing the code revisions into N parts and testing the corresponding code revisions in parallel until the search interval includes just the one revision where the bug was first introduced.

Creative Commons License

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.