Per comprendere l’utilità di una regression suite testing, per prima cosa dobbiamo avere chiaro il ruolo dei test di regressione. Il principale obiettivo è evitare gli errori correlati alla modifica del codice, che possono verificarsi in qualsiasi fase del processo di sviluppo. Tuttavia, i regression test aiutano anche a:
- ridurre il rischio di introdurre nuovi errori;
- aumentare la fiducia dei team di sviluppo, che opera più liberamente sapendo che qualunque nuovo errore verrà identificato;
- ridurre i tempi di rilascio.
Una regression suite testing, di fatto, è una selezione di casi di test progettati per garantire che eventuali modifiche al codice o funzionalità aggiunte non abbiano danneggiato la versione precedente del codice. Includere una regression suite testing a tutti i livelli è un'importante misura per garantire la qualità del software.
Per ottenere questo risultato, la regression suite testing dovrebbe avere le seguenti caratteristiche:
- essere stabile;
- essere facile da manutenere;
- avere una copertura il più possibile ampia, soprattutto sulle aree critiche o core;
- generare una reportistica chiara che consenta facilmente agli sviluppatori di apportare le correzioni.
I 5 passi per costruire una regression suite testing efficace
Alla creazione della suite possono contribuire sia i test automatizzati, sia modalità innovative come il crowdtesting, che, come vedremo, sono impiegati in modo ottimale in situazioni e in ambiti differenti.
Costruire una regression suite testing di successo necessita di cinque passaggi ben definiti:
1.Identificare le aree critiche e core (H3)
Il primo passo è individuare le funzionalità del software più importanti, quelle maggiormente a rischio, quelle più soggette a cambiamenti, quelle che hanno creato maggiori problemi in passato.
Una volta identificate le aree critiche e core, sarà necessario verificare che siano coperte da test di regressione adeguati.
In caso contrario, si può ricorrere a test automatizzati, che danno una risposta molto rapida ma verificano solo ciò per cui sono stati pensati, o al crowdtesting, che combina l’approccio fresh eye con la profondità tecnologica, contribuendo a una maggior copertura su una varietà di casistiche, dispositivi e sistemi operativi.
2.Automatizzare non solo gli strumenti, ma l’intero processo (H3)
Per assicurare un feedback significativo in tempi brevi è importante definire una prassi che preveda l’avvio dei test automatici e/o di una sessione di crowdtesting ogni volta che si aggiunge una funzionalità critica e si avvicina la fase di rilascio. Da non dimenticare: è importante automatizzare anche la raccolta dei dati.
3.Definire le priorità dei casi di test (H3)
Una regression suite testing può generare centinaia di test. È dunque consigliabile eseguire dapprima i test automatici, definendone le priorità e rendendoli flessibili.
Il ricorso al crowdtesting per analizzare le possibili ricadute degli aggiornamenti offre, in più, il vantaggio di poter dare istruzioni precise ai tester affinché indaghino con particolare attenzione l’area oggetto di modifica.
4.Organizzare la regression suite testing (H3)
Per il successo, è indispensabile organizzare la suite in modo chiaro, dividendo, ad esempio, i test in moduli che vadano a coprire le diverse aree del servizio e definendo, per ciascun test, le priorità e la frequenza di esecuzione.
Si potrebbe, ad esempio, assegnare al crowd il testing di funzionalità core, dove è preferibile poter contare su un’intelligenza umana, e a test automatizzati la verifica di aree meno critiche ma che prevedono aggiornamenti frequenti.
5.Manutere e aggiornare la regression suite testing (H3)
I test vanno aggiornati con le nuove funzionalità, rimuovendo quelli obsoleti e facendo evolvere i casi d’uso anche in relazione all’attività dell’utente. Le funzioni scarsamente utilizzate, ad esempio, perderanno progressivamente la loro priorità, mentre nuove feature potrebbero essere prioritarie in fase iniziale per poi, a loro volta, decadere.
Grande importanza ha il versionamento della regression suite testing, che deve seguire le versioni del prodotto, ambito in cui il crowdtesting è molto efficace. In caso di evoluzione del sistema, ad esempio, crowdtesting riesce a individuare errori difficilmente evidenziabili in automatico.
Competenza e collaborazione per la scelta dei test più appropriati (H2)
La creazione di una regression suite testing efficace è un’attività complessa che richiede strumenti tecnologici, competenze, collaborazione. Giocano un ruolo chiave figure come il CSM (Customer Success Manager nella gestione del crowd e il TL (Test Leader) nel coordinamento dei test.
Per individuare le aree critiche, in particolare quelle che hanno maggior impatto e visibilità dell’utente, è indispensabile collaborare con tutti gli attori coinvolti. Il CSM in fase di costruzione del test è in grado di parlare da un lato con il business per identificarne le priorità e dall’altro con l’esperto di sviluppo per identificare le criticità del software.
È indispensabile interloquire con la controparte aziendale anche per individuare le aree ad alto rischio, ad esempio quelle aggiornate più frequentemente o i moduli molto complessi e interrelati.
Una volta identificati i test più appropriati, in base alle priorità del business e alle criticità del software, sono necessari strumenti e competenze per produrre un report dettagliato e preciso che includa i passaggi funzionali, gli screenshot, tutte le informazioni necessarie per indicare allo sviluppatore un contesto operativo chiaro.
In conclusione, l’owner del prodotto digitale certamente lo conosce ma non ha necessariamente la competenza specifica nel testing né l’esperienza sufficiente per scegliere la metodologia giusta.
La soluzione che combina CSM, TL e crowd riesce invece a identificare dall’esterno le corrette prioritizzazioni dei test e la metodologia giusta per definire una strategia di testing correlata a una corretta copertura della non regressione, indispensabile per creare una regression suite testing efficace.