Kontrollfluss orientierte Tests sind gängige White Box Verfahren
C0 – Anweisungsüberdeckung
Statement Coverage Mindestens einmalige Ausführung jeder Anweisung (Knoten) des Prüflings.
Ziel
- Jede ausführbare Anweisung mind. einmal durchlaufen
- Sicherstellen, dass kein toter Code existiert Eigenschaften
- Notwendiges, aber nicht hinreichendes Kriterium
- Als eigenständiges Verfahren ungeeignet
- Bestandteil höherwertiger Verfahren (z.B. Zweigüberdeckung) Metrik
C1 – Zweigüberdeckung
Branch Coverage Ausführung aller Zweige (Kanten) des Prüflings.
Ziel
- Jeder Zweig mind. einmal durchlaufen
- Nachweis, dass keine nie ausgeführten Zweige existieren Eigenschaften
- Enthält die Anweisungsüberdeckung (C0) vollständig Schwächen
- Kombinationen von Zweigen und komplexe Bedingungen werden nicht berücksichtigt
- Schleifen werden nicht ausreichend getestet (ein einzelner Durchlauf genügt)
- Fehlende Zweige sind nicht direkt entdeckbar Metrik
C3 – Bedingungsüberdeckung
Abgrenzung Betrachtet atomare Bedingungen innerhalb von Entscheidungen (
&&,||,XOR). Bei rein atomaren Entscheidungen fällt C3 praktisch mit C1 zusammen.
C3a – Einfachbedingungsüberdeckung
Prinzip Jede atomare Bedingung wird mind. einmal mit
trueundfalsebelegt.
Eigenschaften
- Einfachster aller C3-Tests
- Deckt Fehler aus dem Zusammenwirken mehrerer atomarer Bedingungen auf
Schwäche Es ist nicht sichergestellt, dass die Gesamtbedingung sowohl
trueals auchfalsewird.
C3b – Mehrfachbedingungsüberdeckung
Prinzip Alle möglichen Kombinationen der atomaren Bedingungen werden getestet.
Eigenschaften
- Anzahl der Kombinationen: ( = Anzahl atomarer Bedingungen)
- Sehr hoher Aufwand durch exponentiellen Anstieg
Schwäche In der Praxis wegen Laufzeit und Aufwand oft nicht durchführbar.
C3c – Minimale Mehrfachbedingungsüberdeckung
Prinzip Jede atomare Bedingung und die Gesamtbedingung werden auf
trueundfalsegesetzt.
Eigenschaften
- Kompromiss zwischen C3a (findet zu wenig) und C3b (dauert zu lang)
- Enthält C0, C1 und C3a vollständig
Überblick
| Verfahren | Kriterium | Aufwand | Enthält |
|---|---|---|---|
| C0 | jede Anweisung ausgeführt | gering | – |
| C1 | jeder Zweig ausgeführt | gering–mittel | C0 |
| C3a | jede atomare Bedingung true/false | mittel | C0, C1 |
| C3b | alle Kombinationen () | sehr hoch | C0, C1, C3a |
| C3c | atomare Bed. + Gesamtbed. true/false | mittel–hoch | C0, C1, C3a |