Glossario · Progettazione dei test
Analisi dei valori limite
In inglese: Boundary value analysis
Detto anche: BVA, test dei valori limite, boundary testing, valori limite
Definizione
Una tecnica black-box di progettazione dei test che sceglie gli input sui bordi degli intervalli validi e subito attorno, dove si concentrano gli errori off-by-one.
L’analisi dei valori limite (BVA, boundary value analysis) testa i valori ai bordi di ogni intervallo di input, perché è lì che gli sviluppatori sbagliano: > invece di >=, < 60 invece di <= 60, un ciclo che gira una volta di troppo. Di norma si applica dopo il partizionamento in classi di equivalenza, che individua gli intervalli; la BVA sceglie poi i valori esatti sopra e attorno a ogni bordo.
Esempio: età accettata da 18 a 60
Un form di registrazione accetta età da 18 a 60 inclusi.
BVA a due valori (il limite e il suo vicino più prossimo fuori dall’intervallo):
| Input | Atteso |
|---|---|
| 17 | Rifiutato |
| 18 | Accettato |
| 60 | Accettato |
| 61 | Rifiutato |
BVA a tre valori aggiunge il vicino all’interno di ogni limite:
| Input | Atteso |
|---|---|
| 17, 18, 19 | Rifiutato, Accettato, Accettato |
| 59, 60, 61 | Accettato, Accettato, Rifiutato |
Sei test invece di 43 età valide possibili, e questi sei intercettano gli errori di confronto più comuni. Se il codice dice age > 18, il test con 18 fallisce. Se dice age < 60, fallisce il test con 60.
Oltre gli intervalli numerici
I limiti esistono ovunque ci sia un vincolo:
- Lunghezza: uno username da 3 a 20 caratteri significa testare 2, 3, 20 e 21 caratteri.
- Date e orari: un link valido per 30 minuti significa testare a 29:59, 30:00 e 30:01. Controlla anche la mezzanotte, la fine del mese e gli anni bisestili quando rilevanti.
- Collezioni: un carrello vuoto, un articolo e il numero massimo di articoli consentiti più uno.
- Importi: 99,99 €, 100,00 € e 100,01 € per una regola “spedizione gratuita da 100 €”.
- Limiti tecnici: dimensione massima dei file, overflow degli interi, dimensione di pagina nelle API paginate.
Errori comuni
- Testare solo il lato valido. 17 e 61 contano quanto 18 e 60.
- Dare per scontato il limite. “Fino a 60” può voler dire che 60 è incluso oppure no. Chiedi e registra la risposta nei criteri di accettazione.
- Ignorare tipo e precisione. Se il campo accetta decimali, il valore subito sotto 18 potrebbe essere 17,99, non 17.
- Dimenticare i limiti nascosti. Una colonna del database o un’API possono imporre un limite diverso da quello della UI. Testa i limiti a ogni livello.