Structural coverage criteria for LUSTRE-SCADE programs

LUSTRE is a data-flow synchronous language, on which is based the SCADE tool-suite, widely used for specifying and programming critical reactive applications in the areas of avionics, energy or transport. Therefore, testing LUSTRE programs, that is, generating test data and assessing the achieved test coverage, is a major issue. Usual control-flow-based test coverage criteria (statement coverage, branch coverage, etc.) are not relevant for LUSTRE programs. In this paper, a new hierarchy of adequacy criteria tailored to the LUSTRE language is presented. These criteria are defined on operator networks, which are usual models for LUSTRE programs. The criteria satisfaction measure is automated in LUSTRUCTU, a non-intrusive tool (no instrumentation of the code), based on the symbolic computation of path activation conditions. The applicability and the relevance of the criteria are assessed on a case study. Copyright © 2008 John Wiley & Sons, Ltd. SCADE is a Registered Trademark of ESTEREL TECHNOLOGIES.

[1]  Lori A. Clarke,et al.  Partition Analysis: A Method Combining Testing and Verification , 1985, IEEE Transactions on Software Engineering.

[2]  Tsong Yueh Chen,et al.  Test case selection strategies based on Boolean specifications ‡ , 2001, Softw. Test. Verification Reliab..

[3]  Lee J. White,et al.  A Domain Strategy for Computer Program Testing , 1980, IEEE Transactions on Software Engineering.

[4]  Virginie Wiels,et al.  Automated functional test case generation from data flow specifications using structural coverage criteria , 2006 .

[5]  Janusz W. Laski,et al.  A Data Flow Oriented Program Testing Strategy , 1983, IEEE Transactions on Software Engineering.

[6]  Nicolas Halbwachs,et al.  From a Synchronous Declarative Language to a Temporal Logic Dealing with Multiform Time , 1988, FTRTFT.

[7]  Jonathan P. Bowen,et al.  Reinforced Condition/Decision Coverage (RC/DC): A New Criterion for Software Testing , 2002, ZB.

[8]  Martin R. Woodward,et al.  Experience with Path Analysis and Testing of Programs , 1980, IEEE Transactions on Software Engineering.

[9]  Simeon C. Ntafos,et al.  An evaluation of required element testing strategies , 1984, ICSE '84.

[10]  R.A. DeMillo,et al.  Test Adequacy And Program Mutation , 1989, 11th International Conference on Software Engineering.

[11]  Thierry Gautier,et al.  Programming real-time applications with SIGNAL , 1991, Proc. IEEE.

[12]  Jonathan P. Bowen,et al.  Formalization of software testing criteria using the Z notation , 2001, 25th Annual International Computer Software and Applications Conference. COMPSAC 2001.

[13]  Boris Beizer,et al.  Software Testing Techniques , 1983 .

[14]  Tsun S. Chow,et al.  Testing Software Design Modeled by Finite-State Machines , 1978, IEEE Transactions on Software Engineering.

[15]  Bruno Marre,et al.  Test sequences generation from LUSTRE descriptions: GATEL , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[16]  Steven P. Miller,et al.  Applicability of modified condition/decision coverage to software testing , 1994, Softw. Eng. J..

[17]  Richard J. Lipton,et al.  Theoretical and empirical studies on using program mutation to test the functional correctness of programs , 1980, POPL '80.

[18]  Kuo-Chung Tai Predicate-based test generation for computer programs , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[19]  Lori A. Clarke,et al.  A Formal Evaluation of Data Flow Path Selection Criteria , 1989, IEEE Trans. Software Eng..

[20]  Amit Paradkar,et al.  Specification‐based testing using cause‐effect graphs , 1997, Ann. Softw. Eng..

[21]  Nicolas Halbwachs,et al.  LUSTRE: a declarative language for real-time programming , 1987, POPL '87.

[22]  Abdesselam Lakehal,et al.  Structural test coverage criteria for lustre programs , 2005, FMICS '05.

[23]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

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

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

[26]  Ioannis Parissis,et al.  Specification-based testing of synchronous software , 1996, SIGSOFT '96.

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

[28]  Ioannis Parissis,et al.  Thoroughness of specification-based testing of synchronous programs , 2003, 14th International Symposium on Software Reliability Engineering, 2003. ISSRE 2003..

[29]  Albert Benveniste,et al.  The synchronous approach to reactive and real-time systems , 1991 .

[30]  William E. Howden,et al.  Weak Mutation Testing and Completeness of Test Sets , 1982, IEEE Transactions on Software Engineering.

[31]  S. Rao Kosaraju Analysis of Structured Programs , 1974, J. Comput. Syst. Sci..

[32]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[33]  Nicolas Halbwachs,et al.  Automatic testing of reactive systems , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

[34]  Abdesselam Lakehal,et al.  Lustructu: a tool for the automatic coverage assessment of Lustre programs , 2005, 16th IEEE International Symposium on Software Reliability Engineering (ISSRE'05).