Zustandsbezogener Test
Der zustandsbezogene Test (auch zustandsbasierter Test, Testen von Zustandsautomaten) bezeichnet eine Testmethode, bei der Tests aus einer in Form eines Zustandsautomaten vorliegenden Spezifikation abgeleitet werden. Es handelt sich hierbei um ein dynamisches, funktionales Testverfahren aus der Gruppe der Black-Box-Tests.
Anwendung
Der zustandsbezogene Test kommt zur Anwendung, wenn neben den Eingabewerten auch der bisherige Ablauf eines Systems Einfluss auf das Systemverhalten hat. Das Testobjekt kann ein komplettes System mit unterschiedlichen Zuständen aber auch eine Klasse mit verschiedenen Zuständen in einem objektorientierten System sein[1].
Zustandsdiagramm
Das Testobjekt lässt sich in Form eines Zustandsdiagramms modellieren. Von einem Startzustand ausgehend, kann das Testobjekt verschiedene Zustände einnehmen. Auslöser für Zustandsänderungen können Ereignisse oder erfüllte Bedingungen sein.
Testkriterien
Es existieren eine Reihe von Teststrategien, um Zustandsautomaten zu testen. Im Allgemeinen wird die Überdeckung aller Zustände sowie aller Zustandsübergänge angestrebt. Das bedeutet, es werden Testfälle generiert, die mindestens das einmalige Durchlaufen aller Zustände und Zustandsübergänge zum Ziel haben. Auch das Testen aller Ereignisse wird als sinnvoll betrachtet. Analog dem Zweigüberdeckungstest stellt die Überdeckung aller Zustandsübergänge jedoch keinen vollständigen Test dar. Man beachte auch, dass es nach Balzert[2] noch keine gesicherte Aussage darüber gibt, wann ein Zustandsautomat ausreichend getestet ist.
Vorgehensweise
Zur Bestimmung der Testfälle wird aus dem zyklischen Zustandsdiagramm ein Übergangsbaum/Transistionenbaum erstellt. Folgende Vorgehensweise ist möglich[3]:
- der Initialzustand bildet die Wurzel des Baumes
- für jeden möglichen Übergang erhält der Übergangsbaum eine Verzweigung zu einem neuen Knoten, welcher den Folgezustand repräsentiert
- dieser Schritt wird solange wiederholt, bis
- ein bereits besuchter Zustand erreicht wird (round-way trip), bzw.
- ein Zustand keine abgehenden Übergänge besitzt.
In diesem Baum lassen sich nun Pfade entsprechend der Kriterien bestimmen. Jeder Pfad entspricht dabei einem Testfall.
Werkzeuge
- Reactis V2006
- Simulink Design Verifier 1
- Time Partition Testing (TPT)
Siehe auch
Literatur
- Balzert, Helmut: Lehrbuch der Software-Technik: Software-Management, Software-Qualitätssicherung, Unternehmensmodellierung, Berlin: Spektrum Akad. Verl., 1998, ISBN 3-8274-0065-1
- Spillner, Andreas: Basiswissen Softwaretest: Aus- und Weiterbildung zum Certified-Tester, Heidelberg: dpunkt-Verl., 2003
- Poser, Robert: Automatisierte Testplanerstellung für Betriebsstrategien von Hybridfahrzeugen, Technische Universität Dresden, 11/2007
Einzelnachweise
- Spillner, Andreas: Basiswissen Softwaretest: Aus- und Weiterbildung zum Certified-Tester, Heidelberg: dpunkt-Verl., 2003
- Balzert, Helmut: Lehrbuch der Software-Technik: Software-Management, Software-Qualitätssicherung, Unternehmensmodellierung, Berlin: Spektrum Akad. Verl., 1998, ISBN 3-8274-0065-1
- Poser, Robert: Automatisierte Testplanerstellung für Betriebsstrategien von Hybridfahrzeugen, Technische Universität Dresden, 11/2007