Cleve and Zeller [1]} proposed an interventional approach to fault localization based on cause transitions, points in time where a variable starts to become the cause of failure, and they showed how delta debugging [2]} can be used to find them. Jeffrey et al. [3]} presented a value-based fault localization technique called value replacement, which searches for program statements whose execution can be intervened upon to change incorrect program output to correct output. Similarly, earlier work by Zhang et al. introduced predicate switching[4]}, which searches predicates that are executed by failing tests and whose outcomes can be altered to make the program succeed. Johnson et al. [5]} present an approach to “causal testing”, in which input fuzzing is used to generate passing and failing tests that are similar to an original failing test. The generated tests are then used to pinpoint failures. The aforementioned techniques each require a complete or partial test oracle. Furthermore, they also entail possibly costly repeated runs of subject programs and searches among them, while UniVal does not require any oracle or repeated runs of subject programs.
