Vergleich gängi... Examensarbeiten Traceability im Rahm...

Studienarbeit

Bestimmung der Datenflussüberdeckung beim Testen objekt-orientierter Java-Klassen

 

Zusammenfassung

Um gestiegene Anforderungen bei der Softwareentwicklung zu erfüllen besteht ein großer Bedarf an systematischen Testverfahren. Während für viele Programmiersprachen Werkzeuge zum kontrollflußbasiertem Testen verfügbar sind und eingesetzt werden, sind entsprechende Tools für die Datenflußanalyse nur eingeschränkt vorhanden.
Beim Einsatz von kontrollflußorientierten Techniken wird versucht nachzuweisen, daß alle Teile des zu testenden Codes hinreichend ausgeführt worden sind. Dabei kann im Allgemeinen nicht sichergestellt werden, daß alle Ergebnisse von Berechnungen auch verwendet werden und damit in ein Testergebnis einfließen können. Damit wird jedoch die Aussagekraft des Tests beeinträchtigt, da sich Fehler in nichtverwendeten Zwischenergebnissen nicht offenbaren können.
Ziel einer Datenflußüberdeckungsanalyse ist es daher, anhand eines ausgewählten Testkriteriums eine ausreichende Verwendung von jedem Berechnungsergebnis sicherzustellen. Beispielsweise kann gefordert werden, daß zu jeder Zuweisung alle ohne eine weitere Zuweisung an die gleiche Variable erreichbaren Verwendungen getestet werden müssen. Die Bestimmung der hierzu erforderlichen Kombinationen von Definitionen und Verwendungen ist Aufgabe der statischen Datenflußanalyse. Durch den Vergleich mit den tatsächlich ausgeführten Kombinationen, die mit einer dynamischen Datenflußanalyse ermittelt werden, kann die Erfüllung des Testkriteriums bewertet werden.
In dieser Arbeit wird ein Verfahren zur Umsetzung der dynamischen Datenflußanalyse in Java beschrieben. In diesem wird Java Quellcode zur Datenflußprotokollierung instrumentiert. Bei der anschließenden Auswertung werden die getesteten Definitions/Verwendungs-Paare bestimmt die anhand verschiedener Kriterien in Äquivalenzklassen zusammengefaßt werden können. Dabei werden einige Anpassungsmöglichkeiten der verwendeten Äquivalenzkriterien an die besonderen Anforderungen der Sprache Java vorgestellt.
Kapitel 1 gibt einen Überblick zur Datenflußanalyse. Kapitel 2 bietet eine Übersicht über das verwendete Verfahren. Kapitel 3 beschreibt das zur Laufzeit verwendete Protokollierungssystem. Kapitel 4 enthält eine Darstellung der erforderlichen Instrumentierung des Java-Quellcodes. Kapitel 5 erläutert einen Algorithmus zur Testauswertung. Abgeschlossen wird die Arbeit mit einer kurzen Beschreibung ausgewählter Problemstellungen während der Implementierung in Kapitel 6 sowie einem Ausblick auf weitere Forschungsgebiete in Kapitel 7.

Bearbeiter: Robert Daniel Dorn

Betreuer: Dr.-Ing. Norbert Oster