Bisection (software engineering)
Bisection is a method used in software development to identify change sets that result in a specific behavior change. It is mostly employed for finding the patch that introduced a bug. Another application area is finding the patch that indirectly fixed a bug.
Code bisection has the goal of minimizing the effort to find a specific change set.
Code bisection algorithm
- splits up the search space of candidate revisions
- tests for the behavior in question
- reduces the search space depending on the test result
- re-iterates the steps above until a range with at most one bisectable patch candidate remains
Desirable repository properties
For code bisection it is desirable that each revision in the search space can be built and tested independently.
Support by revision control systems
Support by other systems
- Phoronix Test Suite can do bisection automatically to find performance regressions
- "git-bisect(1)". Kernel.org. 2012-05-09. Retrieved 2017-01-09.
- "hg". Selenic.com. Retrieved 2017-01-09.
- "bisect - Find the revision introducing a bug using a binary search — Bazaar 2.8.0dev1 documentation". Doc.bazaar.canonical.com. Retrieved 2017-01-09.
- "svn-bisect". Metacpan.org. Retrieved 2017-01-09.