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 metadatas

Cited literature [137 references]  Display  Hide  Download

https://tel.archives-ouvertes.fr/tel-02191544
Contributor : Abes Star <>
Submitted on : Tuesday, July 23, 2019 - 3:20:40 PM
Last modification on : Wednesday, July 24, 2019 - 1:15:43 AM

File

BARBON_2018_archivage.pdf
Version validated by the jury (STAR)

Identifiers

  • HAL Id : tel-02191544, version 1

Collections

STAR | LIG | UGA

Citation

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

Share

Metrics

Record views

66

Files downloads

29