On Godefroid's state-less search technique for testing concurrent programs

P. Godefroid (1997) developed a state-space exploration technique that does not store states in memory. This stateless search technique is effective for testing concurrent programs. It performs deterministic executions of a concurrent program by automatically controlling the execution of synchronization operations. This technique also uses partial order reduction methods to reduce the chance of executing two or more different totally-ordered paths with the same partial order. In this paper, we propose extensions to Godefroid's technique and compare it with other stateless search techniques for testing concurrent programs. Our empirical results indicate that a combination of stateless searching and a simple cycle prediction method is very cost-effective for detecting deadlocks and violations of assertions.

[1]  Patrice Godefroid,et al.  Partial-Order Methods for the Verification of Concurrent Systems , 1996, Lecture Notes in Computer Science.

[2]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[3]  Gerard J. Holzmann,et al.  Algorithms for Automated Protocol Validation , 1988 .

[4]  Gwan-Hwan Hwang,et al.  Reachability testing: an approach to testing concurrent software , 1994, Proceedings of 1st Asia-Pacific Software Engineering Conference.

[5]  Patrice Godefroid,et al.  Model checking for programming languages using VeriSoft , 1997, POPL '97.

[6]  Kuo-Chung Tai,et al.  An incremental approach to structural testing of concurrent software , 1996, ISSTA '96.

[7]  Gerard J. Holzmann Algorithms for automated protocol verification , 1990, AT&T Technical Journal.

[8]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[9]  Kuo-Chung Tai,et al.  Model Checking Based on Simultaneous Reachability Analysis , 2000, SPIN.

[10]  Hasan Ural,et al.  Protocol validation by simultaneous reachability analysis , 1997, Comput. Commun..

[11]  Hasan Ural,et al.  On improving reachability analysis for verifying progress properties of networks of CFSMs , 1998, Proceedings. 18th International Conference on Distributed Computing Systems (Cat. No.98CB36183).

[12]  K. C. Tai Race analysis of traces of asynchronous message-passing programs , 1997, Proceedings of 17th International Conference on Distributed Computing Systems.

[13]  Gerard J. Holzmann,et al.  State-space caching revisited , 1995, Formal Methods Syst. Des..

[14]  Mladen A. Vouk,et al.  Deadlock detection of EFSMs using simultaneous reachability analysis , 2000, Proceeding International Conference on Dependable Systems and Networks. DSN 2000.

[15]  Gregory R. Andrews,et al.  Foundations of Multithreaded, Parallel, and Distributed Programming , 1999 .

[16]  Doron A. Peled,et al.  Ten Years of Partial Order Reduction , 1998, CAV.

[17]  Richard N. Taylor,et al.  Structural Testing of Concurrent Programs , 1992, IEEE Trans. Software Eng..

[18]  Joan M. Francioni,et al.  Nondeterminancy: testing and debugging in message passing parallel programs , 1993, PADD '93.

[19]  Robert S. Hanmer,et al.  Model checking without a model: an analysis of the heart-beat monitor of a telephone switch using VeriSoft , 1998, ISSTA '98.

[20]  Kuo-Chung Tai,et al.  Reachability testing of asynchronous message-passing programs , 1997, Proceedings of PDSE '97: 2nd International Workshop on Software Engineering for Parallel and Distributed Systems.