Finding Regressions in Projects under Version Control Systems
Jaroslav Bendik, Nikola Benes, Ivana Cerna

TL;DR
This paper introduces a new algorithm for identifying regression points in version control systems that reduces the number of correctness queries and effectively finds the latest regression points, outperforming existing tools like git bisect.
Contribution
The paper presents a novel regression identification algorithm that decreases query costs and improves detection of the latest regression points compared to current methods.
Findings
Outperforms git bisect in reducing validation queries
More effective at locating the latest regression points
Validated through experiments on real datasets
Abstract
Version Control Systems (VCS) are frequently used to support development of large-scale software projects. A typical VCS repository of a large project can contain various intertwined branches consisting of a large number of commits. If some kind of unwanted behaviour (e.g. a bug in the code) is found in the project, it is desirable to find the commit that introduced it. Such commit is called a regression point. There are two main issues regarding the regression points. First, detecting whether the project after a certain commit is correct can be very expensive as it may include large-scale testing and/or some other forms of verification. It is thus desirable to minimise the number of such queries. Second, there can be several regression points preceding the actual commit; perhaps a bug was introduced in a certain commit, inadvertently fixed several commits later, and then reintroduced…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Testing and Debugging Techniques · Software System Performance and Reliability
