C'è un momento, in ogni team in crescita, in cui i test manuali smettono di proteggere e iniziano a ritardare.
All'inizio funziona bene. Una o due persone controllano manualmente ogni consegna, riscontrano problemi, il prodotto migliora. Ma man mano che il sistema cresce, il volume delle cose da controllare aumenta esponenzialmente. Ogni versione richiede più ore di test manuale e presto la consegna si blocca in attesa che il QA la gestisca. Ciò che era qualità diventa una coda.
La reazione sbagliata è raddoppiare l’impegno: assumere più persone per eseguire più test manualmente. Ciò non fa altro che posticipare il problema e renderlo più costoso. La reazione giusta è ripensare il ruolo dei test manuali nel team di ridimensionamento. Non scompare, ma ha bisogno di cambiare la sua funzione. Questa è una tabella di marcia per effettuare tale transizione.
Perché i test manuali non finiscono mai
Prima della roadmap è necessario sfatare un mito: che l’automazione sostituisca completamente i test manuali. Non sostituisce. Testano cose diverse.
L’automazione è imbattibile quando si tratta di essere ripetitiva, oggettiva e verificabile: il pulsante funziona, il calcolo è corretto, il flusso non si è interrotto. La sperimentazione manuale è insostituibile quando si tratta di aspetti soggettivi, esplorativi e umani: l'esperienza ha senso? Ti sembra qualcosa di strano? Questo flusso, anche se tecnicamente corretto, crea confusione per una persona reale?
Lo scaling dei test non elimina il manuale. Si tratta di collocare ogni tipo di test dove dà di più. La macchina prende il ripetitivo; si prende ciò che richiede giudizio. Chi capisce bene questo sale; chiunque tratti i due come concorrenti riesce a scalare male.
Passaggio 1: separare il ripetibile dall'esplorativo
Il primo passo della sceneggiatura è la proiezione. Guarda tutto ciò che viene testato manualmente oggi e dividilo in due pile.
Innanzitutto ciò che è ripetibile e oggettivo: lo stesso flusso di registrazione che avviene ad ogni rilascio, la stessa validazione del modulo, lo stesso calcolo. Questo è un candidato per l'automazione. È il lavoro che stanca gli esseri umani e che fa sì che le macchine facciano meglio.
Nella seconda, ciò che richiede il giudizio umano: valutare se un nuovo schermo ha senso, esplorare un flusso alla ricerca dell’inaspettato, testare una funzionalità appena creata che non si è ancora stabilizzata. Questo deve rimanere manuale.
Questa separazione è la base di tutto. Senza di esso, il team automatizza ciò che non dovrebbe e mantiene manuale ciò che dovrebbe essere automatizzato, sprecando sforzi da entrambe le parti.
Passaggio 2: automatizza prima la regressione
Una volta terminato il triage, la priorità numero uno per l’automazione è chiara: la regressione. Questi sono i test che vengono rieseguiti ad ogni modifica per garantire che nulla di ciò che già funzionava si rompa.
Questo è il lavoro manuale più doloroso e meno gratificante che esista. Ricontrollare manualmente gli stessi vecchi flussi a ogni rilascio è noioso, dispendioso in termini di tempo e soggetto a errori a causa della fatica. Questo è esattamente ciò che consuma più tempo per il QA in un team in crescita e ciò che trae maggiori vantaggi dal diventare automatizzato.
L’automazione della regressione libera le persone dal lavoro meccanico e restituisce loro tempo per ciò che solo gli esseri umani sanno fare bene. Questo è il passaggio che allevia maggiormente il collo di bottiglia. Inizia qui.
Step 3: strutturare il test esplorativo
C'è un malinteso secondo cui il test manuale significa "fare clic senza un metodo". Il test esplorativo fatto bene è il contrario: è strutturato, anche se è gratuito.
La tecnica che consiglio è definire le sessioni con focus e tempo. Invece di “testare il sistema”, lo script diventa “esplora il flusso di pagamento per 45 minuti alla ricerca di casi limite”. Ciò fornisce indicazioni senza essere rigido e produce registrazioni di ciò che è stato coperto e di ciò che è stato trovato.
Questa struttura è ciò che rende il test manuale scalabile come pratica. Smette di essere un'attività vaga, impossibile da pianificare e misurare, e diventa una parte gestibile del processo, con focus, registrazione e apprendimento accumulato.
Passaggio 4: integra il QA nel flusso, non alla fine
Il modello che ostacola maggiormente la consegna è il QA come fase finale: lo sviluppatore finisce, "getta oltre il muro" al tester, che trova i problemi tardi, quando la riparazione è costosa.
L'arrampicata richiede l'abbattimento di questo muro. La qualità deve arrivare presto e durante, non solo alla fine. Ciò significa che il tester partecipa alla definizione di ciò che verrà creato, aiuta a pensare ai casi limite prima che il codice esista e testa in modo incrementale invece che tutto in una volta alla chiusura.
Il cambiamento è sia di processo che di cultura. La qualità non è più responsabilità di chi si trova alla fine della linea, ma diventa responsabilità dell'intero team lungo il percorso. Il tester diventa un esperto che innalza la qualità di ognuno, non l'imbuto attraverso il quale deve passare tutto.
L'errore di misurazione del QA in base ai bug rilevati
Un errore comune durante la scalabilità è creare metriche che premino il comportamento sbagliato. Misurare il QA in base al numero di bug rilevati, ad esempio, incoraggia a trovarli in ritardo, quando l’ideale sarebbe prevenirli in anticipo.
La maturità sta nel misurare la prevenzione, non solo l’individuazione. Una squadra che trova meno bug nella produzione sta andando bene, anche se "trova meno bug" in totale. Lo scopo dei test, manuali o automatizzati, non è mai stato quello di individuare difetti; era fornire un prodotto affidabile. Il rilevamento è un mezzo, non un fine.
Scalare significa riposizionare l'umano, non rimuoverlo
L’intera tabella di marcia converge su un’idea: ridimensionare i test manuali non significa fare più test manuali, né sostituirli con le macchine. Si tratta di riposizionare lo sforzo umano là dove aggiunge un valore unico.
La macchina assume la ripetitività e l'obiettivo. La persona assume l'esploratore, il soggettivo, il giudizio sull'esperienza e sul significato. L'intero team assume la qualità come una responsabilità continua, non come un passo affidato a una posizione all'estremità della linea.
Team che riescono a scalare questa transizione mantenendo insieme qualità e velocità. I team che insistono nel testare tutto manualmente scelgono, senza rendersene conto, tra consegnare rapidamente e consegnare bene. Non è necessario che la scelta esista, basta mettere ogni tipo di test al suo posto.
Se i test manuali sono diventati un collo di bottiglia nella tua consegna e la risposta sul tavolo è "assumere più persone per testare", forse vale la pena ripensare il processo prima dell'organico. Ho altri articoli sul blog su qualità, automazione e gestione dei team tecnologici che approfondiscono questo argomento.
Leggi anche
- Ciclo di test del software: tendenze e casi reali di chi testa in anticipo (e di chi ha pagato per testare in ritardo)
- Ciclo di test del software: tendenze e una guida rapida per i leader
- Prestazioni del software: cosa insegnano i casi reali sulla qualità
- Test automatizzati: perché il codice non testato è debito
- Architettura di test automatizzata: una guida rapida per i team che necessitano di velocità
- Architettura di test automatizzata: i passaggi essenziali per la configurazione da zero