fbpx

Il partizionamento dell’equivalenza nei test del software è una tecnica di test black-box che aiuta a costruire casi di test efficienti senza compromettere la copertura dei test.

In questo articolo vedremo cos’è il partizionamento delle classi di equivalenza, perché è utile ed esploreremo alcuni dei processi e degli approcci che si possono utilizzare per sfruttare i vantaggi di questa tecnica.

 

Table of Contents

Che cos’è la suddivisione in classi di equivalenza

nel testing del software?

Test QA: cos'è, tipi, processi, approcci, strumenti e altro ancora!

Tutti i software hanno particolari condizioni di ingresso. Nel contesto del test del software, queste condizioni di input descrivono i valori o i dati che un tester deve utilizzare per verificare la qualità e la funzionalità del suo software. Questi input possono essere semplici come un clic del mouse, fino a testi e numeri.

Una partizione equivalente nel test del software esplora i diversi input richiesti per l’utilizzo del software e li raggruppa in classi di equivalenza, ossia insiemi di input che avranno un effetto equivalente sul comportamento del software.

Se si sa come si comporterà ogni gruppo di ingressi, non è necessario testare ogni rappresentante del gruppo. Per questo motivo, il partizionamento delle classi di equivalenza è un ottimo modo per aiutare i tester a ridurre la frequenza dei test ridondanti. In un mondo ipercompetitivo come quello dello sviluppo del software, con scadenze sempre più strette, risparmiare tempo e fatica nel ciclo di vita del test del software (STLC) è fondamentale.

Infine, vale la pena di notare che il test di equivalenza è una tecnica di test black-box. In breve, significa che i tester non devono conoscere il codice interno o il funzionamento del programma. I test si basano su ingressi, uscite e comportamenti esterni. Per questo motivo, questi test sono fortemente incentrati sul comportamento dell’utente durante l’utilizzo del programma.

 

1. La partizione di equivalenza del test del software in breve

Il partizionamento dell’equivalenza divide i dati di input del test del software in due campi: input validi e non validi. I valori all’interno di ciascuna partizione devono far sì che il software abbia lo stesso comportamento. Ad esempio:

  • Se la condizione di un valore della partizione A è vera, anche gli altri valori della partizione A devono esserlo.
  • Allo stesso modo, se le condizioni di un valore della partizione A sono false, anche gli altri valori della partizione A devono essere falsi.

In un contesto di test, ogni partizione deve essere coperta almeno una volta. Logicamente, ciò significa che se una voce della partizione A fallisce, anche tutti gli altri ingressi falliranno. Questo processo dovrebbe far risparmiare tempo, perché invece di testare ogni ingresso che si trova nella partizione A, i tester possono testarne solo uno ed estrapolare il risultato in base ai suoi punti in comune.

 

2. Perché è importante il test delle classi di equivalenza nel test del software

Prima di entrare nel merito dei vantaggi diretti dei test di classe di equivalenza nel testing del software, dobbiamo definire il motivo per cui questo approccio è importante.

Tutti i tester sanno che il test del software richiede compromessi. Il tempo e il budget sono limitati, il che significa che i tester devono sfruttare al meglio le loro risorse. La suddivisione delle equivalenze nei test del software aiuta i team a trovare un equilibrio tra efficienza e affidabilità nei loro test, riducendo il numero di input.

 

Vantaggi del partizionamento per equivalenza

nel test del software

Casi d'uso della Robotic Process Automation nel settore assicurativo e contabile

Una partizione equivalente nel test del software è preferita dai team di test per una serie di motivi. Ecco alcuni dei più interessanti.

1. L’efficienza

Il grande vantaggio del test di partizione di equivalenza risiede nella sua efficienza. Quando i tester utilizzano il partizionamento per equivalenza, possono ridurre il numero di casi di test necessari senza compromettere la copertura dei test. Selezionando un caso di input da ogni classe di equivalenza, i tester possono essere sicuri di capire come funziona il loro software con una varietà di input.

2. Semplicità

Un altro grande vantaggio del partizionamento dell’equivalenza nel test del software è la semplicità. La suddivisione di una serie di input diversi in dati validi e non validi semplifica notevolmente la pianificazione dei test. Testare ogni singolo ingresso richiede molta documentazione e coordinamento. La riduzione a un solo esempio rappresentativo snellisce il processo di test.

Copertura avanzata

L’uso delle classi di equivalenza nei test consente anche di utilizzare il tempo a disposizione per i test in modo più efficiente. Ridurre gli input di test in classi significa poter testare in modo più approfondito ogni classe. Questo approccio completo sarebbe francamente impossibile se si testasse ogni singolo ingresso. Il partizionamento dell’equivalenza consente ai team di analizzare a fondo e testare dati validi e non validi, casi limite, valori limite e altro ancora.

3. Riutilizzabilità

Il tempo iniziale investito per stabilire ogni classe di equivalenza nel test del software si ripaga in futuro se si riutilizzano queste classi per i test di input futuri. Anche se non tutte le partizioni saranno rilevanti per i test futuri, quelle che lo sono vi faranno risparmiare molto tempo per i progetti futuri o anche per i test di regressione.

 

Svantaggi del partizionamento per equivalenza

nel test del software

sfide-collaudo del carico

Sebbene il partizionamento per equivalenza offra alcuni vantaggi importanti, non è la soluzione ideale per ogni scenario. Esploriamo alcuni dei suoi limiti.

1. Ordine di ingresso

In alcune situazioni, l’ordine degli input è una parte fondamentale del test della funzionalità di un’applicazione. Non è una cosa che si può ridurre utilizzando il partizionamento per equivalenza. I tester devono tenere conto di queste situazioni e utilizzare tecniche alternative per fornire una buona copertura.

2. Dipendenze complesse dagli ingressi

Il software complesso con dipendenze complesse dagli input è un’altra area in cui si evidenziano i limiti del partizionamento per equivalenza. Ad esempio, un software che produce calcoli in base a vari input. In questo scenario, i tester dovrebbero utilizzare una serie di tecniche per ridurre l’esplosione combinatoria e aumentare la probabilità di isolare i difetti.

 

Approcci alternativi per integrare il

limiti dei test di equivalenza

alpha testing vs beta testing

Mentre i test di partizione di equivalenza sono appropriati per molti scenari di test, un software molto complesso con dipendenze intricate tra i valori di input può richiedere approcci complementari.

Quando si tratta di scrivere casi di test per software complessi, l’utilizzo di una combinazione di questi approcci è un’idea solida.

1. Test a coppie

Il test a coppie è una tecnica di test del software che verifica tutte le possibili combinazioni di ogni coppia di parametri di ingresso. Questo approccio garantisce che ogni coppia di parametri venga testata insieme almeno una volta.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

2. Test della tabella decisionale

Una tabella decisionale aiuta i tester a tracciare metodicamente le diverse combinazioni di input. È un buon modo per garantire una copertura sistematica quando esistono dipendenze complesse.

3. Test di transizione di stato

Questo tipo di test misura il modo in cui il software passa da uno stato all’altro in risposta a varie combinazioni di input.

4. Test basati su modelli

Questo approccio richiede la creazione di un modello basato sulla logica interna del software e l’utilizzo di uno strumento di automazione per creare casi di test basati su tale modello. Questa tecnica è in grado di gestire la complessità e di garantire una copertura adeguata.

 

Esempi di test di suddivisione in classi di equivalenza

Beta testing: cos'è, tipi, processi, approcci, strumenti, vs. Alpha testing e altro ancora!

Il modo migliore per comprendere il partizionamento delle equivalenze è osservare come e dove si può usare una classe di equivalenza nel test del software. Ecco alcuni esempi che aiutano a visualizzare meglio il concetto.

 

1. Esempio di test di partizione della classe di equivalenza #1

Un modulo d’ordine online è un buon esempio di classe di equivalenza nel test del software.

Supponiamo che stiate costruendo un’applicazione per un rivenditore online di attrezzature fisse. Esiste un modulo d’ordine tipico per i rotoli di carta A4. Ecco come si possono utilizzare le classi di equivalenza per verificare questa forma.

Classi di equivalenza:

Le quantità di carta A4 sono comprese in un intervallo specifico che va, ad esempio, da 1 a 100. Quindi, le tre classi sono:

  • Da 1 a 100
  • Numeri inferiori a 1
  • Numeri superiori a 100.

 

Casi di test:

Devono essere eseguiti tre casi di test, con i seguenti risultati attesi

  • Qualsiasi numero compreso tra 1 e 100 = Ordine elaborato
  • Numeri inferiori a 1 = messaggio di errore
  • Numeri superiori a 100 = messaggio di errore

 

2. Esempio di test di partizione dell’equivalenza n. 2

Una classe di equivalenza nel test del software può trattare molto di più dei semplici numeri. In questo esempio, vedremo come utilizzare lo stesso principio per verificare un portale di caricamento di file. Supponiamo di dover effettuare un test per un sito che richiede agli utenti di caricare documenti d’identità, ma che può accettare solo formati specifici.

Classi di equivalenza:

  • I documenti supportati sono PDF e JPEG.
  • I documenti non supportati sono tutti gli altri formati di documenti.
  • Nessun documento

 

Casi di test:

  • Test con il caricamento di PDF o JPEG = caricamento riuscito
  • Prova a caricare un formato non supportato = messaggio di errore
  • Test senza caricamento di file = messaggio di errore

 

Come implementare un partizionamento di equivalenza

approccio al test del software

Automazione dei test Agile DevOps: Spiegazione dell'approccio di automazione basato su mockup di ZAPTEST

Se si desidera utilizzare le classi di equivalenza nei test, è necessario adottare un approccio strategico. Ecco un’utile guida passo-passo all’implementazione del partizionamento di equivalenza nel testing del software.

 

Passo 1: identificare le variabili di input

 

Ogni software risponde a una serie di variabili di input. Nel caso di software complessi, queste variabili possono essere enormi. Quindi, esaminate i requisiti e le specifiche del software e individuate tutte le variabili che hanno un impatto sul comportamento del software.

Alcuni degli input più ovvi sono i moduli di input dell’utente. Tuttavia, è necessario considerare una gamma più ampia di input per la vostra lista. Si possono considerare anche le variabili ambientali, le chiamate API, i calcoli interni e così via.

È quindi necessario comprendere i diversi tipi di dati variabili. È possibile classificare queste variabili come interi, booleani, stringhe e così via, per definire le partizioni appropriate.

Infine, è necessario esplorare i vincoli di input. Si tratta di elementi quali i caratteri consentiti, i formati definiti e i valori minimi/massimi.

 

Passo n. 2. Determinare le partizioni valide e non valide

Esaminate ogni variabile di input e iniziate a suddividerla in base ai risultati validi e non validi. Queste saranno le classi di equivalenza nei test.

1. Partizioni valide

Le partizioni valide possono essere suddivise in due classi.

Classi di equivalenza positive:

Valori che il software dovrebbe gestire con successo. Ad esempio, per i software che registrano i voti in percentuale, qualsiasi valore compreso tra 0 e 100 è valido.

Classi di equivalenza negative:

Questa categoria è destinata ai valori che non rientrano nei limiti dell’input previsto, ma che il software dovrebbe gestire con un messaggio di errore. Ad esempio, l’input è 110 per un voto in percentuale, il che fa sì che il software restituisca un messaggio di errore che dice: “Tutti i valori devono essere compresi tra 0 e 100”.

 

2. Partizioni non valide

Queste classi di equivalenza comprenderanno input che scateneranno errori o comportamenti inattesi. Nel nostro esempio precedente, ciò potrebbe includere il tentativo di inserire A+ o B o altri dati simili nel voto percentuale. Anche se questi input potrebbero essere tecnicamente corretti, non rientrano nelle aspettative numeriche.

 

#3. Scrivere casi di test efficaci

Successivamente, è necessario progettare casi di test che coprano almeno una volta ogni partizione di equivalenza. Come accennato in precedenza nell’articolo, ciò garantisce un’adeguata copertura dei test.

Per prima cosa, è necessario selezionare valori rappresentativi all’interno di ogni partizione di equivalenza che possano coprire sia i dati validi che quelli non validi.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Suggerimenti per scrivere casi di test solidi

  • Pensate ai valori limite: Verificate i confini delle vostre partizioni. Minimo, massimo, inclusivo, esclusivo e così via, poiché queste aree sono fortemente candidate alla presenza di bug. Ad esempio, se le aspettative di input sono comprese tra 0 e 100, verificare la presenza di valori negativi e di numeri come 101.
  • Considerare scenari di test positivi e negativi per i casi di test validi e non validi.
  • I test combinati sono una buona idea. Utilizzare alcuni approcci diversi, come illustrato nei nostri approcci alternativi, per integrare i limiti della sezione sui test di equivalenza.
  • Documentare il motivo per cui i valori di input sono stati suddivisi in partizioni specifiche e delineare chiaramente il comportamento atteso di ciascun test.
  • Se possibile, utilizzate strumenti visivi per dare un senso di chiarezza e obiettività ai vostri casi di test, utilizzando diagrammi o tabelle per tracciare le partizioni.

 

#4. Programmare ed eseguire i casi di test

Date priorità ai vostri compiti in base a fattori quali:

  • Quali sono le aree che hanno maggiori probabilità di presentare difetti?
  • Quali sono gli scenari che con maggiore probabilità possono provocare situazioni gravi, come crash o blocchi

Quindi, eseguite i test e registrate i risultati e gli eventuali errori che si verificano. Per i programmi complessi con molti input, è possibile utilizzare gli strumenti RPA per imitare le azioni dell’utente.

 

#5. Analizzare i risultati

Mettere in comune i dati di prova raccolti e analizzare i risultati. Alcuni metodi da utilizzare sono:

  • Esaminate ogni caso di test e confrontate i risultati effettivi con quelli attesi.
  • Individuare eventuali discrepanze e indagare e segnalare eventuali bug e difetti.

 

#6 Suggerimenti aggiuntivi

Anche se questi suggerimenti non si applicano a tutti gli scenari, si riveleranno utili per il test di software complessi.

  • Le tabelle decisionali sono un modo eccellente per visualizzare le partizioni di equivalenza e le diverse combinazioni di input che si desidera utilizzare.
  • È possibile unire le classi di equivalenza se presentano un comportamento quasi identico, ottimizzando ulteriormente il processo di test.
  • Utilizzare i test sui valori limite per migliorare il rilevamento dei difetti
  • Ove possibile, automatizzare i casi di test di partizione dell’equivalenza.

 

Partizione di equivalenza e analisi del valore limite

Chiarire alcune confusioni nell'automazione del test del software

Il partizionamento per equivalenza si basa sul presupposto che ogni test all’interno di una partizione produca lo stesso risultato. Sebbene ciò sia vero in molte situazioni, non sempre funziona. Ad esempio, gli input aggiunti per errore a una partizione potrebbero non essere controllati, con conseguente riduzione della copertura e potenziale instabilità del software.

La soluzione a questo problema è il test del valore limite. Consente ai team di collaudo del software di concentrarsi sulle aree che hanno maggiori probabilità di contenere rischi e di testare il software su questa base. In breve, propone che i rischi si verifichino soprattutto ai bordi o ai confini delle partizioni di input. Pertanto, i tester possono scrivere casi di test sui limiti superiore e inferiore degli ingressi, oltre agli altri casi di test della classe di equivalenza.

 

Partizione delle equivalenze e automazione con ZAPTEST

I migliori strumenti gratuiti e aziendali per il testing del software e l'automazione RPA

Gli strumenti di automazione dei test software, come ZAPTEST, possono aiutare i team ad automatizzare il partizionamento delle equivalenze sia durante la creazione che l’esecuzione dei test.

Vediamo come ZAPTEST può aiutarvi a sbloccare i vantaggi di questo utile approccio di test black-box.

 

1. Selezione dello strumento

La scelta dello strumento giusto per il lavoro è importante. La maggior parte degli strumenti di automazione dei test è specializzata in test web, mobile o desktop. ZAPTEST è in grado di gestire test su diverse piattaforme e applicazioni, il che lo rende una scelta solida.

 

2. Scrivere ed eseguire i casi di test

ZAPTEST 1Script consente di analizzare l’interfaccia utente per costruire l’automazione dei test. Inoltre, è possibile scansionare i mock-up delle applicazioni se si è in una fase iniziale di sviluppo. Utilizzando la funzione Scan GUI, ZAPTEST scansiona tutti gli oggetti di test e li aggiunge all’elenco degli oggetti.

Da qui è possibile aggiungere oggetti al diagramma e costruire le fasi del test.

ZAPTEST consente di automatizzare la scrittura dei casi con una semplice interfaccia drag-and-drop. Non è necessario avere competenze di codifica per creare casi di test con ZAPTEST. Quindi, da qui, si può selezionare l’operazione pertinente da un metodo a discesa e costruire un caso di test basato sui valori di input necessari per l’interfaccia. Quindi, si possono costruire casi di test per ogni equivalenza ed eseguire i casi di test. È anche possibile riutilizzare i casi di test e modificarli nell’editor dei passi, risparmiando molto tempo.

 

3. Reporting e gestione dei casi di test

ZAPTEST consente di eseguire i casi di test in parallelo, con un notevole risparmio di tempo. Questo può aiutare a eseguire un gran numero di partizioni di equivalenza diverse in una sola volta o a eseguire gruppi particolari di test.

I risultati sono facili da raccogliere grazie a rapporti dettagliati su fallimenti/superamenti, schermate, registri di esecuzione e metriche delle prestazioni relative a ciascun caso di test.

 

4. Manutenzione dei casi di test

Inoltre, grazie alle funzionalità di controllo delle versioni di qualità, è possibile tenere traccia dei casi di test e mantenerli in modo semplice. Inoltre, gli utenti di ZAPTEST possono clonare e riutilizzare i test per raggiungere un nuovo livello di efficienza.

ZAPTEST offre molte altre funzionalità oltre all’automazione dei casi di test. Con una suite di strumenti RPA, ZAPTEST offre funzionalità 2 in 1, colmando il divario tra DevOps e BizOps in un futuro segnato dall’iperautomazione, dove tutto ciò che può essere automatizzato sarà automatizzato.

 

Riflessioni finali

Il partizionamento per equivalenza è una soluzione elegante per le situazioni in cui i tester devono trovare un equilibrio tra efficienza e accuratezza. Con alcuni software che consentono una gamma quasi infinita di input, il partizionamento delle classi di equivalenza aiuta i team a suddividere i dati di test in pezzi gestibili e di dimensioni ridotte che possono essere testati in modo approfondito.

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post

Virtual Expert

ZAPTEST

ZAPTEST Logo