home  |  suche  |  kontakt/johner  |  institut 
studierende  |  tech-docs  |  mindmailer 

Definition und Beispiel

Eine Äquivalenzklasse ist eine Menge von Werten einer Größe, von der angenommen wird, dass sich alle deren Werte im Test gleich verhalten.

Angenommen wir hätten eine Klasse Student mit folgendem Konstruktor:

 

public class Student {
public Student(String name, int matrikelNummer) {
...
}
...
}

 

Wir nehmen an, der Konstruktor würde als String den vollständigen Namen des Studenten (Vor- und Nachname sind durch Leerzeichen getrennt (Anm: wäre natürlich schlechtes Design)) und eine sechsstellige Matrikelnummer erwarten und dies auch prüfen. Dann könnte der Prüfalgorithmus mit folgenden Äquivalenzklassen für die Matrikelnummer getestet werden

  • Zahlen, die 5-stellig sind. Repräsentant: 123
  • Zahlen, die 6-stellig sind: Repräsentant: 123456
  • Zahlen die 7-stellig sind: Repräsentant: 1234567

Als Äquivalenzklassen für den Namen würde sich anbieten

  • String mit Leerzeichen
  • String ohne Leerzeichen

Testaufwand

Das vollständige Testen ist meistens nicht möglich. So würde das Testen einer Methode, die drei Integerwerte als Übergabeparameter erwartet, 89 Jahre dauern, wenn man alle möglichen Integerwerte (2^16^3) testen wollte (bei 100000 Tests/s).

In unserem obigen Beispiel des Studenten reduziert sich die Anzahl der Tests auf die 2 x 3 Äquivalenzklassen.

Testen von Grenzwerten

In einem nächsten Schritt werden meist die Grenzwerte getestet, da hier erfahrungsgemäß oft Fehler zu finden sind, beispielsweise durch einen falschen Operator (z.B. "<=" statt "<").

In unserem Beispiel der Matrikelnummer des Studenten würde man folgende Zahlen prüfen: 99.999, 100.000, 100.001, 999.999, 1.000.000