JTorX: Exploring Model-Based Testing

Axel Belinfante

Promotors: prof.dr. J.C. van der Pol (UT) and prof.dr.ir. A. Rensink (UT)
Universiteit Twente
Date: 18 September, 14:45
Thesis: PDF

Summary

The overall goal of the work described in this thesis can be summarised as follows:

To design a flexible tool for state-of-the-art model-based derivation and
automatic application of black-box tests for reactive systems,
usable both for education and outside an academic context.

From this goal, we derive functional and non-functional design requirements. In the discussion of the design, which is the core of the thesis, we show how the functional requirements are fulfilled as they are incorporated into the design. At the end of the thesis, we provide evidence to validate the non-functional requirements, in the form of case studies and responses to a tool-user questionnaire, and discuss to what extent this suffices to validate the non-functional requirements.

The core of the thesis is the discussion of the design. We start with a description of the overall architecture of our tool, and discuss three usage scenarios which are necessary to fulfil the functional requirements. In this architecture we identify two major components:

  • a test derivation engine, which synthesizes test primitives from a given model and from optional test guidance information,
  • and a test execution engine, which contains the functionality to connect the test tool to the system under test. We refer to this latter functionality as the ”adapter”.

We then describe the test derivation engine and the test execution engine in more detail.

In the description of the test derivation engine, we look at the same three usage scenarios, and further we discuss support for visualization, and for dealing with divergence in the model.  In the description of the test execution engine, we first discuss three example adapter instances, and then generalise this to a general adapter design.

We end the discussion of the design with a description of extensions to deal with symbolic treatment of data and time.