###### tags: `Praktikum`
# 4. Zustandsbasierte Testfälle
# Zur Aufgabe 1.1.1

*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

*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

*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

**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

| Farbe | Pfad |
| ----- | ------------------------------ |
| Rot | S1 -a-> S4 -b-> S3 -c-> S5 |
| Grün | S1 -c-> S2 -d-> S6 -a-> accept |
### Zustandsübergangs-Überdeckung

| 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 |