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