Testtheorien

Testfalltheorie

Eine Grundaussage der Testfallerstellung ist, das fast alle Softwarefehler als Effekt aus der Kombination von zwei Eigenschaften entstehen. Nur ganz selten ist ein Softwarefehler davon abhängig, dass drei verschiedene Eigenschaften gleichzeitig zusammentreffen müssen.

Beispiel

Dimension 1 "Nationalität": Inländer und "Nicht"-Inländern (also alle Ausländer, Staatenlose usw.)
Dimension 2 "Produkte": Aktien, Renten und sonstiges
Dimension 3 "Prozess": Kauf und Verkauf (anderes wird nicht betrachtet)

Gibt es einen Softwarefehler im Prozess Kauf, gibt es folgende Möglichkeiten

a) es gibt diesen Fehler "immer", also für alle In- und Ausländer, und alle Produkte
oder
b) er entsteht in Abhängigkeit von Dimension 1 und / oder 2 :


ABHÄNGIGKEIT VON EINER WEITEREN DIMENSION

Der Kauf der Ausländer ist falsch, aber der Kauf der Inländer ist korrekt.
oder
Der Kauf der Rentenpapiere ist falsch, aber die Aktien und sonstigen Papiere sind korrekt.

ABHÄNGIGKEIT VON ZWEI WEITEREN DIMENSIONEN

Nur in ganz seltenen und unwahrscheinlichen Fällen treten sogenannte 3fach Tupel auf: Der Kauf und nur der Kauf von Rentenpapieren ist nur bei Ausländern falsch. Alle anderen Käufe und Verkäufe von Ausländern sind korrekt, ebenso ist jeder Kauf von Inländern korrekt, und der Kauf von anderen Papieren durch Ausländer ist auch korrekt.

Das ist zwar nicht ausgeschlossen, aber eben nun doch sehr unwahrscheinlich, und bevor dreidimensional "strukturiert" durchgetestet wird, sollte man erst alle 2fach Tupel sauber kombinieren und durchgetestet haben.

Testbeschränkung

  • Sind Käufe und Verkäufe bei Inländern anhand eines zufällig ausgewählten Produktes (und nicht aller Produkte) fehlerfrei?
  • Sind Käufe und Verkäufe auch bei Ausländern (wieder anhand eines zufällig ausgewählten Produktes) fehlerfrei?
  • Sind alle Käufe und Verkäufe aller Produkte (anhand einer zufällig ausgewählten Nationalität) fehlerfrei?

Bei dreifachem "Ja", hat die Software bereits einen sehr guten Qualitätszustand. Das Schöne an dem Verfahren ist, dass durchaus 3fach-Tupel getestet werden, aber eben nur nicht alle denkbaren Kombinationen.


Das n-Tupel

Grundidee ist also alle Attribute, Eigenschaften oder Ausprägungen (je nachdem wie man die Werte eine Dimension bezeichnen will) mit jedem anderen Attribut aller weiteren Dimensionen mindestens und gleichzeitig möglichst nur einmal zu kombinieren. Das soll dann aber auch mit mehr Dimensionen als den im ersten Beispiel genannten drei Dimensionen funktionieren.

Im kompletten Beispiel (letzte Grafik) haben wir noch Steuereigenschaft des Kunden, Verwahrart der Papier, Umsatzvergangenheit ergänzt, ebenso können wir die genannten Dimensionen in ihren Attributen noch weiter auffächern. Ggf. will man sogar einzelne Kennungen z.B. Aktie der eigenen Bank oder den größten / wichtigsten Kunden aufnehmen und damit bekommt man ganz schnell eine erhebliche Komplexität, aber auch Dichte der Testfälle.

Die Kombination von 2 Attributen nennt man 2er oder 2fach Tupel, mit 3 Attributen 3er oder 3fach Tupel.

Kombinatorik

Wesentlich ist, dass eben nicht alle theoretisch denkbaren Fälle durchgetestet werden. Aber es werden aller 1fach und 2fach-Tupel strukturiert durchgetestet und die höheren Kombinationen sind durch sinnvolle Streuung des Zufalls zumindest graduell abgedeckt. So erreicht man schnell und effizient eine qualitativ hochwertige Testdichte.