L’analisi dei valori limite, in genere abbreviata in BVA, รจ una tecnica di test black box molto diffusa. L’approccio verifica i difetti del software verificando i valori di input ai limiti degli intervalli consentiti.
In questo articolo si analizzerร che cos’รจ il test di analisi dei confini, perchรฉ รจ utile ed esplorerร alcuni approcci, tecniche e strumenti diversi di test dei confini.
Che cos’รจ l’analisi del valore limite nel test del software?
L’analisi dei valori limite รจ un tipo di test funzionale. Questo tipo di test si occupa di verificare che ogni funzione del software soddisfi i requisiti e le specifiche. Nel caso del boundary testing, questa funzionalitร comprende il modo in cui il software gestisce i vari input.
La BVA รจ una tecnica di test del software che convalida il modo in cui il software risponderร agli input in corrispondenza o al limite dei confini degli input. In sostanza, ogni ingresso ha degli intervalli consentiti. Ad esempio, si potrebbe avere una casella per la password di accesso che accetta password di 8-12 caratteri. Il test dei limiti verificherร le password con lunghezza dei caratteri pari a 7, 8, 12 e 13.
L’idea รจ che i confini dei limiti, cioรจ 7, 8, 12 e 13, abbiano piรน probabilitร di generare errori rispetto ai numeri all’interno dei confini, come 9, 10 e 11. Se i vantaggi possono sembrare marginali in un esempio di casella di campo che accetta tra 8 e 12 caratteri, diventano piรน evidenti quando si devono scrivere casi di test per caselle di campo che accettano tra 1 e 20 caratteri o numeri tra 1 e 1000 e cosรฌ via.
Quindi, per risparmiare tempo e ridurre il numero di casi di test nell’ambito dei test funzionali, l’analisi dei valori limite esamina i valori:
- Al valore minimo
- Direttamente sotto il valore minimo
- Al valore massimo
- Direttamente sopra il valore massimo
Vantaggi dell’analisi del valore limite nei test
I test di frontiera presentano diversi vantaggi interessanti per i team QA.
#1. Migliore qualitร del software
Lo scenario da incubo per i tester รจ rappresentato da bug e difetti che passano inosservati. Con cosรฌ tante cose da verificare, alcuni difetti possono sfuggire. I test al limite dimostrano la funzionalitร delle aree del software che hanno maggiori probabilitร di contenere errori, il che porta a una migliore creazione del software e, in definitiva, a un’applicazione piรน affidabile e stabile.
#2. Aumento della copertura dei test
La BVA nel test del software รจ molto utile perchรฉ aiuta a ridurre il numero di casi di test necessari per una copertura completa. L’analisi dei valori limite garantisce che i valori importanti e ogni valore possano essere testati in modo piรน approfondito.
#3. Rilevamento precoce dei difetti
I test sui valori limite fanno parte di un approccio che privilegia il rilevamento precoce dei difetti. Individuare i bug nelle prime fasi del processo significa che i team di sviluppo possono risparmiare tempo e denaro, senza contare che รจ molto piรน facile rimediare ai bug nelle prime fasi di sviluppo.
#4. Efficienza
I test sui valori limite sono molto efficienti perchรฉ riducono la necessitร di molti casi di test. In effetti, la riduzione degli input a tutti i tipi di problemi, tranne quelli piรน probabili, puรฒ far risparmiare tempo ai team di test sia per la stesura che per l’esecuzione dei casi di test.
Gli svantaggi dell’analisi del valore limite nei test
Naturalmente, nessuna tecnica di test del software รจ perfetta o priva di limiti. Sebbene l’analisi dei valori limite offra molti vantaggi, ci sono alcuni limiti nel lavorare con questa tecnica di test funzionale.
#1. Ambito ristretto
Il BVA lavora sui confini o sui bordi degli ingressi di dati validi. In generale, ignora gli ingressi centrali, ritenendo che vadano bene se gli ingressi validi sui bordi lo sono. Tuttavia, non รจ senza precedenti che alcuni di questi valori non testati possano avere dei problemi.
#2. Eccessivamente semplicistico
L’analisi dei limiti consiste nel semplificare le cose. Sebbene questo approccio funzioni per ridurre i casi di test, รจ meno adatto a domini molto complessi con confini, interazioni o dipendenze multiple. In effetti, puรฒ faticare a gestire scenari complessi, il che significa che รจ necessario esplorare altre tecniche per ottenere una copertura adeguata.
#3. Ipotesi
Qualsiasi processo che tenti di aumentare l’efficienza rischia di non cogliere particolari errori. La BVA si concentra sui confini ai margini di un areale. Nel farlo, deve fare ipotesi su altri input che ricadono su entrambi i lati dei valori limite. I tester devono trovare un equilibrio tra efficienza e copertura, il che comporta un leggero rischio se si utilizzano solo i test di confine.
#4. Affidamento su specifiche e requisiti accurati
L’efficienza della BVA dipende dalla qualitร e dall’accuratezza delle specifiche e della documentazione dei requisiti. Eventuali errori non controllati in questi documenti possono riversarsi nei test sui valori limite e portare a errori specifici che non vengono controllati e scoperti fino alle ultime fasi critiche dello sviluppo.
#5. Affidamento alle classi di equivalenza
L’esecuzione di una BVA completa richiede una solida conoscenza delle classi di equivalenza. L’impostazione accurata di queste classi richiede esperienza e alcune informazioni di base sull’applicazione.
Sfide dell’analisi del valore limite
nel test del software
A questo punto dovrebbero essere abbastanza chiari i pro e i contro del boundary testing. Tuttavia, se si vuole implementare questo approccio nel proprio testing del software, รจ necessario essere consapevoli delle varie sfide da superare.
Ecco alcune delle sfide legate all’implementazione del boundary value testing nel testing del software.
#1. Delineare i confini
L’identificazione dei confini all’interno di sistemi semplici pone poche sfide ai tester competenti. Tuttavia, esistono situazioni piรน complesse, come ad esempio:
- Domini di input complessi con diverse variabili di input o relazioni intricate
- Limiti non documentati che non sono stati chiaramente delineati nei documenti di specifica.
- Confini dinamici che cambiano in base alle azioni dell’utente o ad altre condizioni.
#2. Requisiti ambigui
Documenti di requisiti scritti male o poco chiari possono ostacolare l’identificazione dei valori limite. La chiarezza, la completezza e l’impegno a redigere documenti di specifica esaustivi richiedono tempo, ma alla fine ripagano.
#3. Competenza
L’analisi dei valori limite puรฒ essere ingannevolmente complessa. In effetti, i team di test hanno bisogno di personale con esperienza e conoscenza del settore per comprendere le sottili sfumature della tecnica. Inoltre, i tester devono avere una certa conoscenza del software o, come minimo, disporre di documenti di specifica affidabili su cui basarsi.
#4. Errori
L’analisi dei limiti cerca di ridurre il numero di casi di test necessari per verificare gli input validi e non validi. Tuttavia, i difetti che si trovano al di fuori dell’intervallo di controllo possono facilmente passare inosservati. Inoltre, gli errori “off-by-one” sono comuni errori di codifica che possono verificarsi in corrispondenza o in prossimitร dei confini. I tester devono essere consapevoli di questi scenari e prendere provvedimenti per i test.
#5. Esplosione del caso di test
Con molteplici limiti di input in gioco, i casi di test possono presto diventare complessi e moltiplicarsi fuori controllo. In queste situazioni, il tempo e il denaro che si possono risparmiare con il boundary testing vanno persi, compromettendo i vantaggi della soluzione. I software complessi con molte combinazioni o permutazioni possono avere un effetto simile.
#6. Limiti dello strumento di analisi
Gli strumenti di automazione dei test software possono aiutare i team a eseguire un’adeguata analisi dei valori limite. Tuttavia, anche nei casi migliori, questi strumenti richiedono un certo intervento manuale sia per i test che per la loro creazione. Questa situazione puรฒ essere esacerbata nel caso di costruzioni complesse con interazioni a piรน variabili.
Diversi tipi di valore limite
test nel collaudo del software
Nel libro Software Testing: A Craftsman’s Approach, gli autori Paul C. Jorgensen e Byron DeVries descrivono quattro diversi tipi di test del valore limite, che sono:
1. Test del valore limite normale (NBVT)
- Verifica i valori di ingresso validi ai bordi del dominio di ingresso
- Esplora i valori minimi e massimi insieme agli input appena al di sopra e al di sotto del confine
- Questo รจ il tipo classico di analisi del valore limite.
2. Test robusto del valore limite (RBVT)
- Simile al NBVT di cui sopra, ma include anche gli ingressi non validi
- Esegue test in corrispondenza e al di lร dei confini, ma tiene conto anche degli input non validi.
- Si concentra sull’individuazione di errori derivanti da output estremi o inattesi.
3. Test del valore limite nel caso peggiore (WBVT)
- Verifica il comportamento del software utilizzando valori estremi validi e non validi.
- Esplora i valori ai margini dei domini di input e i valori al di lร di questi confini
- Cerca di capire il comportamento del software in condizioni piรน estreme
4. Test robusto del valore limite del caso peggiore (RWBVT)
- Utilizza una combinazione di RBVT e WBVT per un test dei valori limite piรน approfondito.
- Testa i valori di ingresso validi e non validi sia ai limiti tipici che a quelli estremi
- Offre la migliore opportunitร di trovare difetti legati ai confini
Questi approcci differiscono per completezza, con la RWBVT che รจ la piรน completa. Tuttavia, i tester devono riconoscere l’investimento supplementare in termini di tempo e impegno necessario per sbloccare questo ulteriore livello di scoperta dei difetti.
Partizione di equivalenza e valore limite
analisi: somiglianze e differenze
La partizione di equivalenza e l’analisi del valore limite sono spesso utilizzate insieme. In effetti, le due tecniche sono altamente complementari. Tuttavia, essi descrivono approcci distinti alla convalida dei dati immessi. Ecco un’analisi delle somiglianze e delle differenze tra i due.
1. Le somiglianze
La partizione di equivalenza e l’analisi dei valori limite costituiscono un’ottima coppia. Ecco alcune analogie tra le due tecniche.
- Sono entrambe tecniche di test black box, ovvero si concentrano sugli input e sugli output, che possono essere testati senza conoscere a priori il codice sorgente dell’applicazione.
- Entrambi fanno parte di un approccio approfondito agli input di test.
- Entrambi aiutano i tester a trovare un equilibrio tra la copertura completa dei test senza scrivere una quantitร eccessiva di casi di test.
2. Le differenze
Per esplorare le differenze tra il partizionamento per equivalenza e l’analisi del valore limite, dobbiamo considerare ciascuno di essi in modo isolato.
Partizione di equivalenza
- Suddivide i dati di ingresso in classi di equivalenza che dovrebbero dare luogo a risultati simili del sistema.
- Utilizza un singolo valore rappresentativo di ogni classe e testa il sistema con quel valore.
- Si tratta di identificare le classi di equivalenza valide e non valide.
Analisi del valore limite
- Verifica i valori ai confini o ai bordi delle classi di equivalenza
- Testate una serie di valori, tra cui il minimo, il massimo e i valori su entrambi i lati del confine.
- Cerca gli errori che si trovano ai margini dei confini
Esempi di partizione di equivalenza e analisi del valore limite
Per aiutare a consolidare la comprensione della partizione di equivalenza e dell’analisi del valore limite, ecco alcuni esempi.
Esempio di partizione di equivalenza:
Supponiamo di avere una casella di input per le immatricolazioni di auto. In genere, le targhe automobilistiche statunitensi sono composte da 6 a 7 caratteri. Per semplicitร , non considereremo le targhe speciali.
Dati validi = Piastre 6 o 7 caratteri
Dati non validi = Targhe con >6 o >7 caratteri.
Esempio di analisi del valore limite:
Utilizzando lo stesso esempio di targa di cui sopra, l’analisi del contorno verificherร
Dati validi = targhe con 6 o 7 caratteri
Dati non validi = targhe con 5 o 8 caratteri e, in alcuni scenari, 4 e 9 caratteri.
Esempio di analisi del valore limite
Forse il modo migliore per comprendere appieno il concetto รจ quello di esaminare uno o due esempi di analisi del valore limite.
Esempio di test del valore limite #1
Per esplorare piรน in dettaglio i test sui valori limite, analizziamo un esempio di dominio di verifica dell’etร .
Abbiamo una casella in cui l’utente puรฒ inserire la propria etร .
I valori limite sono:
- Etร minima = 18 anni
- Etร massima = 120 anni
Esempio di casi di test limite:
I casi di test sono in tutto sei:
- 17, 18 e 19, rispettivamente al di sotto, al di sopra e al di sotto del minimo.
- 119, 18 e 19, che sono rispettivamente al di sotto del massimo, al massimo e al di sopra del massimo.
Esempio di test del valore limite n. 2.
Nel prossimo esempio di boundary testing, esploreremo un sito web con uno sconto minimo del 20% sugli ordini a partire da 100 dollari.
In questo esempio, un acquisto di oltre 600 dollari comporta uno sconto del 25%. Il test del valore limite si occuperร di input compresi tra 100 e 600 dollari.
I valori limite sono:
Sconto minimo qualificante = 100 dollari
Sconto massimo qualificabile = 600 dollari
Esempio di casi di test limite:
Anche in questo caso, generiamo un totale di sei casi di test, che sono:
- 99,99, 100 e 100,01 dollari, che sono rispettivamente inferiori al minimo, al minimo e superiori al minimo.
- 599,99 dollari, 600 dollari e 600,01 dollari, che sono rispettivamente inferiori al massimo, al massimo e superiori al massimo.
Il boundary testing nel testing del software รจ accurato?
Nel documento di ricerca Black Box Testing with Equivalence Partitioning and Boundary Value Analysis Methods, gli autori esplorano l’uso del partizionamento per equivalenza e dell’analisi del valore limite per testare un sistema informativo accademico per l’Universitร di Mataram in Indonesia.
Gli autori hanno utilizzato il popolare strumento di test open-source Selenium per i test e hanno eseguito un totale di 322 casi di test. I test di equivalenza e l’analisi dei valori limite hanno portato alla luce circa 80 casi falliti, che hanno determinato un rapporto di circa 75:25 tra punteggi validi e non validi. Nel complesso, l’uso di una combinazione di partizione di equivalenza e BVA nel test del software ha portato a un test approfondito e utile per il software.
I migliori strumenti di verifica del valore limite
Sebbene gli strumenti software dedicati al boundary testing siano rari, esistono molti strumenti di test degni di nota che sono in grado di svolgere questo compito.
#3. TestCaseLab
TestCaseLab รจ uno strumento di gestione dei test basato su cloud che puรฒ aiutare a eseguire i test BVA. Il software consente ai team di creare e gestire i casi di test dalla sua interfaccia utente intuitiva e dall’aspetto accattivante. TestCaseLab รจ flessibile e ricco di funzioni, ma ha i suoi limiti, tra cui le limitate opzioni di reporting e di personalizzazione.
#2. Micro Focus UFT One
Micro Focus UFT One รจ uno strumento di test del software incentrato sui test funzionali e di regressione. Supporta diverse piattaforme, dispositivi e test API e offre forti opzioni di integrazione. Offre sia la creazione di test senza codice che quella guidata da parole chiave e puรฒ aiutare i team a creare facilmente casi di test di analisi del valore limite. Ci sono alcune limitazioni da considerare, come la curva di apprendimento ripida e la mancanza di potenza rispetto a strumenti come ZAPTEST.
#1. ZAPTEST
ZAPTEST รจ uno strumento completo per il test di automazione del software con funzionalitร avanzate di RPA. ร stato costruito per fornire ai tester una suite di strumenti di automazione dei test robusta e facile da usare, che puรฒ aiutare a verificare il software in vari modi, compreso il BVA nel test del software.
Alcuni dei casi d’uso piรน interessanti di ZAPTEST per l’analisi dei valori limite comprendono la generazione di casi di test, la gestione dei dati di test, l’esecuzione dei test, la creazione di report e l’analisi. Grazie a una serie di modelli e a un elevato livello di personalizzazione, combinato con la creazione di casi di test senza codice, gli utenti di ZAPTEST possono creare e gestire in modo semplice e rapido casi di test robusti per tutti i tipi di analisi dei confini.
Oltre alla generazione e alla gestione dei casi di test, le funzionalitร RPA di ZAPTEST possono aiutare i team di testing a svolgere i test di analisi del valore limite in altri modi. Ad esempio, รจ possibile automatizzare l’esecuzione dei casi di test, generare dati di test e creare potenti integrazioni con altri strumenti di test.
Suggerimenti per il test del valore limite
- Combinate l’analisi dei valori limite con il partizionamento delle equivalenze per garantire che i vostri casi di test coprano vari scenari di input.
- Utilizzare scenari di input non validi (cioรจ, test negativi) per verificare come il software gestisce gli errori e gli input inattesi.
- Investite tempo nell’identificazione dei valori limite per i diversi tipi di dati, come testo, numeri, booleani, ecc.
- Privilegiate i test di valore limite per le funzionalitร critiche o per le aree in cui รจ piรน probabile che si verifichino errori.
- Utilizzate dati realistici che rappresentino il tipo di dati che gli utenti inseriranno nei vostri domini.
Riflessioni finali
L’analisi dei valori limite รจ un utile approccio di verifica funzionale. Quando si dispone di un dominio di input, occorre verificare che accetti dati validi e che invii messaggi di errore quando riceve dati non validi. I test di analisi dei confini aiutano a verificare la funzionalitร in modo efficiente, costruendo solo i casi di test necessari per un test completo.
Il test dei limiti esamina i valori che si trovano all’interno o intorno all’intervallo accettabile e verifica come il sistema risponde a questi input. Il risultato รจ un notevole risparmio di tempo e una riduzione degli sforzi, perchรฉ non รจ necessario creare casi di test ridondanti. Nel mondo frenetico dello sviluppo del software, dove le scadenze sembrano essere sempre piรน frequenti, i team di collaudo hanno bisogno di tutto l’aiuto possibile.