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?

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.



Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.