Visualisierung ü... Theses on offer Synchronisation of p...

Diploma thesis

Conception and implementation of a method for analyzing and classifying UML model refinements

(Original Title:Konzeption und Implementierung eines Verfahrens zur Analyse von Modellverfeinerungen und zur Testdatenerzeugung)



Model based testing is a technique that constructs test cases for a software system from models created during the design phase. It is intended to be a efficient way to find suitable test suites during early stages of development.
Gradually refining an initial coarse model towards a complete description of the system is a quite common approach. This raises the question, how efficiently model based test suites from coarse models uncover software faults compared to those derived from more detailed models. In this context, a relation between a testcase from a coarse model and test cases based on a refined model is wanted.
First, the term refinement of a model is defined as a special case of generally changing a model. In order to provide a certain level of universality, this definition is first constructed for directed multigraphs. A set of criteria that discriminate a refinement from other classes of changes of graphs is introduced for that purpose.
That concept is afterwards transfered to UML behavior diagrams. To achieve this, models are intuitively assigned an underlying graph. Two models represent a refinement if their underlying graphs fulfill the criteria of the refinement of graphs and if, additionally, some further criteria are fulfilled by those elements of a model that have no direct representation in the underlying graph. These are, for example, triggers, guards and effects. The definition is designed to be transitive. That means that a refinement of a refined model is also a valid refinement of the original model.
Now, that the refinement of models is defined, a relation between paths through a coarse model and paths through a corresponding refined model can be established. That relation also implies a relation between the test cases that cover these paths.
The process of deducing the corresponding test cases for a fine model from a given test case in a coarse model according to that relation is called concretizing test case generation.
Three different variants of implementing the concretizing test case generation are presented. An application of those to some UML diagrams is described. Properties of the incremental test case generation in general and the advantages of each variant are discussed.

Author: Alexander Reuß

Tutor: Dipl.-Inf. Dirk Wischermann

In Cooperation with: AFRA GmbH Erlangen