Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
modul:m450:learningunits:lu05:aequivalenzklassen [2024/03/28 14:07] – angelegt - Externe Bearbeitung 127.0.0.1 | modul:m450:learningunits:lu05:aequivalenzklassen [2024/12/03 08:48] (aktuell) – msuter | ||
---|---|---|---|
Zeile 5: | Zeile 5: | ||
Bei der Äquivalenzklassen-Analyse definieren wir für jede Eingabe die Gruppen von Werten, die vom Programm gleich verarbeitet werden (sollten). | Bei der Äquivalenzklassen-Analyse definieren wir für jede Eingabe die Gruppen von Werten, die vom Programm gleich verarbeitet werden (sollten). | ||
</ | </ | ||
+ | |||
+ | ===== Grundprinzip ===== | ||
+ | |||
+ | |||
+ | Eine Äquivalenzklasse ist eine Menge von Eingabewerten, | ||
+ | Die Annahme ist, dass das Testen eines repräsentativen Werts aus der Klasse ausreicht, um die gesamte Klasse abzudecken. | ||
+ | Die Werte innerhalb einer Klasse sind dabei typischerweise entweder alle gültig oder alle ungültig. | ||
Angenommen wir haben ein Eingabefeld für eine Ganzzahl zwischen 0 und 100. | Angenommen wir haben ein Eingabefeld für eine Ganzzahl zwischen 0 und 100. | ||
- | * Wir können | + | Bei der Äquivalenzklassen-Analyse gehen wir davon aus, dass jede Gruppe von Zahlen |
- | * Auch werden | + | * alle gültigen Eingaben |
+ | * alle zu kleinen Zahlen | ||
+ | * alle zu grossen Zahlen | ||
+ | * Alle formal falschen Eingaben (Buchstaben, | ||
- | Anstatt nun jede Zahl von 0 bis 100 und jede Kombination von Buchstaben zu testen, brauchen wir nur je einen Testfall. | + | Anstatt nun jede denkbare |
+ | Zum Beispiel | ||
+ | * 34 (gültige Zahl) | ||
+ | * -5 (zu kleine Zahl) | ||
+ | * 251 (zu grosse Zahl) | ||
+ | * a3 (formal ungültig) | ||
===== Äquivalenzklassen definieren ===== | ===== Äquivalenzklassen definieren ===== | ||
Zeile 28: | Zeile 43: | ||
==== Auswahl ==== | ==== Auswahl ==== | ||
+ | Steht dem Benutzer eine beschränkte Auswahl von Werten zur Verfügung, sollte jeder gültige Wert separat getestet werden. | ||
* 1 Klasse pro gültigem Wert | * 1 Klasse pro gültigem Wert | ||
* 1 Klasse für ungültige Werte | * 1 Klasse für ungültige Werte | ||
Zeile 65: | Zeile 81: | ||
===== Testfälle ableiten ===== | ===== Testfälle ableiten ===== | ||
Aus den Äquivalenzklassen können wir nun die Testfälle ableiten. | Aus den Äquivalenzklassen können wir nun die Testfälle ableiten. | ||
- | * Testfälle mit ausschliesslich gültigen Klassen. Dabei muss jede gültige Klasse in mindesten einem gültigen Testfall vorkommen. | ||
- | * Testfälle mit **einer** ungültigen Klasse. | ||
- | |||
Als Eingabewerte wählen wir " | Als Eingabewerte wählen wir " | ||
Die Grenzen der Klassen werden später in separaten Testfällen (Grenzwertanalyse) getestet. | Die Grenzen der Klassen werden später in separaten Testfällen (Grenzwertanalyse) getestet. | ||
+ | |||
+ | ==== Klassen mit gültigen Werten ==== | ||
+ | Zunächst definieren wir Testfälle mit ausschliesslich gültigen Klassen. | ||
+ | Dabei muss jede gültige Klasse in mindestens einem Testfall vorkommen. | ||
+ | |||
+ | Im oben stehenden Beispiel können wir Testfälle mit den folgende Äquivalenzklassen definieren: | ||
+ | ^ Nr ^ Klassen ^ | ||
+ | | 1 | 1, 2, 5, 6 | | ||
+ | | 2 | 1, 3, 5, 6 | | ||
+ | | 3 | 1, 4, 5, 6 | | ||
+ | |||
+ | ==== Testfälle mit ungültigen Werten ==== | ||
+ | Wir testen immer nur einen ungültigen Werte auf einmal. | ||
+ | Daher muss für jede ungültige Klasse ein eigener Testfall definiert werden. | ||
+ | |||
===== Beispiel: Personalien ===== | ===== Beispiel: Personalien ===== |