Isolating Failure Causes Through Test Case Generation
Manual debugging is driven by experiments - test runs that narrow down failure causes by systematically confirming or excluding individual factors. The BUGEX approach leverages test case generation to systematically isolate such causes from a single failing test run - causes such as properties of execution states or branches taken that correlate with the failure. Identifying these causes allows for deriving conclusions as: "The failure occurs whenever the daylight savings time starts at midnight local time." In the authors' evaluation, a prototype of BUGEX precisely pinpointed important failure explaining facts for six out of seven real-life bugs.