Test sequence generation from formal specifications of distributed programs

An abstract program is a formal specification that describes the valid behavior of a distributed program without describing particular implementation mechanisms that achieve this behavior. Valid behavior can be modeled as the possible sequences of events that may be observed of a conforming concrete implementation of the abstract program. 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 an abstract program. The sequencing constraints derived from an abstract program can be used to guide the selection of event sequences during testing. We describe a constraint notation called CSPE and show how to achieve coverage and detect violations of abstract CSPE constraints. Abstract constraints address the problem of how to compare two programs written at different levels of abstraction. Results of an empirical study of CSPE-based testing are reported.

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

[2]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

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

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

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

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

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

[8]  Richard H. Carver,et al.  Mutation-based testing of concurrent programs , 1993, Proceedings of IEEE International Test Conference - (ITC).

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

[10]  R. H. Carver,et al.  Integrating formal methods and testing for concurrent programs , 1995, COMPASS '95 Proceedings of the Tenth Annual Conference on Computer Assurance Systems Integrity, Software Safety and Process Security'.

[11]  David C. Luckham,et al.  TSL: task sequencing language , 1985 .

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

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

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