Der zustandsbasierte Test in der Praxis

In diesem Artikel beschreibe ich, wie der zustandsbasierte Test als Methodik für die Herleitung von Testfällen für ein Statuskonzept, einen Workflow oder einen Zustandsautomaten verwendet werden kann. Es wird eine Zustandsanalyse durchgeführt und dargestellt, wie der Standardüberdeckungsgrad ermittelt werden kann. Danach leite ich logische und konkrete Testfälle her.

sponsored by smartwebapps.de

1 Der zustandsbasierte Test

1.1 Was ist der zustandsbasierte Test?

Beim zustandsbasierten Test werden die Testfälle unter Zugrundelegung der Zustände und Zustandsübergänge des Testobjekts hergeleitet. Der Zustand wird auch oft als Status bezeichnet. Im weiteren Verlauf werde ich der Einfachheit halber nur vom Zustand sprechen.

1.2 Dazu wird zuerst eine Zustandsanalyse durchgeführt.

Das Ergebnis von dieser (siehe „Einfaches Beispiel zum zustandsbasierten Test„) ist eine Abbildung, aus der folgende Fragen beantwortet werden können:

  • Welche Zustände/Status kann das Testobjekt annehmen?
  • Welche Zustandsübergänge sind möglich?
  • Welche auslösenden Ereignisse bewirken unter welchen Bedingungen die Zustandsübergänge? (z.B. entsprechende Schaltfläche in der Benutzeroberfläche wird gedrückt)
  • Welche Wirkungen resultieren aus den Zustandsübergängen? (z.B. Maske öffnet sich, Betrag wird angezeigt, Bescheid wird gedruckt etc.)

1.3 Wie wird ermittelt, wie viel Prozent ich geprüft habe?

Die Vollständigkeit der Prüfung wird als Überdeckungsgrad bezeichnet. Dabei werden alle möglichen Zustände und Zustandsübergänge berücksichtigt. Eine gute Faustzahl ergibt sich aus folgender Rechnung:

zustandsbasierter Test Standardüberdeckungsgrad Formel

zustandsbasierter Test Standardüberdeckungsgrad Formel

Angestrebtes Ziel sollte die Überprüfung aller Zustandsübergänge sein.

1.4 Standardüberdeckungsgrad

Der Standardüberdeckungsgrad (Minimalforderung) ist die Abdeckung aller Zustände durch Testfälle.

1.5 Welche Fehler deckt der zustandsbasierte Test auf?

  • Fehlender oder inkorrekter Zustandsübergang (ein eintretendes Ereignis wie z.B. eine Aktion des Benutzers führt zu einem falschen Zustand)
  • Fehlendes oder inkorrektes Ereignis (z.B. trotz Aktion des Benutzers ändert sich der Zustand nicht).
  • Fehlende oder inkorrekte Wirkung (z.B. trotz Zustandswechsel wird keine Maske aktiv bzw. beim Zustandswechsel wird ein leerer Bescheid gedruckt, obwohl dieser viel später im Prozess kommt).
  • Fehlende, unerwartete oder korrupte Zustände (das Verhalten des Systems wird unkontrollierbar).
  • Schleichpfade (z.B. wechselt der Status, egal welche Schaltfläche man betätigt, obwohl dies eigentlich nur bei einer ganz bestimmten zulässig ist)
  • Falltüren (die Software akzeptiert als Ereignis, wenn ich 2mal den Buchstaben A auf der Tastatur betätige und wechselt den Status des Vorgangs)

1.6 Einfaches Beispiel zum zustandsbasierten Test

Hier ist das Zustandsübergangsdiagramm, dass aus einer Zustandsanalyse eines Parkscheinautomatensystems resultiert:

Zustandsautomat ISTQB zustandsbasierter Test

Zustandsautomat ISTQB zustandsbasierter Test

1.6.1 Entworfene logische Testfälle

1. Variante: beim ersten Einwurf bezahlt

Aktion Zustand
Automat ist bereit à Karte eingeschoben wartet auf Geld
Geld wird eingeworfen + Betrag reicht aus bereit

2. Variante: Bezahlung nach mehrmaligen Einwurf

Aktion Zustand
Automat ist bereit à Karte eingeschoben wartet auf Geld
Geld wird eingeworfen + Betrag reicht nicht aus wartet auf Geld
Geld wird eingeworfen + Betrag reicht aus bereit

1.6.2 Abgeleitete konkrete Testfälle

Nummer Name Vorbedingung Schrittname Aktion des Benutzers erwartetes Ergebnis
1 beim ersten Einwurf bezahlt Automat ist im Zustand „bereit“keine Karte eingeschoben Schritt1 Der Benutzer schiebt die Parkkarte in den Automat. Der Automat zeigt den zu zahlenden Betrag an und ist im Zustand „wartet auf Geld“
Schritt2 Der Benutzer wirft 2 € ein Der Automat wirft die Karte aus ,öffnet die Schranke und geht in den Zustand „bereit“.
2 Bezahlung nach mehrmaligen Einwurf Automat ist im Zustand „bereit“keine Karte eingeschoben Schritt1 Der Benutzer schiebt die Parkkarte in den Automat. Der Automat zeigt den zu zahlenden Betrag an und ist im Zustand „wartet auf Geld“
Schritt2 Der Benutzer wirft 1 € ein Der Automat zeigt den Restbetrag an und befindet sich im Zustand „wartet auf Geld“.
Schritt3 Der Benutzer wirft 1 € ein Der Automat wirft die Karte aus ,öffnet die Schranke und geht in den Zustand „bereit“.

1.7 0-switch coverage

Nützliche Informationen zu 0-switch coverage findet man hier. Von 0-switch coverage wird dann gesprochen, wenn eine Menge von Testfällen alle Sequenzen von Zustandsübergängen testen, bei denen es von einem Startzustand direkt in einen Zielzustand geht. Die für 0-switch coverage benötigte Anzahl der Testfälle wird ermittelt, wenn man in jedem Status des Zustandsübergangsdiagramms überlegt, in welchen weiteren Status es gehen könnte. Es handelt sich also um ein Maß der Testabdeckung.

Startzustand –> Zielzustand

Beispiele aus der Menge der für 0-switch coverage benötigten Testfälle zu obigen Zustandsübergangsdiagramms:

Startzustand Zielzustand
bereit warten auf Geld
warten auf Geld warten auf Geld
warten auf Geld bereit

Weitere Beispiele zu 0-switch coverage für die ISTQB Zertifizierung gibt es auf der Lernplattform.

1.8 1-switch coverage

Von 1-switch coverage wird dann gesprochen, wenn eine Menge von Testfällen alle Sequenzen von Zustandsübergängen testen, bei denen es von einem Startzustand über einen Zwischenzustand in einen Zielzustand geht. Die für 1-switch coverage benötigte Anzahl der Testfälle wird ermittelt, wenn man in jedem Status des Zustandsübergangsdiagramms überlegt, wohin der Zustand mit 2 Schritten wechseln kann. Es handelt sich also um ein Maß der Testabdeckung.

Startzustand –> Zwischenzustand –> Zielzustand

Beispiele aus der Menge der für 1-switch coverage benötigten Testfälle zu obigen Zustandsübergangsdiagramms:

Startzustand Zwischenzustand Zielzustand
bereit warten auf Geld warten auf Geld
bereit warten auf Geld bereit
warten auf Geld warten auf Geld warten auf Geld
warten auf Geld warten auf Geld bereit
warten auf Geld bereit warten auf Geld

Eine Beispielaufgabe für 1-switch coverage für certified tester habe ich auch wieder verlinkt.

Bei Fragen und Anregungen könnt ihr mir einfach einen Kommentar hinterlassen! Vielen Dank für das Lesen!

5 Gedanken zu „Der zustandsbasierte Test in der Praxis

  1. Hi Stefan,
    im Kommentar steht:
    „(ist in Pfeilrichtigung; S4 nach S1 ginge nicht)“

    Gemeint ist:
    „(ist in Pfeilrichtigung; S1 nach S4 ginge nicht)“

    Schöne Grüße
    Uli

  2. Hallo erstmals.

    Erstamls vielen vielen Dank für deine Anwort und für die Mühe.

    Eine letzte Frage hätte ich noch bezüglich Frage 2 zum o Switch-Coverage.

    Die richtige Antwort war ja von S3 nach S4.
    Welche andere Möglichkeiten hätte man?
    Von S1 nach S2 hatte ich schon angegeben.

    Ginge auch > von S4 nach S1?

    Angenommen wir hätten die Zustandsübergangstabelle von der Frage 1.
    Welche Möglichkeiten hätte man hier bezüglich 0-Switch-Coverage?

    Wären > von S1 nach S2
    oder > von S2 nach S3
    oder > von S3 nach S4
    oder > von S4 nach S1

    auch gültig?

    Auf eine baldige Antwort würde ich mich sehr freuen und wäre dir sehr dankbar.

    MfG
    Jo

  3. Servus.

    Ich habe da eine Frage zum 1-switch coverage.
    Irgendwie kann ich das nicht nachvollziehen.

    Ich habe mir die Musterfragen angeschaut und zwei Fragen haben mir Kopfzerbrechen bereitet.
    Die Frage war: Gegeben ist eine Zustandübergangstabelle mit 4 Zuständen (S1 bis S4) und 5
    Zustandsübergängen (A bis E):

    A B C D F

    S1 S2

    S2 S1

    S2 S3

    S3 S4

    S4 S1

    Wie viele gültige 1-switch Coverage gibt es laut Zustandübergangstabelle?

    Die Antwort heisst > 6
    Aber irgendwie komme ich da nicht drauf wieso.

    Bei der zweiten Frage ging es um 0-switch coverage. Die Zustandübergangstabelle war wie folgt:
    A B C D E

    S1 S2

    S2 S1

    S2 S1

    S3 S4

    S4 S1

    Welches ist ein gültiger 0-switch coverage?
    Die Lösung ist > Von S3 nach S4

    Nun die Frage ist, wäre von S1 nach S2 auch richtig in diese Tabelle, falls diese Option auch bestünde auch richtig?
    Ich hoffe ich habe das Prinzip 0-switch coverage auch richtig verstanden.

    Ich wäre dir sehr dankbar und würde mich sehr freuen, wenn du mir erklären könntest wie man darauf kommt.

    MfG
    Jo

Schreibe einen Kommentar zu Uli Seidel Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert