Average Process
Know0
Don't know0
Haven't started19

Recommended flashcard sets

Flashcards in the set

Haven't started (19)

Erläutern Sie Spezifikationsbasiertes Testen?

• Testreferenz

• Bewertung

Einordnung:

• Testreferenz = Spezifikation des Prüfobjekts

• Bewertung der Vollständigkeit basiert auf der Spezifikation

• Bewertung der Korrektheit basiert ebenfalls auf der Spezifikation


Welche Techniken haben Spezifikationsbasiertes Testen?

Techniken (Auswahl):

• Äquivalenzklassentest

⇒ Spezifikation = Abbildungsfunktion: Eingabe →Ausgabe

• Ursache-Wirkungs-Analyse

⇒ Spezifikation = Ursache-Wirkungs-Graph

(logische Beziehungen zw. Ursachen und Wirkungen einer Komponente)

• Zustandsbasierter Test (Thema nächste Woche)

⇒ Spezifikation = Zustandsautomat

Erläutern Sie Äquivalenzklassentest ?

In der Regel unmöglich, alle Kombinationen von Eingabewerten zu testen

⇒ Unterteile Eingaben in "Gruppen ähnlicher Werte" (Äquivalenzklassen)

Äquivalenzklasse: Teilmenge A von Elementen einer Gesamtmenge, die untereinander in einer Äquivalenzrelation (∼) stehen

a ∈ A, b ∈ A ⇒ a ∼ b

Annahme: Alle Elemente der Äquivalenzklasse führen zum selben

Testergebnis (d.h., pass oder fail)

a ∈ A : Test(a) = pass ⇒ ∀b ∈ A : Test(b) = pass

a ∈ A : Test(a) = fail ⇒ ∀b ∈ A : Test(b) = fail

⇒ Test einen Repräsentanten a ∈ A einer Äquivalenzklasse reicht aus


Welche Annahme haben Die Äquivalenzklassentest ?

Annahme: Alle Elemente der Äquivalenzklasse führen zum selben

Testergebnis (d.h., pass oder fail)

a ∈ A : Test(a) = pass ⇒ ∀b ∈ A : Test(b) = pass

a ∈ A : Test(a) = fail ⇒ ∀b ∈ A : Test(b) = fail

⇒ Test einen Repräsentanten a ∈ A einer Äquivalenzklasse reicht aus



Wie ist die Bildung von Äquivalenzklassen ?

Zerlege alle möglichen Eingaben in gültige und ungültige Äquivalenzklassen

◦ Ungültige Klassen prüfen Fehlerbehandlung

Teste jede Äquivalenzklasse durch einen (oder mehrere) Repräsentanten


Äquivalenz ist hypothetisch, erklären Sie?

Äquivalenz ist hypothetisch, Klassenbildung nach Erfahrung/Intuition

◦ mit Hilfe von spezifizierten Gültigkeitsbereichen

◦ mit Hilfe von spezifizierten (oder vermuteten) Sonderbehandlungen

Bildung von Äquivalenzklassen

• Wenn die Eingabe in geordnetem Wertebereich sein muss:

• Wenn die Eingabe in geordnetem Wertebereich sein muss:

◦ eine gültige Äquivalenzklasse

◦ zwei ungültige Äquivalenzklassen

◦ Beispiel: Wertebereich: 1 <= Wert <= 42

gültige Klasse: 1 <= Wert <= 42

ungültige Klassen: Wert < 1, Wert > 42


Bildung von Äquivalenzklassen

• Wenn Eingabe Datenstruktur mit unteren und oberen Schranken ist:


• Wenn Eingabe Datenstruktur mit unteren und oberen Schranken ist:

◦ eine gültige Äquivalenzklasse

◦ zwei ungültige Äquivalenzklassen

◦ Beispiel: Eingabe: Liste mit 1 bis 42 Elementen

gültige Klasse: Listen mit 1 bis 42 Elementen

ungültige Klassen: leere Liste, Listen mit >42 Elementen

Bildung von Äquivalenzklassen

• Wenn die Eingabe Bedingungen unterliegt:

• Wenn die Eingabe Bedingungen unterliegt:

◦ eine gültige Äquivalenzklasse

◦ eine ungültige Äquivalenzklasse

◦ Beispiel: Eingabe: Natürliche Zahl

gültige Klasse: x ∈ N

ungültige Klasse: x /∈ N

Bildung von Äquivalenzklassen


• Wenn Eingabe Aufzählung / ungeordneter Wertebereich ist:


alle Elemente gleich behandelt

• Wenn Eingabe Aufzählung / ungeordneter Wertebereich ist:


◦ Wenn alle Elemente gleich behandelt werden


◦ eine gültige Äquivalenzklasse

◦ eine ungültige Äquivalenzklasse

◦ Beispiel: Eingabe: Aufzählung {rot, grün, blau}

gültige Klasse: {rot, grün, blau}

ungültige Klasse: Wert nicht in {rot, grün, blau}


Bildung von Äquivalenzklassen


• Wenn Eingabe Aufzählung / ungeordneter Wertebereich ist:


Elemente nicht gleich behandelt

• Wenn Eingabe Aufzählung / ungeordneter Wertebereich ist:


◦ Wenn die Elemente nicht gleich behandelt werden

◦ eine gültige Äquivalenzklasse pro Wert

◦ eine ungültige Äquivalenzklasse

◦ Beispiel: Eingabe: Aufzählung {rot, grün, blau}

gültige Klassen: {rot}, {grün}, {blau}

ungültige Klasse: Wert nicht in {rot, grün, blau}

Testfälle für gültige Äquivalenzklassen

  • Ein Testfall kann mehrere gültige Äquivalenzklassen abdecken
  • Wähle neue Testfälle so, dass sie möglichst viele noch nicht abgedeckte gültige Äquivalenzklassen abdecken
  • Erstelle Testfälle bis alle gültigen Äquivalenzklassen abgedeckt sind

Testfälle für ungültige Äquivalenzklassen

  • Ein Testfall darf nur eine ungültige Äquivalenzklasse abdecken

◦ vermeidet, dass Klassen nicht abgedeckt werden, weil Ausführung durch Fehler bei anderer Klasse abbricht

◦ Ermöglicht Zuordnung zwischen Eingabe und Fehlerbehandlung

  • Wähle neue Testfälle so, dass sie genau eine noch nicht abgedeckte ungültige Äquivalenzklassen abdecken

Lücken ausfüllen:

Mehrere Eingabewerte

Mehr Testfälle denkbar: Kombination aller ...................

• Repräsentanten aller ............. ...................... kombinieren

• Jede Kombination bildet einen ...............

• Anzahl ............ = Produkt der Anzahl der gültigen Äquivalenzklassen


Mehrere Eingabewerte

Mehr Testfälle denkbar: Kombination aller Repräsentanten

• Repräsentanten aller gültigen Äquivalenzklassen kombinieren

• Jede Kombination bildet einen Testfall

• Anzahl Testfälle = Produkt der Anzahl der gültigen Äquivalenzklassen



Was ist Probleme des Äquivalenzklassentests und welche Lösungsansatz?

Güte der Testfälle abhängig von Aussagekraft der Spezifikation

◦ Eingabebedingungen müssen vorhanden oder ableitbar sein

Welche Werte sollen als Repräsentanten gewählt werden?

Welche Kombinationen von Repräsentaten sollen gewählt werden?

◦ trotz Äquivalenzklassenbildung evtl. viele Kombinationen/Testfälle

Lösungsansatz: Systematische Auswahl von Eingabekombinationen

⇒ Ursache-Wirkungs-Analyse

Erläutern Sie Ursache-Wirkungs-Analyse?

Testreferenz: Ursache-Wirkungs-Graph (UWG)

◦ formale, graphische Sprache zur Beschreibung von logischen Beziehungen zwischen Ursachen und Wirkungen in einer Komponente

◦ UWG wird aus (textueller) Spezifikation abgeleitet

◦ Testfälle werden aus UWG abgeleitet

Ursachen und Wirkungen der (Teil-)Spezifikation identifizieren

◦ Ursache: einzelne Eingangsbedingung oder Äquivalenzklasse mehrerer Bedingungen

◦ Wirkung: Ausgangsbedingung oder Änderung des Systemzustands

• Ursachen und Wirkungen entsprechend Spezifikation verbinden

• Graph in Entscheidungstabelle überführen

• Spalten der Entscheidungstabelle in Testfälle konvertieren

Probleme des Äquivalenzklassentests(Nachteile):

Annahme, dass alle Werte in einer Äquivalenzklasse gleich gut geeignet sind, um Fehler zu finden ist unrealistisch

Erfahrung: Fehler treten oft in Grenzbereichen der Äquivalenzklassen auf

Heuristik: Bei (gültigen) Klassen von Intervallen für jede Grenze je ein

Testfall für:

◦ den exakten Grenzwert

◦ die beiden benachbarten Werte (kleinstmögliches Inkrement)

◦ mittlere Werte aus Äquivalenzklasse können weggelassen werden

◦ wenn obere Grenze einer Klasse gleich unterer Grenze anderer Klasse fallen entspr. Testfälle zusammen

Weitere Heuristiken:

◦ besondere Werte, z.B. 0

◦ positive und negative Werte, weil oft unterschiedlich behandelt

Erläutern Sie Grenzwertanalyse mit Beispiel?

Numerisches Eingabefeld, 16-bit Integer Variable

Aus Äquivalenzklassenanalyse:

◦ gültige Äquivalenzklasse: [-32768, 32767]

◦ ungültige Äquivalenzklassen: < -32768, > 32767

Testfälle:

◦ aus Äquivalenzklassen, z.B. 13566, -170000, 180000

◦ Grenzwerte:

· untere Grenze: -32769, -32768, -32767

· obere Grenze: 32766, 32767, 32768

◦ besondere Werte, z.B. 0, -1, 1