Finding input values for software tests is a difficult task, especially
for distributed, embedded systems. In this work, we use the logical basis
of AutoFocus system models to automate this and other important steps during
software development. In particular, we describe six possible ways to specify
test cases. For these test cases, we show how to automatically determine
input values and expected output values (a test sequence) with the help
of our logical model for AutoFocus system specifications, by solving a
propositional formula using the tool SATO. One of these scenarios specifying
a test case with a formula in temporal logic leads us to a bounded model
checking algorithm for AutoFocus system specifications, in many cases an
efficient alternative to conventional model checking to verify properties
of the specification. Our work also provides a connection of AutoFocus
to the classical BDD-based model checker SMV.
Finally, the practicability of our approaches is demonstrated by exemplary
performance figures for the different test cases.
Full Version: PDF PS
The growing importance of component-based software development demands
appropriate tools. Automation of methods and workflows in software development
lead to quality improvements and higher effectiveness.
This thesis describes an automated method of generating black box test
cases for integration testing of communicating components out of the components'
design specifications. The dynamic behavior of the components is specified
using state transitions diagrams and the interaction structure between
the components is specified using structure (collaboration) diagrams. UML
conventions are defined to be used in modeling tools like Rational Rose.
An algorithm is presented to create an integrated model from a number
of component design specifications by incrementally composing their communicating
state machines to a single composed state machine describing the system's
global behavior. Scalability is addressed by an algorithm to structurally
reduce the intermediate results and by allowing user defined grouping of
components to subsystems. Integration testing strategies can be applied
using this method from within the modeling applications.
The test case generator TDE by Siemens Corporate Research is used to
generate test cases from the created global system behavior model. A test
hypothesis is presented: The identified test requirement is to test component
interaction with full communication coverage of all desired interfaces
by stimulating the event-based components and observing their output.
The implementation TDE/UML is presented in form of an architectural
overview. Design decisions are discussed and the practical test generation
workflow is shown. The important parts of the implementation are described
in detail.
The implemented method and algorithms are evaluated using an example
component-based system, presents the achievements and gives a conclusion
of this project and shows possible future projects.
Full Version: PDF PS
Im praktischen Teil dieser Arbeit wird die Entstehung einer Testplattform,
die es ermöglicht, erstellte Testpläne verteilt auszuführen,
geschildert. Diese Testpläne sind in der Lage, Java-Source-Code nachzubilden.
Strukturierung, Wiederholungen, Wartezeiten mit verschiedenen stochastischen
Verteilungen, Fehlerbehandlung und das Definieren von Variablen sind die
bereits vorhandenen Funktionen dieser Testpläne. Zur Testdurchführung
können beliebig viele Rechner (Clients) eingesetzt werden.
Sie wird zentral gesteuert und auch die Ergebnisse nach einem Testlauf
sind zentral verfügbar. Auf dieser Testplattform baut eine konkrete
Ausprägung für die Durchführung von EJB-Lasttests auf. Dazu
werden die Möglichkeiten des Testplans um die der Messung der Antwortzeiten
erweitert. Durch Kapselung der EJB-Server ist es möglich, in einem
Testlauf verschiedene Server zu messen. Anfallende Daten bzw. Ergebnisse
werden aufbereitet und in Dateien abgelegt. Dabei ist es durch den flexiblen
Testplan möglich, Standardmessungen auszuführen, aber auch das
Verhalten von Clients nachzubilden.
Ein methodisches Vorgehen zur Erstellung von Testplänen, die einen
Client simulieren, wird vorgestellt. Desweiteren wird eine Klassifizierung
von EJB-Leistungswerten beschrieben, die als Grundlage einer Evaluierung
dienen.
Grundlage des theoretischen Teils dieser Arbeit ist der sehr allgemeine
Ansatz der Leistungsbewertung. Zwei Methoden einer Bewertung werden weiterverfolgt.
Das ist zum einen die bereits im praktischen Teil vorgestellte Möglichkeit
der Messung und zum anderen ein analytischer Ansatz, der auf der Warteschlangentheorie
aufbaut. Anhand eines M/M/1 Modells werden die Möglichkeiten zur Berechnung
von Lasttestdaten betrachtet. Als Eingabewerte finden die durch die Messung
gewonnenen Daten Verwendung. Beide Methoden werden dabei konkurrierend
betrachtet.
Full Version: PDF PS