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.

 

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