Automatic testing of reactive systems

The paper addresses the problem of automatizing the production of test sequences for reactive systems. We particularly focus on two points: (1) generating relevant inputs, with respect to some knowledge about the environment in which the system is intended to run; (2) checking the correctness of the test results, according to the expected behavior of the system. We propose to use synchronous observers to express both the relevance and the correctness of the test sequences. In particular, the relevance observer is used to randomly choose inputs satisfying temporal assumptions about the environment. These assumptions may involve both Boolean and linear numerical constraints. A prototype tool called LURETTE has been developed and experimented with, which works on observers written in the LUSTRE programming language.

[1]  Amir Pnueli,et al.  On the Development of Reactive Systems , 1989, Logics and Models of Concurrent Systems.

[2]  Claude Jard,et al.  Using On-the--y Veriication Techniques for the Generation of Test Suites Using On-the--y Veriication Techniques for the Generation of Test Suites , 2007 .

[3]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[4]  Richard A DeMillo Mutation Analysis as a Tool for Software Quality Assurance. , 1980 .

[5]  Duncan Clarke,et al.  Testing Real-Time Constraints in a Process Algebraic Setting , 1995, 1995 17th International Conference on Software Engineering.

[6]  Yves Crouzet,et al.  On Statistical Structural Testing of Synchronous Data Flow Programs , 1994, EDCC.

[7]  Nicolas Halbwachs,et al.  Synchronous Observers and the Verification of Reactive Systems , 1993, AMAST.

[8]  Albert Benveniste,et al.  Signal-A data flow-oriented language for signal processing , 1986, IEEE Trans. Acoust. Speech Signal Process..

[9]  Thierry Jéron,et al.  Using On-The-Fly Verification Techniques for the Generation of test Suites , 1996, CAV.

[10]  N. V. Chernikoba Algorithm for discovering the set of all the solutions of a linear programming problem , 1968 .

[11]  Sheldon B. Akers,et al.  Binary Decision Diagrams , 1978, IEEE Transactions on Computers.

[12]  Sandro Morasca,et al.  Generating functional test cases in-the-large for time-critical systems from logic-based specifications , 1996, ISSTA '96.

[13]  H. Le Verge,et al.  A Note on Chernikova's algorithm , 1992 .

[14]  Nicolas Halbwachs,et al.  Programming and verifying critical systems by means of the synchronous data-flow language LUSTRE , 1991 .

[15]  H. L. Verge A Note on Chernikova's algorithm , 1992 .

[16]  Nicolas Halbwachs,et al.  Programming and Verifying Real-Time Systems by Means of the Synchronous Data-Flow Language LUSTRE , 1992, IEEE Trans. Software Eng..

[17]  BerryGérard,et al.  The ESTEREL synchronous programming language , 1992 .

[18]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[19]  Nicolas Halbwachs,et al.  LUSTRE: A declarative language for programming synchronous systems* , 1987 .

[20]  Adam A. Porter,et al.  Specification-based Testing of Reactive Software: Tools and Experiments Experience Report , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[21]  Ioannis Parissis,et al.  Testing synchronous critical software , 1994, Proceedings of 1994 IEEE International Symposium on Software Reliability Engineering.

[22]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..