Model-Based Testing from De-Factored Behaviour Models

Extend model-based testing by first de-factoring the model and then running the test strategy.
Derive tests from (semi-)formal behaviour models or test models, taking into consideration that the used models might be better or differently factored (having one information/feature in as few places as possible) than the implementation to be tested.

Model-Based Testing is an approach for testcase generation for black-box testing. From a model specifying the behaviour of the system under test (or a sub-set thereof), test cases are generated, often driven by some notion of coverage of the model. The test cases are then applied to the implementation.

Well-factored models have each information in just one place. For several reasons, this might not be true for the implementation. One reason may be that several people work on different modules and therefore implement the same functionality in both models.

Behaviour Model De-Factoring is a pre-processing step, modifying the model before generating tests from it, with the intention to produce test suites that cover more potential deviations of the implementation compared to the model.

Behaviour model de-factoring uses patterns to split-up factored behaviour that might be factored differently in an implementation, thereby allowing a model-based test case generator to also create tests that catch faults in parts of that behaviour that would be otherwise masked.

As an example, consider a UML state machine. A state may have an entry action and two incoming transitions. In that case one can create a functionally equivalement model where the entry action is duplicated and moved to the transitions.

The concept has been shortly described in [MBT-MDF1]. It can be applied to different variants of Model-Based Testing e.g. for Mutation-Based Test Case Generation.

 

  • Behaviour Model De-Factoring (improvement described below):
    By de-factoring the model in a pre-processing step, a well-factored model of the behaviour can be used while still providing tests that can find problems with differently or less factored implementations.

In addition to limitations inherited from Model-Based Testing, this improved method addresses the limitations related to factoring, with the following remaining limitations:

  • The intended approach for de-factoring is not able to mimic all possible different implementations of the same behaviour.
    De-factoring instances of classes has not been considered yet – while it might help catch problems in system parts fore.g. distributed systems that differ in deployment properties or other configuration aspects, it would blow-up test suites in bigger systems containing many instances and thereby simply not doable.
  • [MBT-MDF1] Rupert Schlick, Wolfgang Herzner, Elisabeth Jöbstl: ‘Fault-Based Generation of Test Cases from UML-Models - Approach and Some Experiences’. SAFECOMP 2011: 270-283
Method Dimensions
In-the-lab environment, Open evaluation environment, Closed evaluation environment
Experimental - Testing
Hardware, Model, Software
Integration testing, Unit testing, System testing
Thinking, Acting, Sensing
Functional
V&V process criteria
Relations
Contents

There are currently no items in this folder.