Sonia Cafieri, Jon Lee, et al.
Journal of Global Optimization
We describe ConTest, a tool for detecting synchronization faults in multithreaded Java™ programs. The program under test is seeded with a sleep(), yield(), or priority() primitive at shared memory accesses and synchronization events. At run time, ConTest makes random or coverage-based decisions as to whether the seeded primitive is to be executed. Thus, the probability of finding concurrent faults is increased. A replay algorithm facilitates debugging by saving the order of shared memory accesses and synchronization events.
Sonia Cafieri, Jon Lee, et al.
Journal of Global Optimization
Liat Ein-Dor, Y. Goldschmidt, et al.
IBM J. Res. Dev
S.M. Sadjadi, S. Chen, et al.
TAPIA 2009
M.F. Cowlishaw
IBM Systems Journal