Skip to main content
Log in

Systematic testing and formal verification to validate reactive programs

  • Papers
  • Published:
Software Quality Journal Aims and scope Submit manuscript

Abstract

The use of systematic testing and formal verification in the validation of reactive systems implemented in synchronous languages is illustrated. Systematic testing and formal verification are two techniques for checking the consistency between a program and its specification. The approach to validation is through specification: two system views are developed in addition to the program, a behavioural specification for systematic testing and a logical specification for formal verification. Pursuing both activities, reactive programs can be validated both more efficiently (in terms of costs) and more effectively (in terms of confidence in correctness). This principle is demonstrated here using the well known lift example.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Benveniste, A. (1994) Synchronous languages provide safety in reactive systems design. Control Engineering September, 87–89.

  • BenvenisteA. and BerryG. (1991) The synchronous approach to reactive and real-time systems. Proceedings of the IEEE 79(9) pp. 1270–1282.

    Google Scholar 

  • Bochmann, von G. and Petrenko, A. (1994) Protocol testing: review of methods and relevance for software testing. In Software Engineering Notes, special issue, Proc. of the 1994 International Symposium on Software Testing and Analysis (ISSTA), Association for Computing Machinery (ACM), pp. 109–124.

  • ClarkeE.M., EmersonE.A. and SistlaA.P. (1986) Automatic verification of finite-state concurrent systems using temporal logic specifications. ACM Trans. Programming Languages 8(2), pp. 244–263.

    Google Scholar 

  • Halbwachs, N. (1993a) A Tutorial of LUSTRE, available by anonymous ftp from imag.imag.fr as file /ftp/pub/ LUSTRE/tutorial.ps, 19 pages.

  • HalbwachsN. (1993b) Synchronous Programming of Reactive Systems (Kluwer Academic, Dordrecht).

    Google Scholar 

  • HalbwachsN., LagnierF. and RatelC. (1992) ‘Programming and verifying real-time systems by means of the synchronous data-flow language LUSTRE’. IEEE Trans. on Software Engineering 18(9) 785–793.

    Google Scholar 

  • HarelD. and PnueliA. (1985) On the development of reactive systems’. In Logic and Models of Concurrent Systems, AptK. R. (ed.) (Springer-Verlag, Berlin) pp. 477–498.

    Google Scholar 

  • LeGuernicP., GautierT., LeBorgneM. and LeMaireC., (1991) Programming real-time applications with Signal. Proceedings of the IEEE, 79(9) 1321–1336.

    Google Scholar 

  • Liggesmeyer, P. (1995) A set of complexity metrics for guiding the software test process, in this issue.

  • McMillanK.L. (1993) Symbolic Model Checking (Kluwer Academic Publishers, Boston).

    Google Scholar 

  • MüllerburgM. (1993) Formalising testing concepts. In KellyM. (ed) Management and Measurement of Software Quality, UNICOM Applied Information Technology Series, Ashgate Publishing Ltd., Aldershot, UK, pp. 155–166.

    Google Scholar 

  • Müllerburg, M. (1994) ‘Why systematic testing is difficult: the problem of the sample’. In Miller, E. (ed.) Proc. of the Seventh International Software Quality Week, Software Research, San Francisco.

  • Müllerburg, M. (1995) ‘Systematic testing: a means for validating reactive systems’, (reprinted from EuroSTAR'94) in Software Testing, Verification, and Reliability 4(3).

  • Pilaud, D. and Halbwachs, N. (1988) From a synchronous declarative language to a temporal logic dealing with multiform time. In Formal Techniques in Real-Time and Fault-Tolerant Systems, Joseph, M. (ed.), Lecture Notes in Computer Science, 331 (Springer Verlag).

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Müllerburg, M., Holenderski, L., Maffeis, O. et al. Systematic testing and formal verification to validate reactive programs. Software Qual J 4, 287–307 (1995). https://doi.org/10.1007/BF00402649

Download citation

  • Received:

  • Revised:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00402649

Keywords

Navigation