Integrating formal methods and testing for concurrent programs

An abstract program is a formal specification that models the valid behavior of a concurrent program without describing particular implementation mechanisms that achieve this behavior. In this paper, we address the problem of how to select event sequences from an abstract program to test its concrete implementation. Sequencing constraints make explicit certain types of required properties that are expressed only implicitly by the abstract program itself. The sequencing constraints derived from an abstract program can be used to guide the selection of event sequences during testing: sequences are selected to check the implementation for conformance to the required properties. We describe a constraint notation called CSPE and formally define CSPE constraints in the propositional modal /spl mu/-calculus. CSPE constraints can be automatically derived from abstract CCS and Lotos programs. Test sequences can be generated to cover the constraints. We describe a test sequence generation tool that can be used to partially automate this process. The results of an empirical study of constraint-based testing are reported.

[1]  Gregg Rothermel,et al.  An experimental evaluation of selective mutation , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[2]  Richard H. Carver,et al.  Use of sequencing constraints for specifying, testing, and debugging concurrent programs , 1994, Proceedings of 1994 International Conference on Parallel and Distributed Systems.

[3]  L. Ferreira Pires,et al.  Protocol Design and Implementation Using Formal Methods , 1992, Comput. J..

[4]  Rance Cleaveland,et al.  The concurrency workbench: a semantics-based tool for the verification of concurrent systems , 1993, TOPL.

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

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

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

[8]  Richard Gerber,et al.  Compositional model checking of Ada tasking programs , 1994, Proceedings of COMPASS'94 - 1994 IEEE 9th Annual Conference on Computer Assurance.

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

[10]  Ana R. Cavalli,et al.  Automated Protocol Conformance Test Generation Based on Formal Methods for LOTOS Specifications , 1992, Protocol Test Systems.

[11]  Colin Stirling,et al.  An Introduction to Modal and Temporal Logics for CCS , 1991, Concurrency: Theory, Language, And Architecture.

[12]  P.H.J. van Eijk,et al.  The Lotosphere integrated tool environment lite , 1991 .