Zustandsbasiertes Testen

Das Verhalten von vielen Automaten lässt sich in Form von Zuständen und Zustandsübergängen beschreiben.

Ein Kaffeevollautomat hat einen Zustand, in dem er auf einen Tastendruck des Anwenders wartet. In diesem Zu­stand zeigt er zum Beispiel den Text „Bereit“ auf dem Display an.

Sobald ein Anwender die Bezugstaste drückt, wird eine Menge von Bohnen gemahlen und in die Brühgruppe eingefüllt. Anschließend wird heißes Wasser durch die Pumpe gefördert und dadurch wird die Tasse gefüllt. Nachdem eine gewisse Menge Wasser gefördert wurde, wird das Kaffeepulver in den Tresterbehälter befördert. Anschließend ist der Kaffeevollautomat bereit zur Zubereitung der nächsten Tasse. Das Drücken der Bezugstaste ist demnach ein Zustands­über­gang, da der Vollautomat den Zu­stand verlässt und den Kaffee zubereitet.

Man spricht auch von einem Zustands­über­gang, wenn dieser aus einem Zu­stand A ohne Umweg über einen anderen Zu­stand B zu Zu­stand A führt.

Im einfachsten Fall könnte man sagen, der Kaffeevollautomat hat die Zustände „Bereit“ und „In Zubereitung“. Dann kann man einen Kaffeevollautomaten ein- und ausschalten, so dass es einen dritten Zu­stand „Ausgeschaltet“ gibt.

istqb zustandsbasiert 01

Laut ISTQB wird emp­foh­len, mindestens so viele Testfälle zu entwerfen, dass jeder Zu­stand und jeder Zustands­über­gang in mindestens einem Testfall vorkommt.

In diesem Beispiel gibt es zum Beispiel eine Schleife, die von „Bereit“ zu „In Zubereitung“ zu „Bereit“ führt. Diese Schleife kann man auch mehrfach testen wollen, da der spätere Anwender zwischen Ein- und Ausschalten des Kaffeevollautomaten auch mehrere Tassen Kaffee zubereiten wird.

Um den Kaffeevollautomat vollständig testen zu wollen, müsste jede beliebig lange Kette aus Zuständen und Zustandsübergängen getestet werden. Dieses ist in diesem einfachen Beispiel auf Grund der Schleifen nicht möglich.

Der Lehrplan des ISTQB schlägt in diesem Fall die n-Switch-Überdeckung als Kriterium zur Steuerung der Anzahl der notwendigen Tests vor. Hier wird der Quotient der getesteten n-Switche mit der Anzahl der möglichen n-Switche ermittelt und in Prozent ange­ge­ben. Dabei steht n für einen numerischen Wert, der 0 oder größer sein kann. Je kleiner n ist, desto geringer ist der Testaufwand.

Ein 0-Switch ist jeder mögliche Pfad von einem Startzustand über einen Zustands­über­gang zu einem Endzustand, wobei Startzustand und Endzustand auch identisch sein dürfen. Der Kaffeevollautomat hat genau fünf 0‑Switche:

  1.  Ausgeschaltet –einschalten→ Bereit

  2.  Bereit –ausschalten→ Ausgeschaltet

  3.  Bereit –Bezugstaste–drücken→ In Zubereitung

  4.  In Zubereitung –Zubereitung–beendet→ Bereit

  5.  In Zubereitung –ausschalten→ Ausgeschaltet

Ein 1-Switch ist jeder mögliche Pfad von einem Startzustand über einen Zustands­über­gang zu einem Zwischenübergang und von dort über einen Zustands­über­gang zu einem Endzustand. Auch hier dürfen die Zustände und Zustandsübergänge dieselben sein und es gilt alle möglichen Kombinationen zu bilden. Für den Kaffeevollautomat lassen sich acht 1‑Switche finden:

  1.  Ausgeschaltet –einschalten→ Bereit –ausschalten→ Ausgeschaltet

  2.  Ausgeschaltet –einschalten→ Bereit –Bezugstaste–drücken→ In Zubereitung

  3.  Bereit –ausschalten→ Ausgeschaltet –einschalten→ Bereit

  4.  Bereit –Bezugstaste–drücken→ In Zubereitung –Zubereitung–beendet→ Bereit

  5.  Bereit –Bezugstaste–drücken→ In Zubereitung –ausschalten→ Ausgeschaltet

  6.  In Zubereitung –Zubereitung–beendet→ Bereit –ausschalten→ Ausgeschaltet

  7.  In Zubereitung –Zubereitung–beendet→ Bereit –Bezugstaste–drücken→ In Zubereitung

  8.  In Zubereitung –ausschalten→ Ausgeschaltet –einschalten→ Bereit

Man kann auch allgemein sagen, dass ein n-Switch ein Pfad aus einem Startzustand in einen Endzustand über n Zwischenzustände ist, wobei für die Zustandswechsel nur definierte Zustandsübergänge genutzt werden dürfen. Damit ist gemeint, dass es keinen Pfad geben darf, bei dem auf den Zu­stand „Ausgeschaltet“ direkt der Zu­stand „In Zubereitung“ folgt.

Entsprechend lassen sich aus dem Zu­stands­dia­gramm 13 2-Switche, 21 3-Switche und 34 4-Switche ableiten. Es wird deutlich, dass die Anzahl schnell anwachsen kann, wobei die Stärke immer auch vom konkreten Zustandsautomat abhängig ist.

Je nachdem um was für ein System es sich handelt, sollte der Test Analyst die richtige Überdeckung auswählen und die Testfälle entsprechend erstellen.

Weiterführende Informationen