Referenzanforderung: Anwendung von Blockdesigns auf Softwaretests

8

Ich habe angefangen, Inzidenzstrukturen und kombinatorische Designs zu untersuchen (mögliche Motivation: einige Strukturen in der verallgemeinerten Selbstorganisation nach oben zu begrenzen), und der Wikipedia-Artikel gibt die folgende interessante, aber ungeklärte Aussage ab: Blockdesigns haben Anwendung auf Softwaretests. (Die Wikipedia-Seite mit dem Anspruch ist hier ).

Mein Google-Fu findet keine gute Referenz für diese Anwendung. Kann mir jemand einen Hinweis geben?

Aaron Sterling
quelle

Antworten:

8

Angenommen, Sie haben eine Software, die eine Liste von n Variablen s 1 , s 2 , ..., s n enthält, und nehmen an, dass jede dieser Variablen einen Wertebereich annehmen kann. Angenommen, Sie möchten das Programm auf wechselseitige Interaktionen testen, dh Sie möchten testen, ob das Programm für jedes Variablenpaar s i und s j und jeden möglichen Wert, den diese Variablen annehmen können, korrekt ausgeführt wird .

Um dies durch eine Brute-Force zu tun - indem jedes Paar i und j einzeln verarbeitet und dann jeder zulässige Wert von s i und s j getestet wird (während die anderen willkürlich ausgewählt werden) - müsste eine enorme Anzahl von Werten getestet werden Fälle.

Wir können jedoch in einem einzigen Test mehrere Wechselwirkungen in beide Richtungen testen. Wenn wir zum Beispiel drei Variablen s 1 , s 2 und s 3 haben und testen, wenn s 1 = 1, s 2 = 2 und s 3 = 0, dann haben wir drei mögliche Wechselwirkungen in beide Richtungen gleichzeitig getestet.

Wir können eine Testsuite für das Programm basierend auf einem abdeckenden Array entwerfen - die Spalten repräsentieren die Variablen und die Zeilen repräsentieren den spezifischen durchzuführenden Test (also sind weniger Zeilen besser). In einem Stärke-2-Abdeckungsarray existiert innerhalb von zwei beliebigen Spalten i und j jedes mögliche Paar der Variablen s i und s j . Es gibt Abdeckungsarrays mit höherer Festigkeit, die auf T-Way-Wechselwirkungen testen können (aber normalerweise sind Wechselwirkungen das Ergebnis nur weniger Komponenten).

Sätze von zueinander orthogonalen lateinischen Quadraten (und verschiedene andere Blockdesigns) bilden besonders effiziente Abdeckungsarrays.

Douglas S. Stones
quelle