R. Ferguson, and B. Korel. ACM Trans. Softw. Eng. Methodol., 5 (1):
63--86(1996)ST: Vorgehensweise:
Die Idee dieses Ansatzes ist es eine Sequenz von Knoten im Kontrollflussgraphen zu finden, die zu einer Ausführung eines bestimmten Knoten führt.
Eignung:
Dieser Ansatz ist zwar zunächst in den codebasierten Bereich einzuordnen, aber es spricht auf den ersten Blick nichts dagegen, die Idee auf Kontrollflussgraphen zu übertragen, die auf einer höheren Abstraktion sind (wie z.B. bei dem Systemtest). Abzudeckende Elemente wären dann z.B. Kanten im Aktivitätsdigramm..
M. Soffa, A. Mathur, and N. Gupta. ASE '00: Proceedings of the 15th IEEE international conference on Automated software engineering, page 219. Washington, DC, USA, IEEE Computer Society, (2000)ST: Zusammenfassung:
In diesem Paper liegt der Fokus auf der automatischen Testdatengenerierung. Die Testdaten werden so generiert, dass ein gewünschtes Element im Programm durch einen Pfad abgedeckt wird, d.h. es werden die Testdaten werden so generiert, dass dieser Pfad ausgeführt werden kann. Das Programm liegt als Flussgraph vor. Elemente die abgedeckt werden können sind z.B. Kanten, Statements, oder auch aus dem datenflussorientierten Testen defs-uses Paare. Der vorgeschlagene Algorithmus sucht nun Testdaten um genau dieses Element abzudecken. Dabei wird der Flussgraph auf einen Erreichbarkeitspfad reduziert, der die Erreichbarkeit für das gewünschte Element darstellt. Mit Hilfe der Bedingungen, die an den Entscheidungspunkten stehen, können bei Zahlenwerten Ungleichungen aufgestellt werden. Wenn diese nicht lösbar sind, können auch nicht erreichbare Pfade gefunden werden.
Eignung:
Das Beispiel im Paper ist ein White-Box Ansatz, da der Flussgraph sehr quellcodenah ist. Außerdem wird das Beispiel nur mit numerischen Werten durchgeführt, bei denen die Suche mit Ungleichungssystemen einleuchtet. Im Paper wird allerdings erwähnt, dass der Algorithmus auch auf nicht-numerische Werte, die für unsere Zwecke auch auftreten, angewendet werden kann. Der Ansatz ist deswegen als interessant einzuschätzen, da es denkbar ist, ihn auch auf Flussdiagramme (z.B. Aktivitätsdiagramme) auf einer höheren Ebene anzuwenden. Man könnte z.B. genau die Kanten abdecken wollen, die variabel sind, also für eine Applikation neu hinzukommen. Eine andere Idee ist, den Algorithmus so anzupassen, dass er variable Kanten und die Belegungsmöglichkeiten des OVM mit berücksichtigt. (Ähnlich wie bei den Modelcheckingansätzen von Kim)..
S. Edwards. Software Testing, Verification and Reliability, 10 (4):
249--262(January 2001)MR: Aus dem Text: Testing 'to contract' is at the heart of specification based testing. Es wird gezeigt wie ein Anzatz von Zweben1992 (der leider nicht auffindbar ist) sich praktisch umsetzen lässt. Dabei spielen die Contracts für die Generierung der Test(ein/aus)gabedaten grundlegende Rolle. Die getesteten Komponenten werden als Flowgraphs dargestellt, womit sie große Analogie zu Aktivitätsdiagrammen besitzen. Obwohl noch Probleme bei der Auswahl der Testdaten (infeasable paths) existieren, wurde gezeigt, dass dieser Ansatz großen Potential besitzt. Für das Experiment wurde Fehlerinjektionsmethoden angewendet (Mutation)..
S. Rapps, and E. Weyuker. ICSE '82: Proceedings of the 6th international conference on Software engineering, page 272--278. Los Alamitos, CA, USA, IEEE Computer Society Press, (1982)