 |
 | |  |  | | Beschreibung |  | Die Zweigüberdeckung (engl. branch coverage) zur Ermittlung der Testfälle konzentriert sich auf die einzelnen Zweige des Testobjekts. Zweige stellen hier die “Wegabschnitte” des Kontrollflusses durch den Code des Testobjekts dar. Je nach festgelegtem Ziel sind ein gewisser Anteil oder alle Zweige im Code des Testobjekts zu durchlaufen. Um die dazu notwendigen Testfälle zu identifizieren, orientiert man sich üblicherweise am Kontrollflussgraphen des Testobjekts.
In einem solchen Graphen werden einzelne Anweisungen oder Blöcke von sequenziellen Anweisungen als Knoten, und der Kontrollfluss zwischen Anweisungen oder Blöcken als Kanten (Zweige) dargestellt.
Beispiel:
Gegeben sei wiederum die Methode zur Berechnung der Fakultät einer Zahl x. Da Fakultäten nur von natürlichen Zahlen und Null berechnet werden können, wird der übergebene ganzzahlige Wert dahingehend durch die Methode überprüft, und gegebenenfalls der Fehlercode -1 zurückgegeben.
int factorial(int x) {
int result = -1;
if(x >= 0) {
result = 1;
for(int i=2; i <= x; i++) {
result = result * i;
}
} else {
}
return result;
}
Anhand des Programmtexts wird nun der zugehörige Kontrollflußgraph abgeleitet:
Abb.: Beispiel eines Kontrollfussgraphen
Um in diesem Kontrollflussgraphen alle Kanten oder Zweige zu durchlaufen, sind folgende Testfälle nötig:
Testfall #1
a, b, d, e, f, g, h, i, k
Testfall #2
a, c, k
Der erste Testfall stellt den spezifikationsgemäßen Gebrauch der Methode dar, d.h. es wird eine natürliche Zahl übergeben. Die Schleife zur Berechnung der Fakultät wird genau einmal durchlaufen (x muß für den Test also gleich 2 gewählt werden), und das Ergebnis wird zurückgeliefert. Da bei der Zweigüberdeckung generell nicht gezählt wird, ob ein Zweig mehr als einmal durchlaufen wurde, macht es hier auch keinen Sinn, die Schleife öfters abzuarbeiten.Der zweite Testfall testet die Methode factorial auf die Behandlung von Ausnahmesituationen. Es wird hier eine negative Zahl übergeben, so dass der leere ELSE-Zweig durchlaufen und der Fehlercode -1 zurückgegeben wird. Die Zweigüberdeckung liefert also Testfälle, mit denen fehlende Anweisungen in leeren Zweigen entdeckt werden können.
Die Zweigüberdeckung heißt auch C1-Maß und ist wie folgt definiert:
Zweigüberdeckung = Anzahl ausgeführte Zweige / Gesamtzahl der Zweige
Mit obigen Testfällen werden sämtliche Zweige der Methode factorial ausgeführt, d.h. die Zweigüberdeckung ist 100%. Für den Test kann zuvor aber auch eine geringere Zweigüberdeckung als ausreichend vereinbart worden sein. Prinzipiell gilt, dass wenn nach der Zweigüberdeckungsmethode verfahren wird, mehr Testfälle als bei der Anweisungsüberdeckung erstellt werden. Dies liegt darin, dass die Zweigüberdeckung auch leere Zweige berücksichtigt, und somit fehlende Anweisungen entdecken kann. |  |
 | |  |  | |  | |  | |  |  |  | | Zu dieser Seite wurden noch keine Kommentare oder Bewertungen abgegeben. |
|
|  | |  |  |   | Übergeordnet |  |  |  | |  |  | |  |  |  |  |  | Zweigüberdeckung |  |  |  |  |  |  |
|