Konfiguration und Er... Examensarbeiten Untersuchung der neu...

Studienarbeit

Entwicklung eines Testtreibergenerators für objekt-orientierte Java-Komponenten

 

Zusammenfassung

Während der Modul- und Intergrationstestphase werden Testtreiber benötigt. Diese Testtreiber initialisieren die Module und testen dann Ihre Funktionalität, in der Regel durch Aufruf ihrer Funktionen. Da der Aufwand für das Testen mit der Komplexität der zu testenden Software steigt, ist hier ein großer Bedarf an Automatisierung.
In Kapitel 1 werden einige Werkzeuge zur automatisierten Testgenerierung für Java - Klassen vorgestellt. Diese Werkzeuge unterscheiden sich vor allem in der Art, wie sie einzelne Testfälle und Testdaten generieren. Die einen entscheiden sich für einen strikt systematischen Weg, andere erzeugen alles zufallsgesteuert. Entscheidend ist auch die Frage: Was ist das Ergebnis eines Tests? Wie kann ich automatisch Fehler im Code feststellen? In der Regel bleibt die Möglichkeit das Auftreten von Exceptions und Errors zu bewerten. Aber es gibt auch Ansätze die Semantik des Codes formal zu spezifizieren, etwa via JML, und darauf basierend Verletzungen dieser Spezifikation abzuprüfen.
Kapitel 2 beschäftigt sich mit dem im Rahmen dieser Studienarbeit erstellten Werkzeug zur automatisierten Testtreibergenerierung. Diese speziellen Testtreiber sollen als Bindeglied zwischen dem eigentlichen Testfallgenerator und den zu testenden Klassen dienen. Sie bieten die Möglichkeit alle nicht privaten Methoden der Klassen aufzurufen, wobei die Auswahl welche Methode als nächstes aufgerufen wird, durch ein Integerdatum gesteuert wird. Die Testausführung wird eindeutig durch den Testtreiber und einen Eingabestrom festgelegt, bestehend aus Initialisierungswerten für Elementardatentypen und Steuerdaten. Dem Testfallgenerator wird somit eine einfache Möglichkeit gegeben durch einen Strom von Integerwerten Tests zu generieren. Ziel ist es die Eigenschaften des Tests zu messen und durch geschickte Anpassung des Eingabestromes den generierten Test zu optimieren. Ist ein optimierter Test gefunden so kann mit dem Eingabestrom ein äquivalenter JUnit - Test erzeugt werden.

Bearbeiter: Johannes Ostler

Betreuer: Dr.-Ing. Norbert Oster