2. Verifikation, Validierung und Testen - Praktische Informatik ...
2. Verifikation, Validierung und Testen - Praktische Informatik ...
2. Verifikation, Validierung und Testen - Praktische Informatik ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Der Tester kennt beim Black-Box-Test nur was eine Funktion macht aber nicht<br />
wie diese Funktion arbeitet. Der Tester muss nicht Programmierkenntnisse<br />
haben <strong>und</strong> er orientiert sich nur am Benutzerhandbuch, Lastheft der Software,<br />
Spezifikation der Software, um die Testfälle als Eingabe zu definieren. Die<br />
Ausgabe wird danach verglichen, ob sie gleich ist mit der richtigen Ausgabe, die<br />
in der Spezifikation steht.<br />
Um alle Fehler zu finden, muss ein vollständiger Test ausgeführt werden. Das<br />
bedeutet, dass nicht nur alle zulässigen Eingaben getestet werden müssen,<br />
sondern die fehlerhaften Eingaben müssen auch getestet werden.<br />
Für die Testfallbestimmung gibt es drei wichtige Verfahren:<br />
* Äquivalenzklassenbildung (Equivalence Partitioning)<br />
* Grenzwertanalyse (Bo<strong>und</strong>ary Value Analysis)<br />
* Test spezieller Werte (Error-Guessing)<br />
3.1 Äquivalenzklassenbildung (Equivalence Partitioning)<br />
Eine Äquivalenzklasse ist eine Menge von Eingabewerten, die auf ein<br />
Programm eine gleichartige Wirkung ausüben. Das bedeutet, dass wenn ein<br />
Element in einer Äquivalenzklasse als Eingabe zu einem Fehler führt, alle<br />
anderen Elemente in dieser Klasse mit der größten Wahrscheinlichkeit zu dem<br />
gleichen Fehler führen werden.<br />
Wenn ein Testfall in einer Äquivalenzklasse keinen Fehler entdeckt, so erwartet<br />
man, dass alle anderen Testfälle keine Fehler entdecken.<br />
Wir betrachten das erste Beispiel<br />
Das Testprogramm sieht so aus:<br />
/* COPYRIGHT © 1994 by George E. Thaller<br />
All rights reserved<br />
Function : Black Box<br />
Equivalence Partitioning<br />
*/<br />
#include <br />
main ()<br />
{<br />
int i, z, day, month, year ;<br />
printf(“\nTAG MONAT WOCHENTAG\n\n”);<br />
/* Test Case 1 */<br />
day = 22; month = 6; year = 1994;