Asynchronous Testing of Synchronous Components in GALS Systems

GALS (Globally Asynchronous Locally Synchronous) systems, such as the Internet of Things or autonomous cars, integrate reactive synchronous components that interact asynchronously. The complexity induced by combining synchronous and asynchronous aspects makes GALS systems difficult to develop and debug. Ensuring their functional correctness and reliability requires rigorous design methodologies, based on formal methods and assisted by validation tools. In this paper we propose a testing methodology for GALS systems integrating: (1) synchronous and asynchronous concurrent models; (2) functional unit testing and behavioral conformance testing; and (3) various formal methods and their tool equipments. We leverage the conformance test generation for asynchronous systems to automatically derive realistic scenarios (input constraints and oracle), which are necessary ingredients for the unit testing of individual synchronous components, and are difficult and error-prone to design manually. We illustrate our approach on a simple, but relevant example inspired by autonomous cars.

[1]  Mohammad Reza Mousavi,et al.  Synchrony and asynchrony in conformance testing , 2012, Software & Systems Modeling.

[2]  Ingolf Krüger,et al.  A Verification Approach for GALS Integration of Synchronous Components , 2005, FMGALS@MEMOCODE.

[3]  Hubert Garavel,et al.  Verification of GALS Systems by Combining Synchronous Languages and Process Calculi , 2009, SPIN.

[4]  Nicolas Halbwachs,et al.  Synchronous Programming of Reactive Systems , 1992, CAV.

[5]  Nicolas Halbwachs,et al.  Engineering functional requirements of reactive systems using synchronous languages , 2013, 2013 8th IEEE International Symposium on Industrial Embedded Systems (SIES).

[6]  Florian Lorber Model-Based Mutation Testing of Synchronous and Asynchronous Real-Time Systems , 2015, 2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST).

[7]  Christophe Gaston,et al.  Symbolic Model Based Testing for Component Oriented Systems , 2007, TestCom/FATES.

[8]  Guy Lemieux,et al.  A Survey and Taxonomy of GALS Design Styles , 2007, IEEE Design & Test of Computers.

[9]  Radu Mateescu,et al.  Formal modelling and verification of GALS systems using GRL and CADP , 2016, Formal Aspects of Computing.

[10]  Pascal Raymond,et al.  Lutin: A Language for Specifying and Executing Reactive Scenarios , 2008, EURASIP J. Embed. Syst..

[11]  Radu Mateescu,et al.  XTL: A Meta-Language and Tool for Temporal Logic Model-Checking , 1998 .

[12]  Radu Mateescu,et al.  CADP 2011: a toolbox for the construction and analysis of distributed processes , 2012, International Journal on Software Tools for Technology Transfer.

[13]  Stefan Milius,et al.  On the Formal Verification of Systems of Synchronous Software Components , 2012, SAFECOMP.

[14]  Daniel Marcos Chapiro,et al.  Globally-asynchronous locally-synchronous systems , 1985 .

[15]  Vijay D'Silva,et al.  A Toolset for Modelling and Verification of GALS Systems , 2004, CAV.

[16]  Nicolas Halbwachs,et al.  Simulation and Verification of Asynchronous Systems by means of a Synchronous Model , 2006, ACSD.

[17]  Fatma Jebali,et al.  Formal Framework for Modelling and Verifying Globally Asynchronous Locally Synchronous Systems. (Un environnement formel pour modéliser et vérifier les systèmes globalement asynchrones et localement synchrones) , 2016 .

[18]  Radu Mateescu,et al.  TESTOR: A Modular Tool for On-the-Fly Conformance Test Case Generation , 2018, TACAS.

[19]  Robin Milner,et al.  Calculi for Synchrony and Asynchrony , 1983, Theor. Comput. Sci..

[20]  Wang Yi,et al.  UPPAAL - present and future , 2001, Proceedings of the 40th IEEE Conference on Decision and Control (Cat. No.01CH37228).

[21]  Alexandre Petrenko,et al.  Generating Complete and Finite Test Suite for ioco: Is It Possible? , 2014, MBT.

[22]  Gérard Berry SCADE: Synchronous Design and Validation of Embedded Control Software , 2007 .

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

[24]  Jan Tretmans,et al.  Conformance Testing with Labelled Transition Systems: Implementation Relations and Test Generation , 1996, Comput. Networks ISDN Syst..

[25]  Thierry Jéron,et al.  A tool for the automatic synthesis of conformance test cases for non-deterministic reactive systems , 2005 .

[26]  Richard N. Taylor,et al.  Structural Testing of Concurrent Programs , 1992, IEEE Trans. Software Eng..

[27]  Danil Sokolov,et al.  A Structured Visual Approach to GALS Modeling and Verification of Communication Circuits , 2017, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[28]  Frédéric Lang,et al.  From LOTOS to LNT , 2017, ModelEd, TestEd, TrustEd.

[29]  Jean-Christophe Le Lann,et al.  POLYCHRONY for System Design , 2003, J. Circuits Syst. Comput..

[30]  Shin Nakajima,et al.  The SPIN Model Checker : Primer and Reference Manual , 2004 .

[31]  Pascal Raymond,et al.  Case studies with Lurette V2 , 2004, International Journal on Software Tools for Technology Transfer.

[32]  Holger Hermanns,et al.  Model-Based Testing for Asynchronous Systems , 2017, FMICS-AVoCS.

[33]  Frédéric Lang,et al.  SVL: A Scripting Language for Compositional Verification , 2001, FORTE.

[34]  Nicolas Halbwachs,et al.  Synchronous Modelling of Asynchronous Systems , 2002, EMSOFT.

[35]  Sandeep K. Shukla,et al.  Modeling and validating globally asynchronous design in synchronous frameworks , 2004, Proceedings Design, Automation and Test in Europe Conference and Exhibition.

[36]  Radu Mateescu,et al.  A Model Checking Language for Concurrent Value-Passing Systems , 2008, FM.