Role Based Software Test
The goal of this project is to develop a more efficient testing
approach for the members of a program family. With the objective to save
development effort, programs for related application areas are often developed
as a program family, which consists of different program variants that share a
common core of functionality. Particularly the concepts of object-oriented
programming support this form of development, since common functionality of
different program variants can be easily implemented using object-oriented
frameworks. For this reason our current work is focussed on the use of
object-oriented frameworks for this purpose.
But while reusing an already
used and therefore - at least partly - tested framework improves the overall
quality of the program family, it remains indispensable to thoroughly test every
new program variant. Even the most careful development cannot avoid that defects
are introduced adapting and extending a framework. Unfortunately in practice
testing programs, which are even based on the same framework, remains laborious.
Generally it boils down to develop specification-based system level tests for
every program, making it difficult to reuse test cases and data
among them.
In contrast to this, our test bench approach tries to render this testing more
efficient by exploiting the commonalities of the program family members. The
idea is to develop a framework-specific test bench that can automatically
execute a great number of tests for any program based on the actual framework,
allowing the reuse of test cases and data across the whole framework-based
program family.
The main problems opposing our test bench approach are
tightly linked with those of testing object-oriented software in general.
Actually, there is a lack of methods to test the parts of an object-oriented
program above class, but at a finer granularity than system level. Especially
there is no workable approach for testing the interaction of objects, so called
object collaborations, which embody the main complexity of an object-oriented
program. Furthermore, besides a predefined class structure object collaborations
are the central element of an object-oriented framework, prescribing the
characteristic behaviour of any program based on the framework and exposing the
common behaviour of the resulting program family. So developing test cases for
those collaborations is the approach, we chose for our test bench. In particular
role modelling has proved as an effective means to identify and describe object
collaborations independent from a concrete implementation, making test cases
derived from a role model reusable for any program based on the particular
framework. This project studies in particular techniques to model the
characteristic collaborations of a framework using roles, to gain test cases
from those role models, and to implement them in a test bench for programs based
on the considered framework.
Contact: Moritz Schnizler