Software-Tester Teil 2 Flashcards
Quellcodebasiertes Testen
Was ist die Testreferenz beim quellcodebasiertem Testen?
Der Quellcode des Prüfobjekts
Quellcodebasiertes Testen
Worauf stützt sich die Bewertung der Vollständigkeit der Testfälle?
Es stützt sich auf den Quellcode oder daraus abgeleitete Modelle
Worauf stützt sich die Bewertung der Korrektheit der Testfälle?
Auf der Basis der Spezifikation
Quellcodebasiertes Testen
Welche Arten von Techniken gibt es?
Kontrollflussbasiertes Testen
- Testrefenz = Kontrollflussgraph der aus dem Quellcode abgeleitet wird
Datenflussbasiertes Testen
- Testreferenz = Datenfluss der aus dem Quellcode abgeleitet wird
Quellcodebasiertes Testen - Grundlagen
Was passiert mit dem Quellcode?
Der Quellcode wird in einen Kontrollflussgraphen überführt
Quellcodebasiertes Testen - Grundlagen
Was bedeuten die Knoten und Kanten beim Kontrollflussgraphen?
- Die Knoten repräsentieren die Anweisungen im Programmcode
- Die Kante repräsentiert den Kontrollfluss von einer Anweisung zur nächsten
Quellcodebasiertes Testen - Grundlagen
Testfälle beim Kontrollflussgraphen
Testfälle werden aus dem Graph abgeleitet
Die formale Definition des Kontrollflussgraphs
G = (N, E, n-start, n-final)
- N = Menge von Knoten (Nodes)
- E = Menge gerichteter Kanten
- n-start: Startknoten
- n-final: Endknoten
Quellcodebasiertes Testen - Grundlagen
Was ist der Pfad?
Der Pfad ist die bei einer Ausführung des Programms durchlaufene Folge von Anweisungen
Quellcodebasiertes Testen - Grundlagen
Formel für die Testüberdeckung
Testüberdeckung = Anzahl getester Elemente / Anzahl aller Elemente
Quellcodebasiertes Testen - Grundlagen
Auf welche Arten kann die Testüberdeckung eingesetzt werden?
- Kann zur Ableitung von Testfällen genutzt werden
- Kann zur Messung der konkreten Überdeckung des Testobjekts genutzt werden
Quellcodebasiertes Testen - Test des Kontrollflusses
Nenne alle Testtechniken
- Anweisungsüberdeckungstest
- Zweigüberdeckungstest
- Pfadüberdeckungstest
- Bedingungsüberdeckungtest
- Schleifentest
Quellcodebasiertes Testen - Test des Kontrollflusses
Was macht der Anweisungsüberdeckungstest?
Es wird sichergestellt, dass jede Anweisung mindestens einmal ausgeführt (und somit überprüft) wird und es werden alle Knoten abgedeckt.
Testüberdeckung = Anzahl ausgeführter Anweisungen / Anzahl aller Anweisungen
Nachteile beim Anweisungsüberdeckungstest
Häufig auftretende Fehler werden nicht zuverlässig erkannt
Quellcodebasiertes Testen - Test des Kontrollflusses
Was macht der Zweigüberdeckungstest?
Sicherstellen, dass jeder Zweig des Programms mind. einmal ausgeführt wird.
Testüberdeckung = Anzahl ausgeführter Zweige / Anzahl aller Zweige
Der Vorteil des Zweigüberdeckungstest gegenüber dem Anweisungsüberdeckungstest
Der Zweigüberdeckungstest ist eine “strengere Testtechnik” als der Anweisungsüberdeckungstest
Wenn ein Test das Zweigüberdeckungskriterium erfüllt, dann erfüllt der Test auch das Anweisungsüberdeckungskriterium
Was macht der Pfadüberdeckungstest?
Sicherstellen, dass jeder Pfad des Kontrollflussgraphen mindestens einmal ausgeführt wird
Quellcodebasiertes Testen - Test von Bedingungen
Was macht der Bedingungsüberdeckungstest?
Es werden zusammengesetzte Entscheidungen zuverlässig getestet
- Bsp.: (x > 1) && ((u == 0) || (v == 0))
Vorteil des Pfadüberdeckungstest gegenüber dem Zweigüberdeckungstest
Der Pfadüberdeckungstest ist eine umfassendere Testtechnik als der Zweigüberdeckungstest
Quellcodebasiertes Testen - Test der Bedingungen
Der Unterschied vom Bedingungsüberdeckungstest gegenüber des Zweigüberdeckungstest
- Beim Zweigüberdeckungstest muss die Gesamtentscheidung mindestens einmal die Werte true und false haben
- Beim Bedingungsüberdeckungstest müssen die einzelnen Teilentscheidungen berücksichtigt werden
Bedingungsüberdeckungstest - Arten von Tests
Was macht die “Einfache Bedingungsüberdeckung” aus?
Es wird ein Test aller atomaren Entscheidungen gegen true/false durchgeführt
Bedingungsüberdeckungstest - Einfache Bedingungsüberdeckung
Ein Beispiel für die vollständige Evaluierung mit einer 16-bit Wahrheitstabelle:
((A | B) && (C | D))
Es genügen die Testfälle 6 und 11
Was macht die “Minimale Mehrfach-Bedingungsüberdeckung” aus?
Neben atomaren Entscheidungen müssen auch alle Teilentscheidungen gegen true / false geprüft werden
Bedingungsüberdeckungstest - Minimale Mehrfach-Bedingungsüberdeckung
Ein Beispiel mit einer 16-bit Wahrheitstabelle:
((A | B) && (C | D))
Testfälle 1 und 16 genügen