Convergence Debugging is a fully automated debugging
method which measures the debugging effectiveness of a subset of
the executed test set with respect to its convergence on the internal
control and data of the failure-causing test case. The highly-concentrated
testing involved in Convergence Debugging could be seen as the opposite
of Diversity Testing. In particular, Diversity Testing is used to
find dispersed faults in the program, while the test cases selected
in Convergence Debugging are used to find closely-related test cases
to the one that detected a fault. However, the converging test cases
should also show diversity of control and data in the vicinity of
the control and data involved in the failed test case, in order
to expose related but distinct failures, and also, related but distinct
successful executions. Without assuring diversity in the vicinity
of a failure, the internal control and data of the program could
be identical for all of the debug test cases. Such undiversified
debug test cases would not provide any significant debugging information.
The differences between the failure-causing test case and the diversified,
converging test cases could then be used to analyze the root cause
of failures.
For more information on Convergence
Debugging go to convergence.