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.

  • 🎯 Kernversprechen: Jedes Paar von Stufen zwischen je zwei Faktoren erscheint mindestens einmal in den generierten Läufen.
  • 🔢 Bewertung: Ein Array wird als L geschriebenLäuft(StufenFaktoren), also bedeutet L9(3⁴) neun Läufe für vier dreistufige Faktoren.
  • 📉 Umfang der Einsparungen: Vier Faktoren auf jeweils drei Ebenen reduzieren 81 erschöpfende Kombinationen auf neun orthogonale Läufe.
  • 🧮 Ausgleichsregel: Die Spalten müssen so ausgefüllt werden, dass keine zwei Faktoren zusammen verschoben werden, sonst ist die Tabelle nicht orthogonal.
  • Werkzeug: GeneratorSysteme wie PICT und ACTS erstellen das Array automatisch, wodurch die Hauptursache für manuelle Fehler entfällt.
  • ⚠️ Bekannte Grenze: Die paarweise Codeabdeckung kann keinen Fehler erkennen, der drei oder mehr spezifische Werte erfordert.

Orthogonales Array-Testing reduziert die Eingabekombinationen auf eine kleine, ausgewogene Menge von Testfällen.

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.

Orthogonale Array-Notation zur Darstellung von Läufen, Faktoren und Stufen in der L(Läufe)-Formel

  • 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

  1. Identifizieren Sie die unabhängige Variable für das Szenario.
  2. Finden Sie das kleinste Array mit der Anzahl der Läufe.
  3. Ordnen Sie die Faktoren dem Array zu.
  4. Wählen Sie die Werte für alle „übrig gebliebenen“ Ebenen.
  5. 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.

Häufig gestellte Fragen

Es handelt sich um eine Black-Box-Technik. Das Array wird ausschließlich aus Eingabeparametern und deren zulässigen Werten erstellt, ohne Bezugnahme auf Quellcode, Verzweigungen oder internen Zustand, sodass es vor Abschluss der Implementierung entworfen werden kann.

Der Tester erstellt das Eingabemodell, wobei üblicherweise ein Business-Analyst die zulässigen Werte bestätigt. Entwickler tragen bei, wenn ein Parameter intern ist, beispielsweise eine Cache-Einstellung. Die Qualität des Modells, nicht das Array, bestimmt den Wert der Testsuite.

Nein, das hängt von ihnen ab. Partitionierung und Grenzwertanalyse reduzieren jedes Feld auf einige wenige repräsentative Werte, und das Array entscheidet dann, welche dieser Werte kombiniert werden. Die Anwendung des Arrays auf ungefilterte Rohwerte erzeugt eine unnötig große Tabelle.

Es wird ein Array mit gemischten Ebenen benötigt, beispielsweise L18, das zwei- und dreistufige Spalten kombiniert. Wenn kein Standard-Array passt, verarbeitet ein Covering-Array-Generator die Form direkt und gibt eine kleinere Tabelle zurück, als wenn man alle Faktoren auf die gleiche Ebenenanzahl festlegt.

Jeder Fehler, der drei oder mehr bestimmte Werte gleichzeitig erfordert. Empirische Studien von Fehlerdaten zeigen, dass die meisten Fehler durch ein oder zwei Parameter ausgelöst werden. Daher ist die paarweise Abdeckung effektiv, für kritische Merkmale jedoch eine dreifache Abdeckung ratsam.

Hauptsächlich auf Integrations- und Systemebene, wo mehrere Komponenten oder Einstellungen interagieren. Es eignet sich auch für Umgebungsmatrizen wie Browser, Betriebssystem und Bildschirmgröße sowie für jedes konfigurierbare Produkt, bei dem die ausgelieferten Kombinationen den verfügbaren Testzeitraum übersteigen.

Maschinelles Lernen analysiert Anforderungen und Produktionsprotokolle, um relevante Faktoren und Stufen vorzuschlagen, und Fehlerhistorienmodelle bewerten, welche Kombinationen eine dreifache Abdeckung erfordern. Die zugrundeliegende Mathematik ist deterministisch – die eigentliche Herausforderung besteht darin, die in das Modell einfließenden Elemente auszuwählen.

Es erstellt die Modelldatei für einen Generator, die datengesteuerte Schleife zum Einlesen der Zeilen und die zugehörigen Zusicherungen. Überprüfen Sie die Abdeckungsbehauptung mit dem Generator selbst, da ein Sprachmodell eine plausible, aber nicht orthogonale Tabelle erzeugen kann.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: