Implementierung eines Werkzeugs für den White-Box-Test


Beim White-Box-Test versucht man eine Menge von Testfällen zu konstruieren, sodass alle Anweisungen bzw. alle Pfade des zu testenden Programms mindestens einmal durchlaufen werden. Während die Anweisungsabdeckung einfach zu bewerkstelligen ist, bereitet die Pfadabdeckung Probleme, da die Anzahl der Pfade exponentiell mit der Anzahl der Verzweigungen im Programm wächst. Ziel dieser Diplomarbeit ist es, ein Werkzeug zu implementieren, das für gegebene Programmstücke prüft, wieviele Pfade es durch das Programmstück gibt, und welche davon in einer Menge von Testläufen bereits durchlaufen wurden. Die noch nicht durchlaufenen Pfade sollen in lesbarer Form angezeigt werden, sodass der Tester für sie gezielt Testfälle konstruieren kann.

Um die Aufgabe zu vereinfachen, können folgende Einschränkungen vorgenommen werden:

Folgende Lösungsidee wird vorgeschlagen (es soll jedoch in der Literatur nach Alternativen gesucht werden): Eine Folge von Verzweigungen ist eine Folge binärer Entscheidungen. Jede Entscheidung kann wahr oder falsch sein. Somit er gibt sich ein Bitstring, wie in folgendem Bild gezeigt:

     +---- a? ----+
   1 |            | 0         a, b          11
     +-----><-----+           a, not b      10
           |                  not a, b      01
     +---- b? ----+           not a, not b  00
   1 |            | 0
     +-----><-----+
           |

Der Bitstring wird durch Anweisungen erzeugt, die an geeigneter Stelle automatisch in das Programmstück eingefügt werden. Am Ende der Anweisungsfolge wird der Bitstring als Binärzahl interpretiert. Die entstehende Zahl wird in einer Menge gespeichert. Würden z.B. alle Pfade im obigen Bild durchlaufen, ergäbe sich die Menge {0, 1, 2, 3}. Fehlt eine Zahl, bedeutet das, dass der entsprechende Pfad nicht durchlaufen wurde.

Betreuer: Prof. Dr. H. Mössenböck