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
Bedingungsüberdeckungstest - Mehrfach-Bedingungsüberdeckung
Was macht die “Mehrfach-Bedingungsüberdeckung” aus?
Es wird ein Test aller Wahrheitswertekombination der atomaren Entscheidungen durchgeführt
Bedingungsüberdeckungstest - Mehrfach-Bedingungsüberdeckung
Ein Beispiel mit einer 16-bit Wahrheitstabelle:
((A | B) && (C | D))
Es werden alle Testfälle 1-16 benötigt
Quellcodebasiertes Testen - Testen von Schleifen
Was macht den Schleifentest aus?
Es sollen Schleifen “zuverlässig” getestet werden und die Anzahl der Testfälle soll “klein” gehalten werden.
Quellcodebasiertes Testen - Testen von Schleifen
Was ist die Standard Testtechnik?
Die Standard Testtechnik ist der Boundary-Interior-Test der drei Ä-Klassen für den Test einer Schleife betrachtet
Quellcodebasiertes Testen - Testen von Schleifen
Nenne die drei Äquivalenklassen
- Schleifenkörper wird nicht ausgeführt
- Schleifenkörper (-rumpf) wird einmal ausgeführt (Boundary-Test)
- Schleifenkörper wird mindestens zweimal (oder m-mal) ausgeführt (Interior Test)
Quellcodebasiertes Testen - Testen von Schleifen
Was bezweckt die Ä-Klasse “Schleife wird nicht ausgeführt”?
Der Test von 0 Iteration zeigt, ob der Code nach der Schleife mit der Nicht-Ausführung des Schleifenkörpers umgehen kann.
Quellcodebasiertes Testen - Testen von Schleifen
Was bezweckt die Ä-Klasse “Schleifenkörper (-rumpf) wird einmal ausgeführt”?
Der Test mit einer Iteration offenbart Initialisierungsfehler im Code vor der Schleife, die sich im Rumpf bemerkbar machen
Quellcodebasiertes Testen - Testen von Schleifen
Was bezweckt die Ä-Klasse “Schleife wird mindestens zweimal (oder m-mal) ausgeführt”?
Test von 2 (oder m) Iterationen offenbart Fehler im Rumpf der Schleife, die sich bei der zweiten Ausführung des Rumpfs bemerkbar machen