Integrating formal verification and conformance testing for reactive systems

Camille Constant, Thierry Jéron, Hervé Marchand, Vlad Rusu. Integrating formal verification and conformance testing for reactive systems. IEEE Trans. Software Eng., 33(8):558-574, 2007. [doi]

Abstract

In this paper, we describe a methodology integrating verification and conformance testing. A specification of a system— an extended input-output automaton, which may be infinite-state—and a set of safety properties (“nothing bad ever happens”) and possibility properties (“something good may happen”) are assumed. The properties are first tentatively verified on the specification using automatic techniques based on approximated state-space exploration, which are sound, but, as a price to pay for automation, are not complete for the given class of properties. Because of this incompleteness and of state-space explosion, the verification may not succeed in proving or disproving the properties. However, even if verification did not succeed, the testing phase can proceed and provide useful information about the implementation. Test cases are automatically and symbolically generated from the specification and the properties and are executed on a black-box implementation of the system. The test execution may detect violations of conformance between implementation and specification; in addition, it may detect violation/satisfaction of the properties by the implementation and by the specification. In this sense, testing completes verification. The approach is illustrated on simple examples and on a Bounded Retransmission Protocol.

Available at http://hal.inria.fr/docs/00/42/29/04/PDF/2007-IEEE-TSE.pdf