Prove esplorative
Scopri cosa sono i test esplorativi e la loro storia. Scopri i pro e i contro dei test esplorativi, in che modo differiscono dai test controllati da script e il contesto appropriato per utilizzarli.
Deepak Parmar
Scrittore collaboratore
I test esplorativi sono un approccio al test del software che viene spesso descritto come apprendimento simultaneo, progettazione ed esecuzione di test. Si concentra sull'individuazione e si basa sulla guida del singolo tester per scoprire difetti che non sono facilmente coperti nell'ambito di altri test.
La pratica dei test esplorativi ha acquisito slancio negli ultimi anni. I tester e i responsabili del controllo di qualità sono incoraggiati a includere i test esplorativi nell'ambito di una strategia completa di code coverage del test.
Storia dei test esplorativi
I test esplorativi esistono da tempo, ma venivano spesso definiti "test ad hoc". Il termine "test esplorativo" è stato introdotto formalmente dall'esperto di test del software Cem Kaner nel suo libro, ormai diventato un classico, Testing Computer Software.
L'adagio è famoso: "A prescindere dal numero e dal tipo di test case creati, esaurirai i test pianificati formalmente. Potrai continuare a testare. Esegui nuovi test non appena ti vengono in mente, senza dedicare troppo tempo alla loro preparazione o spiegazione. Fidati del tuo istinto".
Perché usare i test esplorativi
I team di oggi devono adottare la continuous integration e soddisfare la domanda del mercato di esperienze digitali di qualità, per andare incontro al meglio alle aspettative sempre crescenti dei clienti. Sebbene la velocità di commercializzazione sia importante, si verificano casi di bug da milioni di dollari o disastri legati all'esperienza utente molto costosi. Da Boeing a Instagram, gli esempi in cui la fretta di distribuire entro le scadenze e i test di scarsa qualità hanno portato a danni alla reputazione e finanziari sono infiniti.
La maggior parte dei test di qualità del software utilizza un approccio strutturato. I test case sono definiti in base a storie utente già definite e i dati dei test sono strutturati in base ai test case definiti. La code coverage del test viene misurata utilizzando metriche di progettazione del software e, nella maggior parte dei casi, la coverage viene adeguata dal punto di vista tecnico.
Scopri la soluzione
Compilare e gestire software con Open DevOps
Materiale correlato
Test automatizzati in DevOps
Ciò che spesso manca sono i casi limite, che vengono scoperti tramite il test di accettazione utente (User Acceptance Testing, UAT) e testati in base a utenti tipo. D'altra parte, i test esplorativi sono di natura casuale o non strutturata e possono rivelare bug che non sarebbero stati scoperti durante la fase strutturata del test.
Con i test esplorativi, i tester possono sperimentare con una storia utente che segue una determinata sequenza. I tester possono annotare i difetti, aggiungere asserzioni e promemoria vocali e creare documentazione all'istante. Ecco come una storia utente viene convertita in un test case. Queste informazioni possono essere utilizzate anche per il controllo di qualità.
In effetti, l'esecuzione del test viene implementata senza creare formalmente i passaggi del test. Lo strumento di test esplorativo diventa quindi un precursore dell'automazione. Aiuta a formalizzare i risultati e a documentarli automaticamente. Con l'aiuto del feedback visivo e degli strumenti di test collaborativi, tutti possono partecipare ai test esplorativi. Ciò consente ai team di reagire e adattarsi rapidamente ai cambiamenti, portando a un flusso di lavoro agile.
Inoltre, il tester può convertire sequenze di test esplorativi in script di test funzionali utilizzando strumenti per la documentazione automatizzata dei test case. Questo rafforza il processo tradizionale di test.
Integrandosi con strumenti come Jira e prodotti per la gestione dei test, i team possono esportare direttamente la documentazione registrata in test case.
Quindi, i test esplorativi accelerano la documentazione, facilitano gli unit test e aiutano a creare un ciclo di feedback istantaneo. Come afferma James Bach, cofondatore della Context-Driven School of Software Testing, "i test esplorativi incoraggiano il pensiero scientifico in tempo reale".
Quando dovresti usare i test esplorativi?
I test esplorativi sono adatti per scenari di test specifici, ad esempio quando qualcuno ha bisogno di conoscere rapidamente un prodotto o un'applicazione e fornire un feedback rapido. Aiutano a valutare la qualità di un prodotto dal punto di vista dell'utente.
In molti cicli software, è necessaria un'iterazione anticipata quando i team non hanno molto tempo per strutturare i test. I test esplorativi sono molto utili in questo scenario.
Durante il test di applicazioni cruciali, i test esplorativi garantiscono di non perdere i casi limite che portano a problemi critici di qualità. Inoltre, è importante usare i test esplorativi per agevolare i processi di unit test, documentare i passaggi e usare queste informazioni per eseguire test approfonditi negli sprint successivi.
Sono particolarmente utili per trovare nuovi scenari di test per migliorare la code coverage del test.
Quando dire no ai test esplorativi
Le organizzazioni devono essere in grado di trovare il giusto equilibrio tra test esplorativi e test controllati da script. I test esplorativi da soli non possono offrire una copertura adeguata e i team non dovrebbero utilizzarli, a meno che non abbiano raggiunto alcune milestone iniziali.
I test controllati da script, come tutti i test regolamentati o basati sulla conformità, sono preferibili. Nei test basati sulla conformità, in cui è necessario attenersi a determinate checklist e direttive per motivi legali, si consiglia di attenersi ai test controllati da script. Un esempio è il test di accessibilità, in cui diverse leggi regolano il protocollo di test e sono previsti standard definiti che devono essere approvati.
Importanza dei test esplorativi per le pipeline di CI/CD
I test esplorativi aprono i test a tutte le principali parti interessate e non solo ai tester qualificati. Utilizzando uno strumento di test esplorativo, è possibile acquisire screenshot, registrare memo vocali e annotare feedback durante le sessioni. Ciò consente una revisione più rapida ed efficiente da parte di utenti diversi dai tester tradizionali.
I test esplorativi integrano la strategia di test esistente dei team di controllo di qualità. Comprende una serie di sessioni di test non documentate per individuare problemi/bug ancora rilevati. Se combinato con test automatizzati e altre pratiche di test, aumenta la code coverage del test, scopre casi limite, potenzialmente aggiunge nuove funzionalità e nel complesso migliora il prodotto software. Senza rigidità strutturale, incoraggia la sperimentazione, la creatività e la scoperta all'interno dei team.
La natura quasi istantanea del feedback aiuta a colmare le lacune tra tester e sviluppatori. Soprattutto, i risultati dei test esplorativi forniscono una prospettiva e un feedback orientati all'utente ai team di sviluppo. L'obiettivo è integrare i test tradizionali per trovare difetti da milioni di dollari generalmente nascosti dietro il flusso di lavoro definito.
Visita l'Atlassian Marketplace per scoprire di più sulle applicazioni di gestione dei test. Inoltre, puoi dare un'occhiata ai nostri tutorial sui test DevOps per scoprire come Atlassian e gli strumenti di terze parti possono integrare i test nel tuo flusso di lavoro.
Condividi l'articolo
Argomento successivo
Letture consigliate
Aggiungi ai preferiti queste risorse per ricevere informazioni sui tipi di team DevOps e aggiornamenti continui su DevOps in Atlassian.