Bisection (software engineering)
Code 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.
Overview
The code bisection method depends on the having access to the code history which is usually preserved by revision control in a code repository.
The Bisection Method
With code history having the properties of an acyclic directed graph it is possible to iteratively split the search space, test for the behavior in question and depending on the result reducing the search space for the next iteration step.
For code bisection it is desirable that each revision in the search space can be compiled and tested independently.
Support by Revision Control Systems
Some revision control systems like Git or Mercurial directly support [1][2] the code bisection method.