This Article 
 Bibliographic References 
 Add to: 
Replay and Testing for Concurrent Programs
March/April 1991 (vol. 8 no. 2)
pp. 66-74

Attention is given to the problems that arise during the testing and debugging cycle of concurrent programs because of their nondeterministic execution behavior, whereby multiple executions of a concurrent program with the same input may exercise different synchronization sequences and even produce different results. These problems are solved by using deterministic execution debugging and testing. The purpose of deterministic execution debugging to to replay executions of a concurrent program so that debugging information can be collected. Examples of semaphores and monitors are used to illustrate the approach and the process of designing replay tubes is described. The use of regression testing to see if earlier debugging and testing introduced new errors, is examined.

Index Terms:
concurrent programs; debugging cycle; nondeterministic execution behavior; multiple executions; synchronization sequences; deterministic execution debugging; debugging information; semaphores; monitors; replay tubes; regression testing; parallel programming; program debugging; program testing
Richard H. Carver, Kuo-Chung Tai, "Replay and Testing for Concurrent Programs," IEEE Software, vol. 8, no. 2, pp. 66-74, March-April 1991, doi:10.1109/52.73751
Usage of this product signifies your acceptance of the Terms of Use.