Isolating Failure-Inducing Thread Schedules

Consider a multi-threaded application that occasionally fails due to non-determinism. Using the DEJAVU capture/replay tool, it is possible to record the thread schedule and replay the application in a deterministic way. By systematically narrowing down the difference between a thread schedule that makes the program pass and another schedule that makes the program fail, the Delta Debugging approach can pinpoint the error location automatically -- namely, the location(s) where a thread switch causes the program to fail. In a case study, Delta Debugging isolated the failure-inducing schedule difference from 9 billion differences in only 50 tests.

By: Jong-Deok Choi, Andreas Zeller

Published in: Proceedings of the ACM SIGSOFT 2002 International Symposium on Software Testing and Analysis. , ACM. , p.210-20 in 2002

Please obtain a copy of this paper from your local library. IBM cannot distribute this paper externally.

Questions about this service can be mailed to reports@us.ibm.com .