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 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. +Esempio di copertura delle classi di equivalenza per una data di nascita.CampoClasse validaClasse non valida (inferiore)Classe non valida (superiore)Data di nascita (gg/mm/aaaa)1 ≤ gg ≤ 31 1 ≤ mm ≤ 12
1900 ≤ aaaa ≤ 2006gg < 1 mm < 1
aaaa < 1900gg > 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. +Esempio di copertura delle classi di equivalenza per la lunghezza di una password.CampoClasse validaClasse non valida (inferiore)Classe non valida (superiore)Password8 caratteri ≤ lunghezza ≤ 20 caratterilunghezza < 8 caratterilunghezza > 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. +Esempio di copertura delle classi di equivalenza per la scelta del genere.CampoClasse validaClasse non validaGenere"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. +Esempio di casi di test per una data di nascitaCaso 122/10/1998validoCaso 236/10/1998non valido (gg > 31)Caso 3 -5/10/1998non valido (gg < 1)Caso 422/18/1998non valido (mm > 12)Caso 522/-20/1998non valido (mm< 1)Caso 622/10/2018non valido (aaaa > 2006)Caso 722/10/1880non valido (aaaa < 1900)
Categoria:Sviluppo software