Automated Validation of IoT Device Control Programs Through Domain-Specific Model Generation

The IoT is a networked system of physical devices controlled by embedded software whose validity is a pre-requisite to ensuring the correct behavior of the entire system. To automate the verification and validation process of such control software, this work constructs a validation model by composing pre-defined behavioral patterns of an operating system that is compliant with the OSEK/VDX international standard and models of application programs abstracted w.r.t. interactions with the underlying operating system. This validation model is used to perform property checking using the model checker SPIN to ensure that the behavior of the control program complies with the original intention of the program design. We automated the model generation process and applied it to 9 benchmark programs for the open source IoT OS Erika.

[1]  Toshiaki Aoki,et al.  Yes! You Can Use Your Model Checker to Verify OSEK/VDX Applications , 2015, 2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST).

[2]  Lionel C. Briand,et al.  Automated Test Suite Generation for Time-Continuous Simulink Models , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[3]  Daniel C. DuVarney,et al.  C Wolf - A Toolset for Extracting Models from C Programs , 2002, FORTE.

[4]  Daniel Kroening,et al.  A Tool for Checking ANSI-C Programs , 2004, TACAS.

[5]  Gérard Berry Synchronous Design and Verification of Critical Embedded Systems Using SCADE and Esterel , 2007, FMICS.

[6]  Yuichiroh Nakagawa,et al.  A Rule-based Automated Approach for Extracting Models from Source Code , 2012, 2012 19th Working Conference on Reverse Engineering.

[7]  Daniel Kroening,et al.  Incremental bounded model checking for embedded software , 2017, Formal Aspects of Computing.

[8]  Alex Groce,et al.  Model driven code checking , 2008, Automated Software Engineering.

[9]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[10]  Cyrille Artho,et al.  Model-Based API Testing of Apache ZooKeeper , 2017, 2017 IEEE International Conference on Software Testing, Verification and Validation (ICST).

[11]  Bernd Fischer,et al.  SMT-Based Bounded Model Checking for Embedded ANSI-C Software , 2012, IEEE Transactions on Software Engineering.

[12]  Ji Wang,et al.  Data Race Detection for Interrupt-Driven Programs via Bounded Model Checking , 2013, 2013 IEEE Seventh International Conference on Software Security and Reliability Companion.

[13]  Susanne Graf,et al.  OMEGA: correct development of real time and embedded systems , 2008, Software & Systems Modeling.

[14]  Gerard J. Holzmann,et al.  Effective Bug Hunting with Spin and Modex , 2005, SPIN.

[15]  Bernd Fischer,et al.  Semiformal Verification of Embedded Software in Medical Devices Considering Stringent Hardware Constraints , 2009, 2009 International Conference on Embedded Software and Systems.

[16]  Moonzoo Kim,et al.  SAT-Based Bounded Software Model Checking for Embedded Software: A Case Study , 2014, 2014 21st Asia-Pacific Software Engineering Conference.

[17]  Yunja Choi,et al.  A configurable V&V framework using formal behavioral patterns for OSEK/VDX operating systems , 2017, J. Syst. Softw..

[18]  Jürgen Dingel,et al.  Modelling and Code Generation for Real-Time Embedded Systems with UML-RT and Papyrus-RT , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C).

[19]  María-del-Mar Gallardo,et al.  A model-extraction approach to verifying concurrent C programs with CADP , 2012, Sci. Comput. Program..

[20]  Yunja Choi,et al.  Constraint-based test generation for automotive operating systems , 2017, Software & Systems Modeling.

[21]  Jie Ma,et al.  Automatic Model Building and Verification of Embedded Software with UPPAAL , 2011, 2011IEEE 10th International Conference on Trust, Security and Privacy in Computing and Communications.

[22]  Dongwoo Kim,et al.  Modeling OSEK/VDX OS Requirements in C , 2017, 2017 24th Asia-Pacific Software Engineering Conference (APSEC).

[23]  Doina Bucur,et al.  Software verification for TinyOS , 2010, IPSN '10.

[24]  Gerard J. Holzmann,et al.  The SPIN Model Checker - primer and reference manual , 2003 .