Testing real-time embedded software using runtime enforcement
Louis-Marie Givel, Jean-Luc Béchennec, Matthias Brun, Sébastien Faucou, Olivier Henri Roux · 2016
Real-time embedded systems are complex, and as such need to be tested with regards to real-time constraints. However, because of this complexity, some states of the systems can be hard to reach through acting on the input sequence alone, because of seemingly non-deterministic behaviors. In this paper, we introduce a solution based on runtime enforcement which forces a real-time system to reach a chosen state. This can allow for testing of the consequences of reaching this state for the system. Let us consider for example a fault tolerance mechanism that activates when a state of the system is reached. Our solution makes it possible to force the system to consistently reach the state in which the fault tolerance mechanism is started. The solution is based on both an offline analysis and a runtime enforcement step which uses the result of the offline analysis. The runtime enforcement is achieved through the introduction of delays during the execution of the system.