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 ===== | ||