Foliensatz 3.1
White-Box
Kontrollflussbezogene Testverfahren
White-Box
Kontrollflussbezogene Testverfahren
Analysemittel : Kontrollflussgraph
Idee:
●Auswahl der Testdaten: Viele Durchläufe durch Kontrollfluss des
Programms testen; dafür wenig Testfälle gebrauchen.
Varianten, differenzieren nach:
●Art der verwendeten Kontrollflusswege oder -wegstücke.
●Art und Weise der Überdeckung.
●angestrebtem Überdeckungsgrad
Kontrollflussgraph eines Programms P
Gerichteter Graph G= (N,E)
mit 2 ausgezeichneten Knoten nstart, nfinal
(Anfangs- und Endanweisungen eines Programms)
nur durch start-Knoten betretbar
Knoten stellt Anweisungen / sequenzielle Anweisungsfolgen dar.
●Kante beschreibt möglichen Kontrollfluss zwischen den Anweisungsfolgen ( auch Zweig).
●Maximal bezüglich ersten beiden Eigenschaften.
●Entscheidungsknoten: Knoten mit mindestens 2 Nachfolgeknoten.
Pfad / vollständiger Weg:
●Folge von Knoten und Kanten, die mit Startknoten beginnt und
Endknoten endet.
Wege (T,P):
●Menge vollständiger, endlicher Wege w des Kontrollflussgraphen, für die Testdatum t aus Menge der Testdaten T existiert, das Weg w ausführt.
●Zyklus: Weg im Kontrollflussgraphen mit mindestens zwei Knoten,
der an demselben Knoten beginnt und endet.
●Einfacher Zyklus: Zyklus, bei dem alle Knoten (außer Anfangs- und Endknoten) verschieden sind.
Analyse Pfade des Kontrollflussgraphen und zugehörige Eingaben
Bedingungen kontrollflussbestimmende Anweisungen und Aussagen über Programmvariablen berechnen
Achtung: unerreichbare Wegstücke, nicht erreichbare Anzahl Schleifendurchläufe..
Durch kontrollflussbezogenes Verfahren aufdeckbare Fehler:
Berechnungsfehler
Richtiger Kontrollflussweg im Programm ausgeführt aber min. ein berechneter Variablenwert falsch
Bereichsfehler
nicht richtiger Kontrollflussweg im Programm ausgeführt
Eingabebereich Kontrollflussweg stimmt nicht mit Eingabebereich Programm überein
Unterbereichsfehler
spezielle Bereichsfehler, Abfrage fehlt oder es gibt zusätzliche falsche Abfrage
Idee:
●Auswahl der Testdaten: Viele Durchläufe durch Kontrollfluss des
Programms testen; dafür wenig Testfälle gebrauchen.
Varianten, differenzieren nach:
●Art der verwendeten Kontrollflusswege oder -wegstücke.
●Art und Weise der Überdeckung.
●angestrebtem Überdeckungsgrad
Kontrollflussgraph eines Programms P
Gerichteter Graph G= (N,E)
mit 2 ausgezeichneten Knoten nstart, nfinal
(Anfangs- und Endanweisungen eines Programms)
nur durch start-Knoten betretbar
Knoten stellt Anweisungen / sequenzielle Anweisungsfolgen dar.
●Kante beschreibt möglichen Kontrollfluss zwischen den Anweisungsfolgen ( auch Zweig).
●Maximal bezüglich ersten beiden Eigenschaften.
●Entscheidungsknoten: Knoten mit mindestens 2 Nachfolgeknoten.
Pfad / vollständiger Weg:
●Folge von Knoten und Kanten, die mit Startknoten beginnt und
Endknoten endet.
Wege (T,P):
●Menge vollständiger, endlicher Wege w des Kontrollflussgraphen, für die Testdatum t aus Menge der Testdaten T existiert, das Weg w ausführt.
●Zyklus: Weg im Kontrollflussgraphen mit mindestens zwei Knoten,
der an demselben Knoten beginnt und endet.
●Einfacher Zyklus: Zyklus, bei dem alle Knoten (außer Anfangs- und Endknoten) verschieden sind.
Analyse Pfade des Kontrollflussgraphen und zugehörige Eingaben
Bedingungen kontrollflussbestimmende Anweisungen und Aussagen über Programmvariablen berechnen
Achtung: unerreichbare Wegstücke, nicht erreichbare Anzahl Schleifendurchläufe..
Durch kontrollflussbezogenes Verfahren aufdeckbare Fehler:
Berechnungsfehler
Richtiger Kontrollflussweg im Programm ausgeführt aber min. ein berechneter Variablenwert falsch
Bereichsfehler
nicht richtiger Kontrollflussweg im Programm ausgeführt
Eingabebereich Kontrollflussweg stimmt nicht mit Eingabebereich Programm überein
Unterbereichsfehler
spezielle Bereichsfehler, Abfrage fehlt oder es gibt zusätzliche falsche Abfrage
Tags: kontrollflussbezogen, white-box
Quelle:
Quelle:
Foliensatz 3.1
Kontrollflussbezogene Überdeckungskriterien
Kontrollflussbezogene Überdeckungskriterien
● Anweisungsüberdeckung(statement coverage; C0-Überdeckung;
alle Knoten).
●Entscheidungs-/Zweigüberdeckung(decision coverage;
C1-Überdeckung, alle Zweige).
●Grenze-Inneres-Test(boundary interior coverage).
● Pfadüberdeckung(path coverage; C
∞-Überdeckung, alle Pfade).
Anweisungsüberdeckung : alle Anweisungen
100%ige Anweisungsüberdeckungnicht immer erreichbar
(Ausnahmebedingungen: erheblicher Aufwand während Testphase
oder ""dead code")
schwaches Kriterium
fehlende Anweisungen nicht erkennbar, nicht ausführbare Programmteile werden entdeckt, alle anderen Fehler nur zufällig
Zweigüberdeckung : alleZweige
besser als C0
durchlaufene Programmteile erkennbar(ggf. optimierbar)
unzureichend für Test von Schleifen, nicht ausführbare Knoten und Zweige sicher entdeckt, alle anderen Fehler nur zufällig
mit 100%iger Anweisungsüberdeckung kann keine 100%ige Zweigüberdeckung garantiert werden
umgekehrt schon
Grenze-Inneres-Überdeckung
auf Schleifen beschränktes Kriterium
Pfadüberdeckung
obere Grenzen nicht immer gegeben
Beispiel:
Schleife, in der boolescher Zufallswert generiert wird:
Kann beliebig lange Wert false generieren, bevor true generiert wird.
Warum werden durch 100%-ige Pfadüberdeckung,die ja 100% der
Pfade testet, nicht 100% der Fehler gefunden ?
Antwort:
●Es werden zwar alle Pfade getestet, aber nicht mit allen
möglichen Variablenbelegungen.
●Es wird nur vorhandene Funktionalität getestet und nicht, welche
Funktionalität evtl. fehlt.
alle Knoten).
●Entscheidungs-/Zweigüberdeckung(decision coverage;
C1-Überdeckung, alle Zweige).
●Grenze-Inneres-Test(boundary interior coverage).
● Pfadüberdeckung(path coverage; C
∞-Überdeckung, alle Pfade).
Anweisungsüberdeckung : alle Anweisungen
100%ige Anweisungsüberdeckungnicht immer erreichbar
(Ausnahmebedingungen: erheblicher Aufwand während Testphase
oder ""dead code")
schwaches Kriterium
fehlende Anweisungen nicht erkennbar, nicht ausführbare Programmteile werden entdeckt, alle anderen Fehler nur zufällig
Zweigüberdeckung : alleZweige
besser als C0
durchlaufene Programmteile erkennbar(ggf. optimierbar)
unzureichend für Test von Schleifen, nicht ausführbare Knoten und Zweige sicher entdeckt, alle anderen Fehler nur zufällig
mit 100%iger Anweisungsüberdeckung kann keine 100%ige Zweigüberdeckung garantiert werden
umgekehrt schon
Grenze-Inneres-Überdeckung
auf Schleifen beschränktes Kriterium
Pfadüberdeckung
obere Grenzen nicht immer gegeben
Beispiel:
Schleife, in der boolescher Zufallswert generiert wird:
Kann beliebig lange Wert false generieren, bevor true generiert wird.
Warum werden durch 100%-ige Pfadüberdeckung,die ja 100% der
Pfade testet, nicht 100% der Fehler gefunden ?
Antwort:
●Es werden zwar alle Pfade getestet, aber nicht mit allen
möglichen Variablenbelegungen.
●Es wird nur vorhandene Funktionalität getestet und nicht, welche
Funktionalität evtl. fehlt.
Tags: kontrollflussbezogen, kriterien
Quelle:
Quelle:
Kartensatzinfo:
Autor: Annika
Oberthema: Informatik
Thema: Softwarekonstruktion
Schule / Uni: TU Dortmund
Veröffentlicht: 19.03.2014
Tags: Prof Dr Jürjens
Schlagwörter Karten:
Alle Karten (68)
Abnahmetest (1)
algebraische (2)
Ansatz (1)
bewertung (2)
blackbox (1)
CMMI (1)
Code (1)
Diagrammtypen (1)
einschränkung (1)
emf (3)
Erweiterung (1)
evolution (1)
fehler (1)
fehlerhandlung (1)
fehlerzustand (1)
gef (3)
generieren (1)
gmf (1)
Grenzwertanalyse (1)
grundidee (1)
integrationstest (1)
Invariante (2)
iso9000 (1)
komplexität (2)
Komplexität (2)
Komponententest (1)
kontrollflussbezogen (2)
kreis (1)
kriterien (1)
kritik (1)
lazy evaluation (1)
lebenszyklus (1)
MDA (1)
mda (2)
Meta (1)
meta (1)
Metamodell (1)
metrik (1)
modell (1)
mvc (1)
nachbedingung (1)
negativ (1)
ocl (1)
omg (1)
positiv (1)
Probleme (2)
qualität (2)
qualitätslenkung (1)
qualitätsprüfung (1)
robust (1)
software (4)
spezifikation (3)
standards (1)
Standards (1)
suite (1)
Systemtest (1)
testen (2)
testprozess (1)
Testprozess (1)
überblick (1)
übung3 (1)
UML (2)
UMl (1)
ursache (1)
v-modell (1)
validierung (2)
verifizierung (1)
verifzierung (1)
vorbedingung (1)
white-box (2)
zentral (1)
ziele (1)
zyklomatisch (3)