Publication Type

Conference Proceeding Article

Version

publishedVersion

Publication Date

11-2010

Abstract

Model checkers, like any complex software, are subject to bugs. Unlike ordinary software, model checkers are often used to verify safety critical systems. Their correctness is thus vital. Verifying model checkers is extremely challenging because they are always complicated in logic and highly optimized. In this work, we propose a code contract combined approach for checking model checkers and apply it to a home-grown model checker PAT. In this approach, we firstly embed programming contracts (i.e., pre/post-conditions and invariants) into its source code, which can capture correctness of model checking algorithms, underlying data structures, consistency between different model checking parameters, etc. Then, interface models of complicated data structures and graphical user interfaces (GUI) are built and model checked. By linking the interface models with actual source codes and exhausting all execution sequences of interface models using PAT, we model check PAT using itself! Our experience shows that the approach is effective in identifying common bugs or subtle flaws that result from extremely improbable events.

Keywords

Model Check, Graphical User Interface, Interface Model, Liveness Property, Model Check Algorithm

Discipline

Programming Languages and Compilers | Software Engineering

Research Areas

Software and Cyber-Physical Systems

Publication

Proceedings of the 12th International Conference on Formal Engineering Methods, ICFEM 2010, Shanghai, China, November 17-19

First Page

518

Last Page

533

ISBN

9783642169007

Identifier

10.1007/978-3-642-16901-4_34

Publisher

Springer Link

City or Country

Shanghai, China

Additional URL

https://doi.org/10.1007/978-3-642-16901-4_34

Share

COinS