state transition testing technique
Erfahren Sie, was State Transition Testing ist und wie Sie das State Transition Diagram verwenden:
In unserem letzten Artikel haben wir die Ursache-Wirkungs-Diagramm Testfallschreibtechnik. Fahren wir heute mit der nächsten dynamischen Testfallschreibmethode fort - der State Transition-Technik.
In diesem Dokument wird untersucht, wie dieses Testkonzept auf größere Anwendungen ausgedehnt werden kann, bei denen es sich nicht um FSMs als Ganzes handelt, sondern um einige ihrer Komponenten, um die einzigartige Eigenschaft des Status und der Übergangsregeln zu übernehmen, was zu vielen Vorteilen führt.
Zustandsübergangstests
Zustandsübergangstests sind a Black-Box-Testtechnik , mit dem „Finite State Machines“ getestet werden können.
Eine „Finite State Machine (FSM)“ ist ein System, das sich je nach Eingaben oder Stimuli in unterschiedlichen diskreten Zuständen befindet (z. B. „bereit“, „nicht bereit“, „offen“, „geschlossen“ usw.).
Die diskreten Zustände, mit denen das System endet, hängen von den Regeln des Übergangs des Systems ab. Das heißt, wenn ein System abhängig von seinem früheren Zustand eine unterschiedliche Ausgabe für dieselbe Eingabe liefert, dann ist es ein System mit endlichen Zuständen.
Wenn jede Transaktion im System getestet wird, spricht man von einer Abdeckung mit 0 Schaltern. Wenn das Testen 2 Paare gültiger Transaktionen abdeckt, handelt es sich um eine Abdeckung mit 1 Switch und so weiter.
Was du lernen wirst:
Was ist die State Transition Testing-Technik?
Die Zustandsübergangstechnik ist eine dynamische Testtechnik, die verwendet wird, wenn das System in Bezug auf eine endliche Anzahl von Zuständen definiert ist und die Übergänge zwischen den Zuständen durch die Regeln des Systems geregelt werden.
Mit anderen Worten, diese Technik wird verwendet, wenn Merkmale eines Systems als Zustände dargestellt werden, die sich ineinander verwandeln. Die Transformationen werden durch die Regeln der Software bestimmt. Die bildliche Darstellung kann wie folgt dargestellt werden:
Hier sehen wir also, dass eine Einheit Übergänge von Staat 1 nach Staat 2 wegen einiger Eingang Zustand, der zu einem führt Veranstaltung und führt zu Aktion und schließlich gibt die Ausgabe .
Um es mit einem Beispiel zu erklären:
Sie besuchen einen Geldautomaten und ziehen 1000 US-Dollar ab. Sie bekommen Ihr Geld. Jetzt haben Sie kein Gleichgewicht mehr und stellen genau die gleiche Anfrage, 1000 US-Dollar abzuheben. Diesmal weigert sich ATM, Ihnen das Geld zu geben, weil das Guthaben nicht ausreicht. Also, hier die Überleitung , was die Zustandsänderung ist der frühere Rückzug
Definition der Zustandsübergangstests
Nachdem wir verstanden haben, was State Transition ist, können wir nun zu einer aussagekräftigeren Definition für State Transition-Tests gelangen. Es handelt sich also um eine Art Black-Box-Test, bei dem der Tester das Verhalten von AUT (Application Under Test) anhand verschiedener in einer Sequenz angegebener Eingabebedingungen untersuchen muss.
Das Verhalten des Systems wird sowohl für positive als auch für negative Testwerte aufgezeichnet.
Wann werden State Transition Testing verwendet?
Zustandsübergangstests können in den folgenden Situationen eingesetzt werden:
informatica Interview Fragen und Antworten für 5 Jahre Erfahrung
- Wenn es sich bei der zu testenden Anwendung um ein Echtzeitsystem mit verschiedenen Zuständen und Übergängen handelt.
- Wenn die Anwendung von den Ereignissen / Werten / Bedingungen der Vergangenheit abhängig ist.
- Wenn die Reihenfolge der Ereignisse getestet werden muss.
- Wenn die Anwendung anhand eines endlichen Satzes von Eingabewerten getestet werden muss.
Wann sollten State Transition Testing nicht verwendet werden?
In den folgenden Situationen sollten Sie sich nicht auf State Transition-Tests verlassen:
- Wenn für sequentielle Eingangskombinationen kein Test erforderlich ist.
- Wenn verschiedene Funktionen der Anwendung getestet werden müssen (eher wie explorative Tests).
Beispiel für einen Zustandsübergangstest beim Testen von Software
Im praktischen Szenario erhalten Tester normalerweise die Zustandsübergangsdiagramme, die wir interpretieren müssen.
Diese Diagramme werden entweder von den Business Analysten oder von einem Stakeholder bereitgestellt. Wir verwenden diese Diagramme, um unsere Testfälle zu bestimmen.
Betrachten wir die folgende Situation:
Name der Software - Manage_display_changes
Spezifikationen - Die Software reagiert auf Eingabeanforderungen zum Ändern des Anzeigemodus für ein Zeitanzeigegerät.
Der Anzeigemodus kann auf einen der vier Werte eingestellt werden:
- Zwei entsprechen der Anzeige von Uhrzeit oder Datum.
- Die anderen beiden beim Ändern der Uhrzeit oder des Datums.
Die verschiedenen Zustände sind wie folgt:
- Änderungsmodus (CM): Wenn Sie dies aktivieren, wechselt der Anzeigemodus zwischen „Anzeigezeit (T)“ und „Anzeigedatum (D)“.
- Zurücksetzen (R): Wenn der Anzeigemodus auf T oder D eingestellt ist, bewirkt ein „Zurücksetzen“, dass der Anzeigemodus auf die Modi „Zeit ändern (AT)“ oder „Datum ändern (AD)“ eingestellt wird.
- Zeiteinstellung (TS): Wenn Sie dies aktivieren, kehrt der Anzeigemodus von AT zu T zurück.
- Datum eingestellt (DS): Wenn Sie dies aktivieren, kehrt der Anzeigemodus von AD zu D zurück.
Zustandsübergangsdiagramm
Lassen Sie uns es nun interpretieren:
Hier:
# 1) Verschiedene Staaten sind:
- Anzeigezeit (S1),
- Zeit ändern (S3),
- Anzeigedatum (S2) und
- Änderungsdatum (S4).
# 2) Verschiedene Eingänge sind:
- Modus ändern (CM),
- Zurücksetzen (R),
- Zeiteinstellung (TS),
- Datum eingestellt (DS).
# 3) Verschiedene Ausgänge sind:
- Zeit ändern (AT),
- Anzeigezeit (T),
- Anzeigedatum (D),
- Datum ändern (AD).
# 4) Die geänderten Zustände sind:
- Anzeigezeit (S1),
- Zeit ändern (S3),
- Anzeigedatum (S2) und
- Änderungsdatum (S4).
Schritt 1: Schreiben Sie alle Startzustände. Nehmen Sie dazu jeweils einen Zustand und sehen Sie, wie viele Pfeile daraus hervorgehen.
- Für den Zustand S1 kommen zwei Pfeile heraus. Ein Pfeil wird S3 und ein anderer Pfeil S2 anzeigen.
- Für Zustand S2 - Es gibt 2 Pfeile. Einer geht in den Zustand S1 und der andere in den Zustand S4
- Für Zustand S3 - Nur 1 Pfeil kommt heraus und geht zu Zustand S1
- Für Zustand S4 - Nur 1 Pfeil kommt heraus und geht zu Zustand S2
Lassen Sie uns dies auf unseren Tisch legen:
Da für den Zustand S1 und S2 zwei Pfeile herauskommen, haben wir ihn zweimal geschrieben.
Schritt 2: Notieren Sie für jeden Zustand die endgültigen Übergangszustände.
- Für Zustand S1 - Die Endzustände sind S2 und S3
- Für Zustand S2 - Die Endzustände sind S1 und S4
- Für Zustand S3 - Der Endzustand ist S1
- Für Zustand S4 - Endzustand ist S2
Legen Sie dies als Ausgabe- / Ergebnisstatus auf den Tisch.
Schritt 3: Notieren Sie für jeden Startzustand und den entsprechenden Endzustand die Eingabe- und Ausgabebedingungen
- Damit der Zustand S1 in den Zustand S2 übergeht, ist der Eingang der Änderungsmodus (CM) und der Ausgang das unten gezeigte Anzeigedatum (D):
Notieren Sie auf ähnliche Weise die Eingabebedingungen und deren Ausgabe für alle Zustände wie folgt:
Schritt 4:
Fügen Sie nun die Testfall-ID für jeden unten gezeigten Test hinzu:
Lassen Sie es uns nun in formale Testfälle umwandeln:
Auf diese Weise können alle verbleibenden Testfälle abgeleitet werden. Ich nehme den anderen an Attribute der Testfälle Wie Voraussetzungen sind auch Schweregrad, Priorität, Umgebung, Build usw. im Testfall enthalten.
Fassen Sie die Schritte noch einmal zusammen:
- Identifizieren Sie die Anfangszustände und ihren Endzustand anhand der Linien / Pfeile, die aus dem Anfangszustand herauskommen.
- Ermitteln Sie für jeden Anfangszustand die Eingabebedingung und das Ausgabeergebnis
- Markieren Sie jeden Satz als separaten Testfall.
Weitere Beispiele für Zustandsübergangstechniken
Hier ist ein weiteres Beispiel für die State Transition Testing-Technik in größeren Softwareanwendungen.
Beschreibung:
' Stateful Functional Testing “ Der Ansatz kann verwendet werden, um bestimmte Teile oder Komponenten der Anwendung mit den Merkmalen einer Finite-State-Machine (FSM) zu testen.
Implementierungsschritte:
# 1) Der erste Schritt bei der Implementierung des „Stateful Functional Testing“ besteht darin, verschiedene Komponenten / Teile der Anwendung zu identifizieren, die als FSMs kategorisiert werden können. Die Ein-, Zustände und Ausgänge werden für jede dieser FSMs sorgfältig verfolgt.
#zwei) Der nächste Schritt wäre die Entwicklung von Testfällen für diese FSMs basierend auf Übergangsregeln, Eingaben, Ausgaben und Übergangszuständen.
#3) Der dritte Schritt wäre, das Testen dieser Komponenten in andere Schnittstellenkomponenten zu integrieren, um die Anwendung durchgehend zu validieren.
Dies kann anhand eines Beispiels für eine Anwendung mit dem Namen „Hausprojekt“ erklärt werden, das den Bau eines Hauses mit verschiedenen Anwendungskomponenten wie der Genehmigung der Architektur des Hauses, der Registrierung des Grundstücks und des Hauses sowie der Auswahl des Bauunternehmers verfolgt , Genehmigung des Wohnungsbaudarlehens usw.
Zum Beispiel,
Wir werden erwägen, eine FSM-Komponente des Antrags „Hausprojekt“ zu testen: Genehmigung des Wohnungsbaudarlehens.