Eine Def-Use-Kette ist eine Datenstruktur, die aufeinanderfolgende Paare von Schreib- und Lesezugriffen einer Variablen beschreibt.

Im Rahmen des Software Engineerings werden beim White-Box-Testing mittels Def-Use-Ketten Datenflusstests durchgeführt, welche das Durchlaufen von Code mittels Testwerten für Variablen ermöglichen.Prof. Herbert Kuchen: (PDF; 234 kB) Westfälische Wilhelms-Universität Münster. S. 403, 407ff. Abgerufen am 23. Januar 2017.

Anwendungsbeispiel Im Folgenden soll eine Def-Use-Kette für die Variable "d" erzeugt werden. Der nachfolgende Code findet den größten gemeinsamen Teiler (GGT) zweier Zahlen "a" und "b" und ist in Java implementiert.

public int ggt(int a, int b){ int c = a; int d = b; if(c == 0) return d; while(d != 0){ if(c > d) c = c - d; else d = d - c;

return c;

Um alle Def-Use-Ketten für die Variable "d" zu erzeugen, ist folgendermaßen vorzugehen:

Ermitteln des ersten Schreibzugriffes (Definition der Variablen) In diesem Fall entspricht dies der Zuordnung "d=b" (Zeile 3) Ermitteln des ersten Lesezugriffes In diesem Fall entspricht dies der Anweisung "return d" Aufschreiben dieser Information im folgenden Stil: [Name der untersuchten Variablen, konkreter Schreibzugriff, konkreter Lesezugriff] In diesem Fall entspricht dies [d, d=b, return d]

Nun werden diese Schritte wiederholt, wobei jeder Schreibzugriff mit jedem Lesezugriff der untersuchten Variablen verbunden wird.

Das Ergebnis ist dann: [d, d=b, return d] [d, d=b, while(d!=0)] [d, d=b, if(c>d)] [d, d=b, c=c-d] [d, d=b, d=d-c] [d, d=d-c, while(d!=0)] [d, d=d-c, if(c>d)] [d, d=d-c, c=c-d] [d, d=d-c, d=d-c]Henning Heitkötter: (PDF; 554 kB) Westfälische Wilhelms-Universität Münster. S. 25. Abgerufen am 23. Januar 2017.

Literatur

Einzelnachweise

Kategorie:Testen (Software)