1. 3

Big abstract for multiple deliverables: “Model-based testing, in particular in its radical form of theorem proving-based testing, bridges seamlessly the gap between the theory, the formal model, and the implementation of a system. Actually, theorem proving based testing techniques offer a possibility to directly interact with “real” systems: via different formal properties, tests can be derived and executed on the system under test. Suitably supported, the entire process can fully automated.

The purpose of this thesis is to create a model-based sequence testing environment for both sequential and concurrent programs. First a generic testing theory based on monads is presented, which is independent of any concrete program or computer system. It turns out that it is still expressive enough to cover all common system behaviours and testing concepts. In particular, we consider here: sequential executions, concurrent executions, synchronised executions, executions with abort. On the conceptual side, it brings notions like test refinements, abstract test cases, concrete test cases, test oracles, test scenarios, test data, test drivers, conformance relations and coverage criteria into one theoretical and practical framework. In this framework, both behavioural refinement rules and symbolic execution rules are developed for the generic case and then refined and used for specific complex systems. As an application, we will instantiate our framework by an existing sequential model of a microprocessor called VAMP developed during the Verisoft-Project. For the concurrent case, we will use our framework to model and test the IPC API of a real industrial operating system called PikeOS.

Our framework is implemented in Isabelle/HOL. Thus, our approach directly benefits from the existing models, tools, and formal proofs in this system.”

  1.