Testing concurrent programs is challenged by the interleaving explosion problem - the problem of exploring the large number of interleavings of program, even under a single test input. Rather than try all interleavings, we propose a testing tool for concurrent Java programs that tests the interleavings that violate atomicity: PENELOPE.
PENELOPE automatically transforms programs under test so that it can
monitor a run, predicts alternate schedules that violate atomicity
offline, and schedules them again to check for errors.
* This work was funded partly by the Universal Parallel Computing Research Center (UPCRC) at the University of Illinois at Urbana-Champaign, sponsored by Intel Corp. and Microsoft Corp, by NSF award #0747041, and by an NSERC Discovery Grant.