---
# System prepended metadata

title: Mitschrift Vorlesung 1.12.2020

---

# Mitschrift Vorlesung 1.12.2020

Zustandsüberdeckung

MMBÜ -> m² Varianten maximal
welche Testfälle brauch man (atomare Auswertung)

man nimmt sich den ersten fall
z.B.
0 0 0 welcher als Zustand 0 ergibt
dann schauen wir uns alle Testfälle an, die sich nur um 1 Wert ändert und wo der Zustand sich ändert.
Ist dieser vorhanden, so brauch man beide Tests für MMÜ und geht zum nächsten nicht als benötigt markierten Fall und wiederholt das ganze.
Sollte man keinen Testfall finden, der sich bei 1 Wertänderung zu einem anderen Zustand führt, so brauch man diesen Testfall nicht!!!
Das macht man dann einmal die komplette Tabelle lang:



| a   | b   | c   | Auswertung | benötigt |
| --- | --- | --- | ---------- | -------- |
| 0   | 0   | 0   | 1          | -        |
| 0   | 0   | 1   | 1          | x        |
| 0   | 1   | 0   | 1          | x        |
| 0   | 1   | 1   | 0          | x        |
| 1   | 0   | 0   | 1          | x        |
| 1   | 0   | 1   | 0          | x        |
| 1   | 1   | 0   | 0          | x        |
| 1   | 1   | 1   | 0          | -        |

den Fall 0 0 0 brauch man nicht, da alle, die in der Auswertung 0 haben mind 2 Änderungen benötigen

der Fall 0 0 1 hat eine Auswertung von 1
die erste Auswertung, die 0 ergibt wäre 0 1 1
und diese brauch nur 1 wertänderung, folglich brauch man genau diese beiden Tests.

Nur weil man beide ausgewählt hat, bedeutet das aber nicht,das man sich diese beiden Fälle nicht nochmal anschauen darf um einen anderen Testfall als benötigt zu definieren!!!

Variante MCDC -> 2m Varianten maximal
man schaut sich alle Testfälle an, und sucht Beispiele, 
mcdc -> a und b sind gleich nur c ändert sich und ergebnis änert sich, dann a und c bleiben und nur b ändert sich
und dann bleiben b und c und nur a änder sich
UND JEWEILS DIE AUSWERTUNG ÄNDERT SICH KOMPLETT!!!

| a   | b   | c   | Auswertung | MCDC benötigt |
| --- | --- | --- | ---------- | ------------- |
| 0   | 0   | 0   | 1          |               |
| 0   | 0   | 1   | 1          |               |
| 0   | 1   | 0   | 0          |               |
| 0   | 1   | 1   | 0          |               |
| 1   | 0   | 0   | 0          |               |
| 1   | 0   | 1   | 1          |               |
| 1   | 1   | 0   | 1          |               |
| 1   | 1   | 1   | 1          |               |

| a   | b   | c   | Ausw | EBU | MMBU | MC/DC |
| --- | --- | --- | ---- | --- | ---- | ----- |
| 0   | 0   | 0   | 1    | 2   | -    |       |
| 0   | 0   | 1   | 1    | 1   | 1    | a     |
| 0   | 1   | 0   | 1    |     | 2    | bc    |
| 0   | 1   | 1   | 0    | 3   | 1    | ab    |
| 1   | 0   | 0   | 1    | 3   | 3    |       |
| 1   | 0   | 1   | 1    |     | -    |       |
| 1   | 1   | 0   | 0    | 1   | 234  | c     |
| 1   | 1   | 1   | 1    | 2   | 4    |       |


EBU reicht entweder das Paar 1,2,3
MMBU zeigt die Paarungen, warum man sie brauch
MCDC werden sich die Atomaren Teile a b und c angeschaut, rest muss gleich bleiben aber die auswertung muss sich unterscheiden

entscheidungsüberdeckung
pfadüberdeckung (nicht nur entscheidungen, sondern auch alle pfade welchselseitger Ausschluß prüfen, z.b. oben muss x < 0 sein und unten muss x > 0)

KLAUSURFRAGE
Unterschied zwischen Pfadüberdeckung und Entscheidungsüberdeckung
Pfade finden, die 
wie muss ich x und y wählen
was ist mit booleans

x sehr groß und y noch größer
dann alles sehr klein

wechselseiger Ausschluß Beispiel:
if x < 5
    something
else
    something else
    another if x<5
        something <- wechselseiter Ausschluß!
    ...
wenn x > 5 ist (der else Fall) und dann dadrunter ein if nochmals darauf prüf, ob x < 5 ist, dann kommt man nie in diesen Block, da x nicht >5 und <5 sein kann

Entscheidungsüberdeckung
Eine Entscheidungsüberdeckung umfasst die Prüfung aller direkten Pfade von einem Zustand zu einem anderen Zustand.
Wenn alle diese Pfade (transitions) mind 1 mal abgelaufen sind, so hat man eine 100% Entscheidungsabdeckung!


Pfadüberdeckung
Eine Pfadüberdeckung umfasst die Prüfung aller möglichen Kombinationen an Pfaden (direkte Pfadfolgen von Zustand zu Zustand), die von Startzustand bis Endzustand führen

```
1 if x < 5
2     something
3 else
4     something else
5     another if x<5
6         something <- wechselseiter Ausschluß!
...
```
In diesem Beispiel gibt es eine Pfadentscheidung in Abhängigkeit ob x < 5 ist. Wenn dem nicht so ist (weil x z.B. 10 ist) kommen wir in den else-Fall.
Wenn nun wie in Zeile 5 wieder nach wenn x < 5 gefragt wird, so gibt es kein Beispiel um in Zeile 1 auf false zu prüfen und bin Zeile 5 auf true!