Skip to Main content Skip to Navigation

Debugging of Behavioural Models using Counterexample Analysis

Abstract : Model checking is an established technique for automatically verifying that a model satisfies a given temporal property. When the model violates the property, the model checker returns a counterexample, which is a sequence of actions leading to a state where the property is not satisfied. Understanding this counterexample for debugging the specification is a complicated task for several reasons: (i) the counterexample can contain a large number of actions; (ii) the debugging task is mostly achieved manually; (iii) the counterexample does not explicitly point out the source of the bug that is hidden in the model; (iv) the most relevant actions are not highlighted in the counterexample; (v) the counterexample does not give a global view of the problem.This work presents a new approach that improves the usability of model checking by simplifying the comprehension of counterexamples. Our solution aims at keeping only actions in counterexamples that are relevant for debugging purposes. This is achieved by detecting in the models some specific choices between transitions leading to a correct behaviour or falling into an erroneous part of the model. These choices, which we call "neighbourhoods", turn out to be of major importance for the understanding of the bug behind the counterexample. To extract such choices we propose two different methods. One method aims at supporting the debugging of counterexamples for safety properties violations. To do so, it builds a new model from the original one containing all the counterexamples, and then compares the two models to identify neighbourhoods. The other method supports the debugging of counterexamples for liveness properties violations. Given a liveness property, it extends the model with prefix / suffix information w.r.t. that property. This enriched model is then analysed to identify neighbourhoods.A model annotated with neighbourhoods can be exploited in two ways. First, the erroneous part of the model can be visualized with a specific focus on neighbourhoods, in order to have a global view of the bug behaviour. Second, a set of abstraction techniques we developed can be used to extract relevant actions from counterexamples, which makes easier their comprehension. Our approach is fully automated by a tool we implemented and that has been validated on real-world case studies from various application areas.
Complete list of metadata

Cited literature [137 references]  Display  Hide  Download
Contributor : ABES STAR :  Contact
Submitted on : Tuesday, July 23, 2019 - 3:20:40 PM
Last modification on : Wednesday, July 6, 2022 - 4:24:06 AM


Version validated by the jury (STAR)


  • HAL Id : tel-02191544, version 1



Gianluca Barbon. Debugging of Behavioural Models using Counterexample Analysis. Systems and Control [cs.SY]. Université Grenoble Alpes, 2018. English. ⟨NNT : 2018GREAM077⟩. ⟨tel-02191544⟩



Record views


Files downloads