Analisi del Valore Limite – Una Tecnica di Test in Scatola Nera
Sappiamo già che il test in scatola nera comporta la validazione del sistema senza conoscere il suo design interno. Abbiamo anche discusso le insidie del partizionamento di Equivalenza e come possono fallire ai confini della partizione. Nel caso in cui non abbiate letto il nostro articolo sulla partizione di equivalenza, vi consiglio vivamente di leggerlo prima di leggere questo. In questo articolo, discuteremo un’altra tecnica di test della scatola nera conosciuta come Boundary Value Analysis. Vedremo anche come questa tecnica completa il Partizionamento di Equivalenza.
- Che cos’è l’Analisi del Valore Limite?
- Come fare l’Analisi del Valore Limite?
- Analisi del valore limite con il partizionamento di equivalenza
- Pitfalls of Boundary value Analysis
What is Boundary Value Analysis?
La base della Boundary Value Analysis (BVA) è testare i limiti alle partizioni (ricordate il partizionamento di equivalenza!). BVA è un’estensione del partizionamento di equivalenza. Tuttavia, questo è utilizzabile solo quando la partizione è ordinata, costituita da dati numerici o sequenziali. I valori minimi e massimi di una partizione sono i suoi valori limite.
Abbiamo visto che ci sono alte probabilità di trovare i difetti ai confini di una partizione (Es. Uno sviluppatore che usa >10 invece di >= 10 per una condizione). Il partizionamento dell’equivalenza da solo non era sufficiente a catturare tali difetti. Pertanto, è nata la necessità di definire una nuova tecnica in grado di rilevare le anomalie ai confini della partizione. È così che l’analisi del valore limite è entrata in scena.
L’analisi del valore limite può essere eseguita a tutti i livelli di test, ed è usata principalmente per un intervallo di numeri, date e tempo.
Come fare l’analisi del valore limite?
Ora che abbiamo un’idea dell’analisi del valore limite, capiamo come derivare le condizioni di test usando questa tecnica. Faremo riferimento allo stesso esempio di forma ginnica (Riferitevi al nostro articolo sul Partizionamento di Equivalenza) dove abbiamo bisogno di inserire Age.
Il primo passo dell’analisi dei valori limite è quello di creare il Partizionamento di Equivalenza, che sarebbe come qui sotto.
Ora concentratevi sulla Partizione Valida, che va da 16-60. Abbiamo un approccio in 3 passi per identificare i confini:
- Identificare il valore esatto del confine di questa classe di partizione – che è 16 e 60.
- Prendere il valore del confine che è uno meno del confine esatto – che è 15 e 59.
- Prendi il valore limite che è uno in più del limite esatto – che è 17 e 61.
Se li combiniamo tutti, otterremo le seguenti combinazioni per il valore limite per i criteri di età.
Condizioni limite valide: Età = 16, 17, 59, 60
Condizioni limite non valide : Age = 15, 61
E’ facile vedere che le condizioni al contorno valide rientrano nella classe di partizione Valida, e le condizioni al contorno non valide rientrano nella classe di partizione Invalida.
Si può capire perché non abbiamo usato 16.1, 15.9, 59.9, e 60.1 come valori di incremento e decremento del contorno? È un concetto che ha una spiegazione insufficiente nella maggior parte degli articoli. Pertanto, facciamo un altro esempio per spiegarlo. Supponiamo che stiate inserendo il vostro peso su un sito web. In base al vostro peso e alla vostra altezza, il sito vi dirà l’indice di massa corporea (BMI). Puoi inserire valori da 30 a 150 kg nel campo di inserimento del peso. Il campo di input del peso permette solo numeri naturali, cioè numeri interi positivi!
In questo caso, se creerete i confini usando lo stesso metodo – vi ritroverete con
Condizioni limite valide: Età = 30, 31, 149, 150
Condizioni al contorno non valide : Età = 29, 151
Considera ora lo stesso scenario, ma il campo di input del peso permette numeri decimali fino a 1 posto decimale. In questo caso, le condizioni limite verranno come:
Condizioni limite valide: Età = 30, 30.1, 149.9, 150
Condizioni al contorno non valide : Età = 29.9, 150.1
Hai visto la differenza? Prendiamo il valore minimo accettabile su entrambi i lati del confine. Se prendiamo il valore 30.01, allora finiamo per testare il software per due decimali quando il requisito è un decimale. È una condizione di test separata e non dovrebbe essere confusa con il valore limite.
La misurazione della copertura limite per una partizione può avvenire come il numero di valori limite testati diviso per il numero totale di valori di test limite identificati.
Analisi del valore limite con partizionamento di equivalenza
Abbiamo ora una discreta comprensione dell’analisi del valore limite. Quindi, vediamo come possiamo combinarla con il partizionamento di equivalenza per ottenere una serie completa di condizioni di prova.
Tornando al nostro esempio precedente, rivediamo il diagramma ancora una volta.
L’intervallo è da 16 a 60, e l’analisi dei valori limite ci dà condizioni di prova come 15, 16, 17, 59, 60, 61. Se guardate bene, non pensate che abbiamo già coperto il partizionamento di Equivalenza Valida coprendo 17, 59, e il partizionamento di Equivalenza Invalida coprendo 15 e 61? Dopo tutto il partizionamento di equivalenza dice che dovremmo scegliere un numero tra 16-60 per il partizionamento valido e meno di 16 o più di 60 per il partizionamento non valido. Quindi, se il valore limite sta già coprendo il partizionamento di Equivalenza, perché abbiamo bisogno del partizionamento come tecnica separata? È un concetto che non è chiaro alla maggior parte delle persone, e non molti articoli lo hanno spiegato chiaramente.
Teoricamente, il valore limite ha effettivamente coperto il partizionamento di equivalenza, ma abbiamo ancora bisogno di una partizione. Se applichiamo solo il valore limite e questo fallisce, non sapremo mai se è fallita la condizione del bordo o l’intera partizione. Comprendiamolo con l’aiuto di un esempio. Continuando con il nostro modulo della palestra, assumiamo che lo sviluppatore abbia scritto la seguente logica :
If (età < = 17) Allora non permettere l’iscrizione alla palestra
If (età > 60) Allora non permettere l’iscrizione alla palestra
Se guardate la logica, vi renderete conto che la logica avrebbe dovuto essere If (età <17), ma lo sviluppatore ha aggiunto = segno sbagliato. Vi siete anche accorti che manca la logica per l’intera partizione valida? Se (età>=16 e età <= 60 ) Allora permetti l’iscrizione alla palestra !
Se usiamo solo il valore della condizione limite 17, fallirà l’esecuzione del test. Tuttavia, non vi dirà se la condizione al contorno è fallita o se l’intera partizione è fallita. Come tale, è essenziale usare un valore di partizione di equivalenza, che non è un valore limite. In questo caso, se usiamo il valore 20, l’esecuzione fallirà. Darà una chiara indicazione che lo sviluppatore ha mancato di implementare l’intera partizione.
Quindi se combiniamo sia il valore limite che il partizionamento di equivalenza, le nostre condizioni di test saranno :
Condizioni limite valide : Età = 16, 17, 59, 60
Condizioni al contorno non valide : Età = 15, 61
Partizione di equivalenza valida: Età = 25
Partizione di equivalenza non valida: Età = 5, 65
Pitfalls of BVA
Dopo aver applicato sia i valori limite che la partizione di equivalenza, possiamo dire con sicurezza che abbiamo ottenuto tutta la copertura richiesta? Sfortunatamente, non è così semplice! Il valore limite e il partizionamento per equivalenza presuppongono che l’applicazione non permetta di inserire altri caratteri o valori. Tali caratteri, come @ o valori negativi o anche alfabeti, non potranno essere inseriti. Questa assunzione non è però valida per tutte le applicazioni, ed è essenziale testarle prima di poter dire che il valore del campo è completamente funzionante.
Oltre a questo, possiamo avere situazioni in cui il valore inserito dipende dalla decisione di un altro valore. Per esempio, se il modulo Palestra ha un altro campo Maschio e Femmina, e il limite di età varierà in base a quella selezione. Il valore limite da solo non può gestire tali variazioni, e questo ci porta ad un’altra tecnica di scatola nera chiamata Decision Table Testing. Ne parleremo in dettaglio nel nostro prossimo articolo. Restate sintonizzati!