Was ist ein orthogonaler Array-Test? (Beispiel)
⚡ Intelligente Zusammenfassung
Orthogonales Array-Testing ist eine Black-Box-Technik, die statistische Arrays verwendet, um einen kompakten Testdatensatz zu erstellen, der jedes Paar von Eingabewerten mit weit weniger Testfällen abdeckt, als es für erschöpfende Kombinationstests erforderlich ist.

Orthogonale Array-Tests
Orthogonales Array-Testen (OAT) Orthogonale Arrays sind eine Softwaretesttechnik, die Testfälle mithilfe orthogonaler Arrays erstellt. Es handelt sich um einen statistischen Testansatz, der besonders nützlich ist, wenn das zu testende System eine große Anzahl von Dateneingaben verarbeitet. Durch die paarweise Zuordnung und Kombination der Eingaben maximiert die orthogonale Array-Testung die Testabdeckung, sodass das System mit vergleichsweise weniger Testfällen und in kürzerer Ausführungszeit getestet werden kann.
Wenn beispielsweise eine Fahrkarte überprüft werden muss, müssen Faktoren wie die Anzahl der Fahrgäste, die Fahrkartennummer, die Sitzplatznummern und die Zugnummern geprüft werden. Die Prüfung jedes einzelnen Faktors ist aufwendig. Effizienter ist es, wenn der QA-Ingenieur mehrere Eingaben kombiniert und in einem einzigen Durchlauf prüft. In solchen Fällen kann die Methode des orthogonalen Array-Tests verwendet werden.
Diese Art der Paarung oder Kombination von Eingaben zur Zeitersparnis wird als paarweises Testen bezeichnet, und die OATS-Technik ist eine Möglichkeit, einen paarweisen Testdatensatz zu erstellen. Da die Technik ausschließlich mit Eingabewerten und erwarteten Ergebnissen arbeitet, ohne Einblick in den internen Code, gehört sie zu den Black-Box-Test Familie.
Warum OAT (Orthogonal Array Testing)?
Aufgrund der Komplexität des Codes ist es gegenwärtig eine Herausforderung, dem Kunden ein qualitativ hochwertiges Softwareprodukt zu liefern.
Bei der herkömmlichen Methode umfassen Testsuiten Testfälle, die aus jeder Kombination von Eingabewerten und Vorbedingungen abgeleitet werden. Daher müssen n Testfälle abgedeckt werden.
In der Realität werden die Tester jedoch nicht die Zeit haben, alle Testfälle auszuführen, um die Fehler aufzudecken, da während der Testphase auch andere Aktivitäten wie Dokumentation, Vorschläge und Feedback vom Kunden berücksichtigt werden müssen.
Daher wollten die Testmanager die Anzahl und Qualität der Testfälle optimieren, um ein Maximum zu gewährleisten Testabdeckung mit minimalem Aufwand. Dieser Aufwand wird als Testfalloptimierung bezeichnet.
- Systematische und statistische Methode zum Testen paarweiser Wechselwirkungen.
- Wechselwirkungen und Integrationspunkte sind eine Hauptursache für Defekte.
- Führen Sie eine klar definierte, prägnante Reihe von Testfällen durch, die voraussichtlich die meisten (aber nicht alle) Fehler aufdecken werden.
- Der orthogonale Ansatz garantiert die paarweise Abdeckung aller Variablen.
Die Technik reiht sich somit in die anderen Input-Reduktionsmethoden ein, die ein Team bereits anwendet. Äquivalenzzerlegung und Randwertanalyse Sie entscheiden, welche Werte für ein einzelnes Feld getestet werden sollen; orthogonale Arrays entscheiden, welche dieser Werte zusammen getestet werden sollen.
Wie orthogonale Array-Tests dargestellt werden
Ein orthogonales Array wird durch eine kurze Formel und nicht durch seinen Inhalt beschrieben. Das folgende Diagramm veranschaulicht den Zusammenhang zwischen den drei Größen in dieser Formel und der Form des Arrays.
- Läuft (N) – Anzahl der Zeilen im Array, was der Anzahl der zu generierenden Testfälle entspricht.
- Faktoren (K) – Anzahl der Spalten im Array, was der maximalen Anzahl der verarbeitbaren Variablen entspricht.
- Stufen (V) – Maximale Anzahl an Werten, die für jeden einzelnen Faktor angenommen werden können.
Ein einzelner Faktor hat üblicherweise zwei bis drei zu testende Eingangsgrößen. Diese maximale Anzahl an Eingangsgrößen bestimmt die Stufen.
Lesen Sie den Arraynamen von links nach rechts. L9(34) Die 9 steht für die Anzahl der Durchläufe, die 3 für die Anzahl der Stufen, die jeder Faktor annehmen kann, und die hochgestellte 4 für die Anzahl der Faktoren. Derselbe Artikel verwendet L4(23)Das sind vier Durchläufe für drei Faktoren, die jeweils zwei Stufen haben.
Zwei Eigenschaften machen ein Array orthogonal, und beide müssen erfüllt sein, bevor man der Anzahl der Durchläufe vertrauen kann:
- Balance: Jede Stufe eines Faktors erscheint in ihrer eigenen Spalte gleich oft.
- Paarweise Vollständigkeit: Bei je zwei Spalten kommt jede Kombination einer Ebene aus jeder Spalte gleich oft vor.
Wenn die zweite Eigenschaft nicht erfüllt ist, handelt es sich bei der Tabelle lediglich um eine verkürzte Testmenge und nicht um ein orthogonales Array, und die paarweise Garantie, die die Reduktion rechtfertigt, gilt nicht mehr.
So führen Sie orthogonale Array-Tests durch: Beispiele
- Identifizieren Sie die unabhängige Variable für das Szenario.
- Finden Sie das kleinste Array mit der Anzahl der Läufe.
- Ordnen Sie die Faktoren dem Array zu.
- Wählen Sie die Werte für alle „übrig gebliebenen“ Ebenen.
- Transkribieren Sie die Läufe in Testfälleeinschließlich aller besonders verdächtigen Kombinationen, die nicht generiert werden.
Die beiden unten aufgeführten Beispiele veranschaulichen diese fünf Schritte, zunächst auf ein kleines zweistufiges Problem und anschließend auf ein größeres dreistufiges.
Beispiel 1
Eine Webseite besteht aus drei verschiedenen Abschnitten (Oben, Mitte, Unten), die dem Benutzer einzeln angezeigt oder ausgeblendet werden können.
- Anzahl der Faktoren = 3 (Oben, Mitte, Unten)
- Anzahl der Ebenen (Sichtbarkeit) = 2 (ausgeblendet oder angezeigt)
- Array-Typ = L4(23)
(4 ist die Anzahl der Durchläufe, die nach der Erstellung des OAT-Arrays erreicht wurde)
Wenn wir die herkömmliche Methode anwenden, jeweils einen Abschnitt zu ändern, benötigen wir Testfälle wie 2 x 3 = 6 Testfälle.
| Testfälle | Szenarien | Zu testende Werte |
|---|---|---|
| Testen Sie #1 | HIDDEN | Oben |
| Testen Sie #2 | GEZEIGT | Oben |
| Testen Sie #3 | HIDDEN | Slip |
| Testen Sie #4 | GEZEIGT | Slip |
| Testen Sie #5 | HIDDEN | Mitte |
| Testen Sie #6 | GEZEIGT | Mitte |
Diese sechs Durchläufe variieren jeweils einen Abschnitt und bringen niemals zwei Abschnitte gleichzeitig in einen gewählten Zustand. Das Testen jeder Kombination würde stattdessen 2 Durchläufe erfordern.3 = 8 Läufe.
Wenn wir uns für OAT-Tests entscheiden, benötigen wir 4 Testfälle, wie unten gezeigt:
| Testfälle | TOP | Mitte | Slip |
|---|---|---|---|
| Testen Sie #1 | versteckt | versteckt | versteckt |
| Testen Sie #2 | versteckt | Sichtbar | Sichtbar |
| Testen Sie #3 | Sichtbar | versteckt | Sichtbar |
| Testen Sie #4 | Sichtbar | Sichtbar | versteckt |
Wenn man zwei beliebige Spalten dieser Tabelle überprüft, erscheinen alle vier Paare aus „Versteckt“ und „Sichtbar“ genau einmal. Dies ist die Orthogonalitätseigenschaft in ihrer einfachsten Form.
Beispiel 2
Die Funktionalität eines Mikroprozessors muss getestet werden:
- Temperatur: 100 °C, 150 °C und 200 °C.
- Druck: 2 psi, 5 psi und 8 psi
- Doping Betrag: 4 %, 6 % und 8 %
- Ablagerungsrate: 0.1 mg/s, 0.2 mg/s und 0.3 mg/s
Mit der herkömmlichen Methode benötigen wir 34 = 81 Testfälle, um alle Eingaben abzudecken. Arbeiten wir stattdessen mit der OATS-Methode:
Anzahl der Faktoren = 4 (Temperatur, Druck, Temperatur)ping Betrag und Einzahlungsrate)
Stufen = 3 Stufen pro Faktor (Temperatur hat 3 Stufen – 100 °C, 150 °C und 200 °C – und ebenso haben die anderen Faktoren jeweils 3 Stufen)
Erstellen Sie ein Array wie folgt:
1. Spalten mit der Anzahl der Faktoren
| Testfall # | Temperatur | Druckscheiben | Doping Betrag | Ablagerungsrate |
|---|
2. Geben Sie die Anzahl der Zeilen entsprechend den Stufen pro Faktor ein. Beispiel: Die Temperatur hat 3 Stufen. Fügen Sie daher für jede Temperaturstufe 3 Zeilen ein.
| Testfall # | Temperatur | Druckscheiben | Doping Betrag | Ablagerungsrate |
|---|---|---|---|---|
| 1 | 100C | |||
| 2 | 100C | |||
| 3 | 100C | |||
| 4 | 150C | |||
| 5 | 150C | |||
| 6 | 150C | |||
| 7 | 200C | |||
| 8 | 200C | |||
| 9 | 200C |
3. Nun den Druck aufteilen, tun Sieping Menge und Ablagerungsraten in den Säulen.
Beispiel: Geben Sie 2 psi bei den Temperaturen 100 °C, 150 °C und 200 °C ein, geben Sie entsprechend do ein.ping Betrag 4% für 100°C, 150°C und 200°C und so weiter.
| Testfall # | Temperatur | Druckscheiben | Doping Betrag | Ablagerungsrate |
|---|---|---|---|---|
| 1 | 100C | 2 psi | 4% | 0.1 mg/s |
| 2 | 100C | 5 psi | 6% | 0.2 mg/s |
| 3 | 100C | 8 psi | 8% | 0.3 mg/s |
| 4 | 150C | 2 psi | 4% | 0.1 mg/s |
| 5 | 150C | 5 psi | 6% | 0.2 mg/s |
| 6 | 150C | 8 psi | 8% | 0.3 mg/s |
| 7 | 200C | 2 psi | 4% | 0.1 mg/s |
| 8 | 200C | 5 psi | 6% | 0.2 mg/s |
| 9 | 200C | 8 psi | 8% | 0.3 mg/s |
Daher müssen wir in OAs 9 Testfälle abdecken.
Genauigkeitshinweis: Die verbleibenden drei Spalten werden, wie in Schritt 3 beschrieben, senkrecht nach unten aufgefüllt, wobei der gleiche Druck angewendet wird.ping und Ablagerung dreifach innerhalb jedes Temperaturblocks. Druck und tunping Die Beträge bewegen sich daher gemeinsam, und Paare wie 2 psi mit 6 % treten nie auf, daher stellen die neun Zeilen oben eher einen reduzierten Testdatensatz als ein echtes orthogonales Array dar. Das symmetrische L9(34Das untenstehende Array behält die gleichen neun Läufe bei und deckt dabei alle neun Levelpaare zwischen je zwei Faktoren ab.
| Testfall # | Temperatur | Druckscheiben | Doping Betrag | Ablagerungsrate |
|---|---|---|---|---|
| 1 | 100C | 2 psi | 4% | 0.1 mg/s |
| 2 | 100C | 5 psi | 6% | 0.2 mg/s |
| 3 | 100C | 8 psi | 8% | 0.3 mg/s |
| 4 | 150C | 2 psi | 6% | 0.3 mg/s |
| 5 | 150C | 5 psi | 8% | 0.1 mg/s |
| 6 | 150C | 8 psi | 4% | 0.2 mg/s |
| 7 | 200C | 2 psi | 8% | 0.2 mg/s |
| 8 | 200C | 5 psi | 4% | 0.3 mg/s |
| 9 | 200C | 8 psi | 6% | 0.1 mg/s |
Orthogonales Array-Testing vs. paarweises (alle Paare umfassende) Testing
Die beiden Begriffe werden in vielen Teams synonym verwendet, sind aber nicht identisch. Beide zielen darauf ab, Wertepaare abzudecken, unterscheiden sich jedoch darin, wie streng die resultierende Tabelle eingeschränkt ist.
| Aspekt | Orthogonale Array-Tests | Paarweiser Test (alle Paare) |
|---|---|---|
| Zugrundeliegende Struktur | Orthogonales Array, entlehnt aus der Versuchsplanung | Abdeckungsmatrix, erzeugt durch einen Suchalgorithmus |
| Deckungsregel | Jedes Paar erscheint gleich oft | Jedes Paar erscheint mindestens einmal |
| Faktoren mit ungleichen Niveaus | Es wird ein Array mit gemischten Ebenen benötigt, das möglicherweise nicht für die erforderliche Form existiert. | Wird direkt vom Generator verarbeitet. |
| Typische Laufanzahl | Gleich oder etwas höher, aufgrund der Ausgleichsanforderung | Gleich oder niedriger bei gleichen Eingangsgrößen |
| Beschränkungen zwischen Werten | Schwer innerhalb des Arrays auszudrücken. | Wird von den meisten modernen Generatoren unterstützt |
In der Praxis ist ein balanciertes orthogonales Array das verständlichere Lehrmodell und die sicherere Wahl, wenn Faktoren die gleiche Stufenanzahl aufweisen, während ein überdeckendes Array das ist, was die meisten Tools für reale Projekte mit ungünstigen, ungleichen Eingaben erzeugen. Beide ergänzen sich. Testen der Entscheidungstabelle und Zustandsübergangstests, die auf Geschäftsregeln und Abläufe abzielen, anstatt auf Kombinationen von Werten.
Werkzeuge zum Testen orthogonaler Arrays
Das manuelle Erstellen eines Arrays ist nur für die oben genannten kleinen Beispiele praktikabel. Bei mehr als vier oder fünf Faktoren verwenden die Teams einen Generator, der die Anzahl der Durchläufe automatisch bestimmt.
- BILD: ein Open-Source-Befehlszeilengenerator von MicrosoftParameter und ihre Werte werden in einer einfachen Textdatei gespeichert, und das Tool gibt die Kombinationsmenge aus. Einschränkungen und Untermodelle werden unterstützt, was wichtig ist, wenn bestimmte Wertepaare ungültig sind. Siehe die PICT-Repository.
- ACTS: Ein Forschungstool des NIST, das Abdeckungsarrays für zwei- bis sechsfache Abdeckung generiert und außerdem eine Bibliothek vorab berechneter Arrays veröffentlicht. Es ist verfügbar unter: NIST-Kombinationstestprojekt.
- Kommerzielle kombinatorische Plattformen: Gehostete Tools fügen Anforderungen hinzu tracFunktionalität, erwartete Ergebnisse und Export in ein Testmanagementsystem, was sich für größere Teams eignet, die einen Prüfpfad benötigen.
- Veröffentlichte Array-Bibliotheken: Standard-Arrays wie L4, L8, L9, L16 und L18 sind tabellarisch dargestellt und können direkt kopiert werden, wenn die Faktor- und Stufenanzahlen übereinstimmen.
Unabhängig davon, welches Tool die Tabelle erzeugt, müssen die generierten Zeilen noch in ausführbare Fälle mit realen Daten und erwarteten Ergebnissen umgewandelt und dann wie jede andere Suite innerhalb der Datenbank eingeplant werden. Softwaretesttechniken wird bereits im Projekt verwendet.
Vorteile der orthogonalen Array-Tests
- Garantiert das Testen der paarweisen Kombinationen aller ausgewählten Variablen.
- Verringert die Anzahl der Testfälle.
- Erzeugt weniger Testfälle, die dennoch die Interaktion jedes Variablenpaares abdecken.
- Eine komplexe Kombination der Variablen kann verarbeitet werden.
- Ist einfacher zu generieren und weniger fehleranfällig als manuell erstellte Testsätze.
- Es ist nützlich für Integrationstestsund gleichermaßen nützlich für Konfigurationstests, wo die Kombinationen aus Browser, Betriebssystem und Gerät sich rasant vervielfachen.
- Es verbessert die Produktivität durch kürzere Testzyklen und Testzeiten.
Die Einsparungen während Regressionstests, weil eine kleinere, ausgewogene Suite günstig genug ist, um in jedem Zyklus erneut ausgeführt zu werden, während eine umfassende Kombinationssuite in der Regel nur einmal ausgeführt und dann stillschweigend aufgegeben wird.
Nachteile des orthogonalen Array-Tests
- Mit zunehmender Datenmenge steigt auch die Komplexität der Testfallgestaltung. Dadurch erhöhen sich der manuelle Aufwand und der Zeitaufwand, und die Tester müssen sich an die Vorgaben halten. Automatisierungstests.
- Die paarweise Abdeckung ist keine vollständige Abdeckung. Ein Fehler, der nur auftritt, wenn drei bestimmte Werte gemeinsam vorkommen, kann das Array unberührt durchlaufen.
- Faktoren mit unterschiedlicher Anzahl von Stufen lassen sich nicht sauber auf ein Standardarray abbilden, daher ist ein Array mit gemischten Stufen oder ein Array-Generator erforderlich.
- Die Wahl der Stufen ist eine Ermessensfrage. Wenn ein wichtiger Wert im Eingabemodell fehlt, kann ihn kein Array wiederherstellen.
- Einschränkungen zwischen Werten, wie beispielsweise eine Zahlungsmethode, die nur in einem Land gültig ist, sind schwer auszudrücken und führen in der Regel zu ungültigen Zeilen, die manuell entfernt werden müssen.
Keine dieser Einschränkungen schließt die Technik aus; sie setzen ihr lediglich Grenzen. Orthogonale Arrays reduzieren das Kombinationsproblem, während Risikoanalyse und Domänentests Entscheiden Sie, welche Faktoren überhaupt einen Platz im Modell verdienen.
Fehler oder Irrtümer bei der Durchführung von OAT
- Die Testbemühungen wurden auf den falschen Bereich der Anwendung ausgerichtet.
- Die falschen Parameter wurden kombiniert.
- Anwendung von orthogonalen Array-Tests, wenn die Eingabemenge klein genug ist, um sie vollständig zu testen.
- Manuelle Anwendung von orthogonalen Array-Tests auf ein Modell, das groß genug ist, um einen Generator zu benötigen.
- Bei risikoreichen Anwendungen, bei denen eine tiefere Abdeckung erforderlich ist, wird ausschließlich auf orthogonale Array-Tests gesetzt.
Der letzte Punkt verursacht in der Praxis den größten Schaden. Bei sicherheitskritischen oder finanziellen Merkmalen stellt die paarweise Zuordnung eher eine Untergrenze als eine Obergrenze dar und wird üblicherweise durch gezielte Fälle ergänzt. Systemtests Ebene und mit dem umfassenderen Plan, der in Arten von Softwaretests.

