Case studies with Lurette V2

  • Erwan Jahier
  • Pascal Raymond
  • Philippe Baufreton
Special Section on Leveraging Applications of Formal Methods


Lurette is an automated testing tool dedicated to reactive programs. The test process is automated at two levels: given a formal description of the System Under Test (SUT) environment, Lurette generates realistic input sequences; and, given a formal description of expected properties, Lurette performs the test results analysis. Lurette has been re-implemented from scratch. In this new version, the main novelty lies in the way the SUT environment is described. This is done by means of a new language called Lucky, dedicated to the programming of probabilistic reactive systems. This article recalls the principles of Lurette, briefly presents the Lucky language, and describes some case studies from the IST project Safeair II. The objective is to illustrate the usefulness of Lurette on real case studies, and the expressiveness of Lucky in accurately describing SUT environments. We show in particular how Lurette can be used to test a typical fault-tolerant system; we also present case studies conducted with Hispano-Suiza and Renault.


Automated testing Tool environment Real-time embedded systems Reactive programs Synchronous languages Stochastic machines 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Benveniste A., Berry G. (1991) The synchronous approach to reactive and real-time systems. Proc. IEEE 79(9): 1270–1282CrossRefGoogle Scholar
  2. 2.
    Benveniste A. Constructive probability and the SIGNalea language: building and processes via programming. Technical Report RR-1532, INRIA (1991)Google Scholar
  3. 3.
    Bernardo M., Donatiello L., Ciancarini P. Stochastic process algebra: From an algebraic formalism to an architectural description language. In: Lecture Notes in Computer Science, vol. 2459, pp. 236–260 (2002)Google Scholar
  4. 4.
    Berry G., Gonthier G. (1992) The Esterel synchronous programming language: design, semantics, implementation. Sci. Comput. Program. 19(2): 87–152CrossRefGoogle Scholar
  5. 5.
    Bouali A. Xeve: an Esterel verification environment. In: Tenth International Conference on Computer-Aided Verification, CAV’98, Vancouver (B.C.), LNCS vol 1427. Springer, Berlin Heidelberg New York (1998)Google Scholar
  6. 6.
    Bousquet L., Ouabdesselam F., Richier J., Zuanon N. Lutess: testing environment for synchronous software (1998)Google Scholar
  7. 7.
    Derman C. Finite State Markovian Decision Processes. Academic New York (1970)Google Scholar
  8. 8.
    Dion B. Correct-by-construction methods for the development of safety-critical applications (2003)Google Scholar
  9. 9.
    Fernandez J.-C., Jard C., Jeron T., Viho C. (1997) An experiment in automatic generation of test suites for protocols with verification technology. Sci. Comput. Program. 29(1–2): 123–146CrossRefGoogle Scholar
  10. 10.
    Gaucher F., Jahier E. Maraninchi F., Jeannet B. Automatic state reaching for debugging reactive programs. In: AADEBUG, 5th International Workshop on Automated and Algorithmic Debugging. HAL – CCSd – CNRS (2003)Google Scholar
  11. 11.
    Gauthier T., Le Guernic P., Besnard L. Signal, a declarative language for synchronous programming of real-time systems. In: Proceedings 3rd Conference on Functional Programming Languages and Computer Architecture, LNCS vol. 274. Springer, Berlin Heidelberg New York (1987)Google Scholar
  12. 12.
    Halbwachs N., Caspi P., Raymond P., Pilaud D. (1991) The synchronous dataflow programming language lustre. Proc. IEEE 79(9): 1305–1320CrossRefGoogle Scholar
  13. 13.
    Halbwachs N., Caspi P., Raymond P., Pilaud D. (1991) The synchronous dataflow programming language lustre. Proc. IEEE 79(9): 1305–1320CrossRefGoogle Scholar
  14. 14.
    Halbwachs N., Lagnier F., Ratel C. Programming and verifying real-time systems by means of the synchronous data-flow programming language lustre. In: IEEE Transactions on Software Engineering, Special Issue on the Specification and Analysis of Real-Time Systems, pp. 785–793 (1992)Google Scholar
  15. 15.
    Halbwachs N., Lagnier F., Raymond P. Synchronous observers and the verification of reactive systems. In: Nivat M., Rattray C., Rus T., Scollo G. (eds.), Third International Conference on Algebraic Methodology and Software Technology, AMAST’93, Twente, June 1993. Workshops in Computing, Springer, Berlin Heidelberg New York (1993)Google Scholar
  16. 16.
    Jategaonkar Jagadeesan L., Porter A.A., Puchol C., Ramming J.C., Votta L.G.: Specification-based testing of reactive software: Tools and experiments (experience report). In: International Conference on Software Engineering, pp. 525–535 (1997)Google Scholar
  17. 17.
    Jahier E. The Lurette V2 User guide. Technical Report TR-2004-5, Verimag, 2004. Scholar
  18. 18.
    Jeannet B. Dynamic partitioning in linear relation analysis. Application to the verification of reactive systems. Formal Methods in System Design, 40 p. (2001)Google Scholar
  19. 19.
    Jeannet B. The Polka Convex Polyhedra library Edition 2.0, 2002. Scholar
  20. 20.
    Johnson C.W. (1993) A probabilistic logic for the development of safety-critical, interactive systems. Int. J. Man-Mach. Stud. 39(2): 333–351CrossRefGoogle Scholar
  21. 21.
    Jonsson B., Larsen K.G., Yi W. Probabilistic Extensions of Process Algebras. In: Handbook of Process Algebras, pp. 685–710. Elsevier, North Holland (2001)Google Scholar
  22. 22.
    Lamport L. (1977) Proving the correctness of multiprocess programs. IEEE Trans. Softw. Eng. SE- 3(2): 125–143MathSciNetGoogle Scholar
  23. 23.
    LeGuernic P., Benveniste A., Bournai P., Gautier T. (1986) Signal, a data flow oriented language for signal processing. IEEE-ASSP, 34(2): 362–374Google Scholar
  24. 24.
    Lynch N.A., Tuttle M.R. (1989) An introduction to Input/Output automata. CWI Q. 2(3): 219–246MathSciNetGoogle Scholar
  25. 25.
    Müllerburg M., Holenderski L., Maffeis O. (1995) Systematic testing and formal verification to validate reactive programs. Softw. Qual. J. 4(4): 287–307CrossRefGoogle Scholar
  26. 26.
    Raymond P., Roux Y. Describing non-deterministic reactive systems by means of regular expressions. In: First Workshop on Synchronous Languages, Applications and Programming, SLAP’02, Grenoble, April (2002)Google Scholar
  27. 27.
    Raymond P., Weber D., Nicollin X., Halbwachs N. Automatic testing of reactive systems. In: 19th IEEE Real-Time Systems Symposium, Madrid (1998)Google Scholar
  28. 28.
    Somenzi F. CUDD: CU Decision Diagram Package Release 2.3.0 (1998)Google Scholar
  29. 29.
    Thevenod-Fosse P., Mazuet C., Crouzet Y. On statistical testing of synchronous data flow programs. In: 1st European Dependable Computing Conference (EDCC-1), pp. 250–67, Germany (1994)Google Scholar
  30. 30.
    Wu S.-H., Smolka S.A., Stark E.W. (1997) Composition and behaviors of probabilistic I/O automata. Theor. Comput. Sci. 176 (1–2): 1–38CrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag 2006

Authors and Affiliations

  • Erwan Jahier
    • 1
  • Pascal Raymond
    • 1
  • Philippe Baufreton
    • 2
  1. 1.VERIMAGCNRS-GrenobleGrenobleFrance
  2. 2.Hispano Suiza-Moissy CramayelMoissy CramayelFrance

Personalised recommendations