###### tags: `Praktikum` # 4. Zustandsbasierte Testfälle # Zur Aufgabe 1.1.1 ![](https://i.imgur.com/7rZNhw1.png) *Zum Vorgehen: Überblick über Situation schaffen, alle Pfade zu jedem Zustand aufschreiben* |**S1**| | |**S2**| | |------|---------------|---|------|---------------| |a |Robustheitstest| |a |Konformanztest | |b |S2 | |b |Robustheitstest| |c |Robustheitstest| |c |S4 | |d |Robustheitstest| |d |S3 | | | | | | | |**S3**| | |**S4**| | |a |Robustheitstest| |a |Konformanztest | |b |S1 | |b |S2 | |c |Robustheitstest| |c |Robustheitstest| |d |S4 | |d |Robustheitstest| <div style="page-break-after: always;"></div> ### a) Geben Sie für diesen Automaten den Übergangsbaum für den Zustands-Konformanztests an ![](https://i.imgur.com/Yqk2y32.png) *Verhalten konform des Zustandsdiagramms Aufzählung aller Verläufe, die ohne Schleife direkt zum Ziel führen* 1. b->a 2. b->c->a - b->c->b->... -> ignorierbar, weil Schleife zu S2 vorhanden - b->d->d->... -> ignorierbar, weil Schleife zu S4 vorhanden Abbruch durch Schleife (schonmal über höhere ebene erreicht) oder akzeptiereder Zustand erreicht <div style="page-break-after: always;"></div> ### b) Geben Sie für diesen Automaten den Übergangsbaum für den Zustands-Robustheitstests an ![](https://i.imgur.com/g3Aw8jq.png) *Nicht konformante Benutzung des Zustandsdiagramms Aufzählung aller Verläufe, die nicht definiert sind* 1. a 2. c 3. b->b - b->c->b->... -> ignorierbar, weil Schleife zu S2 4. b->c->c 5. b->c->d 6. b->d->a - b->d->b->... -> ignorierbar, weil Schleife zu S1 7. b->d->c - b->d->d->... kürzerer Weg zu S4 vorhanden/schon getestet Baum wo jeder Kante (ob zu gultigem oder ungültegen Zustand) aufgeführt wird <div style="page-break-after: always;"></div> ### c) Geben Sie auf der Basis der vorigen Teilaufgaben eine möglichst kleine Anzahl von Testfällen als Folge von Ereignissen und Zuständen an, die eine vollständige, also 100%ige Zustandsüberdeckung zu erreichen *Möglichst wenige Pfade, um jeden Zustand erreicht zu haben?!? Aufzählung möglichst weniger Pfade, wobei nach allen Tests jeder Zustand mind 1 Mal erreicht werden sollte -> Sprich S1, S2, S3, S4* S1 -b-> S2 -d-> S3 -d-> S4 -a-> accept ### d) Geben Sie auf der Basis der vorigen Teilaufgaben eine möglichst kleine Anzahl von Testfällen an, die zusätzlich benötigt werden um eine 100%ige Zustandsübergangs-Überdeckung zu erreichen *Möglichst wenige Tests, um alle gültigen Pfade mindestens 1 mal abgelaufen zu sein?!? Aufzählung aller Pfade, so dass jeder Pfad(transition) mindestens 1 mal gegangen wurde -> Sprich alle Pfeile in der Zeichnung ++ -> Siehe b)* b->d->b->b->a b->d->d->b->c->a ### e) Prüfen Sie Ihre Vorschläge unter c) und d) jeweils durch entsprechende Tests in den Testumgebungen und stellen Sie die Ergebnisse mit der jeweils 100%igen Überdeckung vor. *siehe Entwicklungsumgebung* <div style="page-break-after: always;"></div> # Zur Aufgabe 1.1.2 ![](https://i.imgur.com/7Ve5z3M.png) **S1**| | |**S2**| | |**S3**| | |------|---------------|---|------|---------------|---|------|---------------| |a |S4 | |a |Robustheitstest| |a |Robustheitstest| |b |Robustheitstest| |b |S4 | |b |Robustheitstest| |c |S2 | |c |Robustheitstest| |c |S5 | |d |Robustheitstest| |d |S6 | |d |Robustheitstest| |e |S2 | |e |Robustheitstest| |e |Robustheitstest| | | | | | | | |**S4**| | |**S5**| | |**S6**| | |a |Robustheitstest| |a |S3 | |a |Konformanztest | |b |S3 | |b |Robustheitstest| |b |Robustheitstest| |c |S6 | |c |Robustheitstest| |c |Robustheitstest| |d |Robustheitstest| |d |Robustheitstest| |d |S5 | |e |Robustheitstest| |e |Robustheitstest| |e |Robustheitstest| <div style="page-break-after: always;"></div> ### Zustandsüberdeckung ![](https://i.imgur.com/GpHjNrc.png) | Farbe | Pfad | | ----- | ------------------------------ | | Rot | S1 -a-> S4 -b-> S3 -c-> S5 | | Grün | S1 -c-> S2 -d-> S6 -a-> accept | ### Zustandsübergangs-Überdeckung ![](https://i.imgur.com/tK1Nffm.png) | Farbe | Pfad | | ----- | ---------------------------------- | | Rot | S1 -a-> S4 -b-> S3 -c-> S5 -a-> S3 | | Grün | S1 -c-> S2 -b-> S4 -c-> S6 -d-> S5 | | Blau | S1 -e-> S2 -d-> S6 -a-> final |