Tecnica della copertura delle classi di equivalenza
La tecnica delle classi di equivalenza è una tecnica di collaudo del software a scatola nera, consiste in una suddivisione dello spazio dei dati di input in segmenti che si prevede trattino il software in modo analogo. Ogni segmento, o classe, contiene valori di input che dovrebbero essere trattati allo stesso modo dal programma. L'obiettivo è ridurre il numero di test necessari verificando un solo caso rappresentativo per ogni classe.
Implementazione
[modifica | modifica wikitesto]La tecnica prevede due passi:
- Identificazione delle classi: per individuare le classi di equivalenza serve prima capire in che modo il campo di ingresso prende i dati:
- Intervallo di valori di input (esempio: giorni/mese/anno per una data di nascita)
- Numero/quantità di valori di input (esempio: lunghezza password)
- Insiemi di valori di input (esempio: genere)
Definizione di casi di test che coprano le classi:
- Intervallo di valori di input: se una condizione di ingresso specifica un intervallo di valori ammissibili per un determinato parametro di input si identificano:
- Una classe di equivalenza valida per i valori compresi all’interno dell’intervallo.
- Due classi di equivalenza non valide: una per i valori inferiori all’estremo di variazione minimo e l’altra per i valori superiori all’estremo di variazione massimo.
Campo | Classe valida | Classe non valida (inferiore) | Classe non valida (superiore) |
---|---|---|---|
Data di nascita (gg/mm/aaaa) | 1 ≤ gg ≤ 31
1 ≤ mm ≤ 12 1900 ≤ aaaa ≤ 2006 |
gg < 1
mm < 1 aaaa < 1900 |
gg > 31
mm > 12 aaaa > 2006 |
- Numero/quantità di valori di input: se una condizione di ingresso specifica un numero/quantità di valori ammissibili per un determinato parametro di input si identificano:
- Una classe di equivalenza valida per un numero/quantità compreso fra il minimo ed il massimo specificati.
- Due classi di equivalenza non valide: una per un numero di valori inferiori al minimo, l’altra per un numero di valori superiori al massimo.
Campo | Classe valida | Classe non valida (inferiore) | Classe non valida (superiore) |
---|---|---|---|
Password | 8 caratteri ≤ lunghezza ≤ 20 caratteri | lunghezza < 8 caratteri | lunghezza > 20 caratteri |
- Insiemi di valori di input: se una condizione di ingresso specifica un insieme di valori ammissibili per un determinato parametro di input si identificano:
- Una classe di equivalenza valida per ogni gruppo di elementi dell’insieme i cui elementi è ragionevole pensare siano trattati in modo analogo (i gruppi possono essere formati anche da un solo elemento).
- Una classe di equivalenza non valida per un elemento non appartenente all’insieme.
Campo | Classe valida | Classe non valida |
---|---|---|
Genere | "M", "F", "Altro" | "S" |
A partire dalle classi identificate occorre progettare un numero di casi di test sufficiente a coprire tutte le classi di equivalenza valide, facendo in modo che ciascun caso di test copra il maggior numero possibile di classi valide e tanti casi di test quante sono le classi di equivalenza non valide in modo tale che ciascun caso di test copra una ed una sola classe non valida.
Caso 1 | 22/10/1998 | valido |
Caso 2 | 36/10/1998 | non valido (gg > 31) |
Caso 3 | -5/10/1998 | non valido (gg < 1) |
Caso 4 | 22/18/1998 | non valido (mm > 12) |
Caso 5 | 22/-20/1998 | non valido (mm< 1) |
Caso 6 | 22/10/2018 | non valido (aaaa > 2006) |
Caso 7 | 22/10/1880 | non valido (aaaa < 1900) |