Scenario Generation and Verification of Real-Time Systems
The verification of real-time systems with many concurrent tasks easily becomes infeasible due to the large number of possible states that must be covered [MBT-MCF1]. The usual approach to mitigate this problem is to abstract away implementation details up to a level of complexity that makes verification feasible, while still preserving enough implementation details to be useful.
This method aims at reducing the number of possible states by restricting the set of interactions with external components to a set of predefined scenarios i.e., it assumes specific contexts with a predefined behaviour, instead of assuming that any message can be sent to the system being modelled.
The challenge of this approach becomes how to select the right scenarios such that:
- most relevant cases are covered, and
- a minimal number of scenarios is used.
The behaviour model of the system under evaluation is processed by two different core methods:
- a high-level description of the behaviour model is used to produce test cases, i.e., traces of interactions with external components that maximize coverage of the state space of the behaviour model [MBT-MCF3]; and
a more refined description of the behaviour model is used to model check requirements, enriched with the scenarios derived from the test cases and enriched with alternative parameters following a software product lines engineering approach [MBT-MCF2].
Process
Step 1: Build High-Level Behaviour Model
- Input: Informal Behaviour and Timing Requirements.
- Processing: Build high-level behaviour model.
- Output: High-Level Behaviour Model.
Step 2: Generate Test Cases
- Input: Behaviour Model from Step 1, Generation Parameters.
- Processing: Generate a test suite for the behaviour model following the generation parameters, using the method Model-Based Testing.
- Output: Test Cases.
Step 3: Assemble Scenarios
- Input: Informal Behaviour and Timing Requirements, Test Cases from Step 2.
- Processing: Build a scenario from the input actions used in the test cases, and for each include the applicable logical properties to be verified from the set of informal requirements.
- Output: Abstract Test Cases, Formal Timing Requirements
Step 4: Build/Adapt Refined Behaviour Model
- Input: Implementation Details, Real-Time Parameters, High-Level Behaviour Model from Step 1.
- Processing: Enrich the high-level behaviour model with more details of the implemented system and with real-time behaviour.
- Output: Refined Behaviour Model, Functional and Real-Time Parameters of the behaviour model.
Step 5: Model checking
- Input: Refined Behaviour Model, and Parameters from Step 4, Abstract Test Cases and Requirements from Step 3.
- Processing: Verify if the requirements hold for their associated scenarios in the given behaviour model, using the method Model Checking Families of Real-Time Specifications.
- Output: Real-Time Verification Report for each scenario; Real-Time Specifications and their Configurations.
Step 6: Adapt Models, Scenarios, and Parameters
- Input: Real-Time Verification Report and their corresponding Real-Time Specifications from Step 5.
- Processing: If errors are found when verifying requirements, iterate and modify the refined behaviour model, the parameters that guide the test suite generation, and the requirements used when assembling scenarios. Otherwise end the workflow and return the verification report.
- Output: Fine-tuned generation parameters, final Real-Time Verification Report.
- Compared to typical model checking of complex specifications with many implementation details, this method requires less states.
- Compared to test-based approaches, this method provides stronger guarantees of safety.
- Model checking complex systems is still memory and computationally expensive, and requires manual fine-tuning of the abstractions until it becomes feasible.
- No guarantee can be given that all relevant scenarios are covered.
- [MBT-MCF1] Christel Baier, Joost-Pieter Katoen: Principles of model checking. MIT Press 2008, ISBN 978-0-262-02649-9, pp. I-XVII, 1-975
- [MBT-MCF2] Classen, A., Cordy, M., Schobbens, P.Y., Heymans, P., Legay, A., Raskin, J.F.: Featured Transition Systems: Foundations for Verifying Variability-Intensive Systems and Their Application to LTL Model Checking. IEEE Trans. Softw. Eng. 39(8), 1069-1089, doi: 10.1109/TSE.2012.86 (2013).
- [MBT-MCF3] Software Testing, Verification and Reliability 22(5), 297–312 (2012)