Use of sequencing constraints for specifying, testing, and debugging concurrent programs

This paper introduces the use of sequencing constraints for specifying, testing, and debugging concurrent programs. An execution of a concurrent program P nondeterministically exercises a sequence of synchronization events, called a synchronization sequence (or SYN-sequence). Sequencing constraints (or constraints) specify restrictions on the allowed SYN-sequences of P. Constraints for P are derived from a formal or informal specification of P and do not have to be complete. The SYN-sequences collected during nondeterministic testing of P can be used to measure coverage and detect violations of P's constraints. Also, SYN-sequences can be generated according to P's constraints and used for deterministic testing of P. This paper shows in detail how to accomplish coverage and detect violations of constraints written in CSPE (Constraints on Succeeding and Preceding Events) by nondeterministic and deterministic testing.

[1]  Luís Ferreira Pires,et al.  What Makes Industries Believe in Formal Methods , 1993, PSTV.

[2]  R. Carver,et al.  Deterministic execution testing of concurrent Ada programs , 1989, TRI-Ada '89.

[3]  Richard H. Carver,et al.  Debugging Concurrent Ada Programs by Deterministic Execution , 1991, IEEE Trans. Software Eng..

[4]  Gerard J. Holzmann,et al.  Design and validation of computer protocols , 1991 .

[5]  David S. Rosenblum Specifying concurrent systems with TSL , 1991, IEEE Software.

[6]  Boris Beizer,et al.  Rebuttal of the book review by R. Whitty of ‘Software Testing Techniques’ (2nd edn) , 1994, Softw. Test. Verification Reliab..

[7]  K. Tai,et al.  A Specification-Based Methology for Testing Concurrent Programs , 1995, ESEC.

[8]  Richard H. Carver,et al.  Static analysis of concurrent software for deriving synchronization constraints , 1991, [1991] Proceedings. 11th International Conference on Distributed Computing Systems.

[9]  Richard H. Carver,et al.  Replay and testing for concurrent programs , 1991, IEEE Software.

[10]  Thomas J. LeBlanc,et al.  Debugging Parallel Programs with Instant Replay , 1987, IEEE Transactions on Computers.

[11]  Kuo-Chung Tai Predicate-based test generation for computer programs , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[12]  Marten van Sinderen,et al.  Specification Styles in Distributed Systems Design and Verification , 1991, Theor. Comput. Sci..

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

[14]  R.-D. Yang,et al.  Path analysis testing of concurrent programs , 1992, Inf. Softw. Technol..

[15]  David Luckham,et al.  TSL: task sequencing language , 1985, SIGAda '85.