Ich werde hier nicht auf bekannte und weit verbreitete Testentwurfstechniken wie Äquivalenzklassen, Grenzwerttests und paarweise Tests eingehen, sondern auf andere, weniger verbreitete Techniken eingehen. Sie können auch meinen Artikel über Probleme mit kombinatorischen Testdesigntechniken lesen.
Entscheidungstabellen sind ein hervorragendes Werkzeug zur Dokumentation von Anforderungen und zur Beschreibung der Funktionalität einer Anwendung. Diese Tabellen eignen sich sehr gut zur Beschreibung der Geschäftslogik der Anwendung und können darüber hinaus als solide Grundlage für die Erstellung von Testfällen dienen. Fehlt der getesteten Anwendung eine ordnungsgemäße Dokumentation, ist dies ein guter Grund, Entscheidungstabellen zu verwenden. Durch die kompakte und einfache Darstellung von Anforderungen ist die Erstellung von Testfällen ganz einfach.
Ansatz:
Entscheidungstabellen beschreiben die Logik der Anwendung basierend auf den Entitäten (Eigenschaften/Bedingungen) des Systemstatus. Jede Entscheidungstabelle sollte nur einen Zustand des Systems beschreiben.
| Regel 1 | Regel 2 | … | Regel N |
---|---|---|---|---|
Entitäten | | | | |
Eigentum 1 | | | | |
… | | | | |
Eigentum M | | | | |
Aktionen | | | | |
Aktion 1 | | | | |
… | | | | |
Aktion P | | | | |
Entität (Eigenschaft) von 1 bis M repräsentiert verschiedene Eigenschaften des Systems; Sie werden in der Tabelle als Eingabedaten dargestellt, die in das System eingegeben werden können. Aktionen von 1 bis P sind Aktionen, die mit der angegebenen Kombination von Entitäten ausgeführt werden können. Abhängig von der Kombination aller Eingabedaten von Entitäten nehmen Aktionen die erforderlichen Werte an. Jede Regel definiert einen eindeutigen Satz von Eingabedaten für alle Eigenschaften, die zur Ausführung bestimmter Aktionen führen.
Nach dem Erstellen der Entscheidungstabelle ist es normalerweise möglich, die Tabelle zu vereinfachen, indem beispielsweise einige oder alle der unmöglichen Szenarien entfernt werden. Anschließend kann die Tabelle in Testfälle umgewandelt werden.
Zustandsübergangstests sind wie Entscheidungstabellentests ein wertvolles Werkzeug zur Dokumentation von Anforderungen und zur Beschreibung der Struktur und des Designs eines Systems. Im Gegensatz zum Entscheidungstabellentest, der einen bestimmten Systemzustand beschreibt, beschreibt der Zustandsübergangstest, wie sich diese Zustände des Systems ändern können. Diagramme definieren alle Ereignisse, die während des Betriebs der Anwendung auftreten, und wie die Anwendung auf diese Ereignisse reagiert.
Ansatz:
Es gibt zwei Arten der visuellen Darstellung dieser Technik:
Betrachten wir als Beispiel die Reservierung von Flugtickets. Die Funktionsweise ist ungefähr wie folgt: Zunächst übermitteln Kunden der Fluggesellschaft Informationen zur Reservierung – Abflugort, Zielort, Datum und Uhrzeit des Abflugs. Ein Mitarbeiter einer Fluggesellschaft fungiert als Schnittstelle zwischen dem Kunden und dem Ticketreservierungssystem und nutzt die vom Kunden bereitgestellten Informationen, um eine Reservierung zu erstellen. Danach befindet sich die Reservierung des Kunden im Status „Gemacht“. Zusätzlich startet das System nach dem Erstellen der Reservierung einen Timer. Wenn der Timer abläuft und das reservierte Ticket nicht bezahlt wurde, storniert das System die Reservierung für dieses Ticket.
Der Kreis stellt den Zustand des Flugticketreservierungssystems dar, den „Made“-Zustand. Der Pfeil zeigt einen Übergang in den Zustand „Made“ an. Die Beschreibung unter dem Pfeil („get_info“) ist ein Ereignis, das von außerhalb des Systems stammt. Der Befehl in der Beschreibung unterhalb des Pfeils (nach „/“) bedeutet, dass das System als Reaktion auf das Ereignis eine Aktion ausgeführt hat – in diesem Fall das Starten eines Timers. Der schwarze Kreis markiert den Start-/Einstiegspunkt des Diagramms.
Wenn der Timer nicht abläuft und wir das reservierte Ticket bezahlt haben, wechselt das System in den Status „Bezahlt“. Dies wird durch den mit „payMoney“ beschrifteten Pfeil und den Übergang vom „Made“-Zustand zum „Paid“-Zustand dargestellt.
Zustandsübergangstabellen sind Tabellen, die aus vier Spalten bestehen: Aktueller Zustand, Ereignis, Aktion und Nächster Zustand.
Der Vorteil von Zustandsübergangstabellen besteht darin, dass sie alle möglichen Zustandsübergangsszenarien definieren, nicht nur die richtigen. Daher führen Zustandsübergangstabellen häufig zur Entdeckung undefinierter, undokumentierter Zustandsübergangskombinationen, die vor dem Schreiben des Codes besser identifiziert werden sollten.
Wie viele Kombinationen gibt es für das Wertepaar „1“ und „2“? {1,1}, {1,2}, {2,1} und {2,2}. Ein orthogonales Array ist ein zweidimensionales Array mit einer besonderen Eigenschaft: In zwei beliebigen Spalten des Arrays sind alle Wertekombinationen in diesen Spalten vorhanden. Das heißt, wenn Sie zwei beliebige Spalten aus dem orthogonalen Array nehmen, in denen die Werte nur „1“ oder „2“ sein können, finden Sie die folgenden Zeilen für diese Spalten: {1,1}, {1,2}, { 2,1} und {2,2}.
Betrachten Sie als Beispiel ein System mit drei Eingabeparametern, von denen jeder binär ist (dh den Wert „1“ oder „2“ annimmt).
Reihen | Variable 1 | Variable 2 | Variable 3 |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 2 | 1 | 1 |
3 | 1 | 2 | 1 |
4 | 1 | 1 | 2 |
5 | 2 | 2 | 1 |
6 | 1 | 2 | 2 |
7 | 2 | 1 | 2 |
8 | 2 | 2 | 2 |
Orthogonales Array wird dargestellt als - L_4(2^3), wobei L_4 angibt, dass das orthogonale Array vier Zeilen hat, und (2^3) angibt, dass das Array drei Spalten hat, mit Werten, die entweder „1“ oder „2“ sein können ".
Reihen | Variable 1 | Variable 2 | Variable 3 |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 1 | 2 | 2 |
3 | 2 | 1 | 2 |
4 | 2 | 2 | 1 |
L_4, wobei 4 die Anzahl der Zeilen ist
2^3, wobei 2 der Maximalwert (== 2, 3, …, N) und 3 die Anzahl der Spalten ist
Orthogonales Array – ist ein zweidimensionales Array mit der folgenden Eigenschaft: Wählen Sie zwei beliebige Spalten des Arrays aus, und Sie finden alle Wertekombinationen in diesen Spalten.
Verwendung orthogonaler Arrays:
Der Kern des AllPairs-Algorithmus besteht darin, dass nicht alle Wertekombinationen für alle Variablen getestet werden müssen. Stattdessen konzentriert es sich auf das Testen aller Wertekombinationen für jedes Variablenpaar.
Als QS-Experte ist es wichtig, diese Nuancen zu verstehen. Das Verständnis der Komplexität kombinatorischer Testdesigntechniken ist in manchen Fällen zwar theoretisch, ermöglicht es QA-Experten jedoch, die komplizierte Geschäftslogik von Apps effektiv zu testen und ihren Benutzern qualitativ hochwertige Software bereitzustellen.