Analytische Qualitätssicherung Flashcards
Testen
jede Handlung mit dem Ziel, Fehler im Programm aufzufinden
Debuggen
Untersuchung des Programmcodes nach der Fehlerursache für ein beim Testen aufgetretenes Fehlersymptom mit anschließender Beseitigung der Fehlerursache
Konstruktive Qualitätssicherung (Erklärung)
Maßnahmen zur Fehlervermeidung
Konstruktive Qualitätssicherung (Beispiele)
- Programmierstil-Richtlinien
- unterstützender Funktionen in Entwicklungsumgebung (Auto-Formatierung etc.)
- bewährte Entwicklungsmethodik
Fehler
Überbegriff für Fehlerursache und Fehlersymptom
Fehlersymptom
Fehlverhalten des ausgeführten Programms
Fehlerursache
Fehlersymptom auslösender (weil falscher) Teil im Programmcode
Prüfling
zu testender Programmteil (Funktion, Prozedur) bzw. zu testendes Programm
Testtreiber
Ausschließlich zum Test von Programmteilen geschriebenes Programm, in das der Prüfling eingebettet ist / wird
Korrektheit
Wird durch den Beweis der absoluten Abwesenheit von Fehlern nachgewiesen
Fehlerfreiheit
Wird durch Beseitigung aller auftretenden Fehler erreicht
Verifikation
Verfahren, um Korrektheit sicherzustellen
sehr aufwendig und damit nur bei sicherheitskritischen Anwendungen üblich
Falsifikation
Verfahren, um Fehlerfreiheit zu erreichen
I.d.R. Testverfahren
zulässige Eingabe
Laut Problemspezifikation zulässige Eingabewerte
Testdatum
Tupel aus zulässiger Eingabe und dazu erwarteten Ausgabewerten
Testfall
Menge von Testdaten, für die ein gleiches Verhalten des Prüflings erwartet wird
Testlauf
Ausführung des Prüflings mit zulässiger Eingabe mit dem Ziel des Testens
Anderes Wort für “Prädikat”?
Bedingung
G = (N, E)
G=? N=? E=?
Was bedeutet die Formel übersetzt?
G = gerichteter Graph
N = Nodes = Knoten
E = Edges = Kanten
Ein gerichteter Graph ist ein Paar aus einer Menge von Knoten und einer Menge von Kanten.
Kante (n1, n2)
n1=? n2=?
n1=Vorgänger von n2
n2=Nachfolger von n1
Wann ist ein Graph zusammenhängend?
Wenn alle Knoten irgendwie miteinander verbunden sind bzw. wenn kein Knoten unverbunden ist.
Was ist ein Zyklus?
Ein Pfad zurück auf einen vorher schoneinmal besuchten Knoten (mit oder ohne Zwischenstationen). => Schleifen
Kompakter Kontrollflussgraph
Kontrollflussgraph, bei dem leere Anweisungen, begin, end, etc. einem angrenzenden Knoten zugeordnet und Blöcke zu einem Knoten zusammengefasst wurden
Block
Aufeinanderfolgende Programmzeilen / Anweisungen, die nur zusammenhängend in der entsprechenden Reihenfolge durchlaufen werden können
Pfad
Weg durch den Kontrollflussgraphen über durch Kanten verbundene Knoten, beginnend bei n(start), endend bei n(final)
Teilpfad
Pfad, der nicht bei n(start) anfängt und/oder nicht bei n(final) endet, also nicht den gesamten Prüfling durchläuft
assoziierter Testfall
Testfall, der sich aus einem bestimmten Pfad ergibt
Klassen von White-Box-Testverfahren
- kontrollflussorientierte
- datenflussorientierte
Überdeckungskriterien
- Anweisungsüberdeckung
- Zweigüberdeckung
- Pfadüberdeckung
- Boundary-interior-Pfadtest
- Bedingungsüberdeckung
- einfach, minimal mehrfach, mehrfach
Klassen von Black-Box-Verfahren
- funktionsorientiert
- fehlerorientiert
- Zufallstests
Anderer Name für White-Box-Testverfahren
strukturorientiert
statische Testverfahren
- Review
- statische Programm-Analysatoren
Nach welchen Kriterien lassen sich Tests klassifizieren?
- Prüftechnik
- Stufe der Softwareentwicklung