Lo smoke testing è un processo utilizzato per testare il software e determinare se la build del software distribuito è stabile o meno.
Quando si effettua lo smoke test di un software, si esegue una serie di test progettati per valutare ciascuna delle funzionalità principali del software.
Gli strumenti di Smoke test verificano che le caratteristiche più importanti del software funzionino. Esistono diversi approcci allo smoke testing e la tecnologia moderna consente di eseguire lo smoke testing automatico per la maggior parte dei software.
In questo articolo faremo un’immersione profonda nello smoke testing per esaminare i tipi, i processi e gli approcci allo smoke testing che i tester del software utilizzano. Verranno inoltre esaminati i moderni strumenti di smoke testing, compresa l’automazione dello stesso.
In breve, imparerete tutto ciò che dovrete sapere sui test del fumo.
Che cos’è lo smoke testing nell’ingegneria del software?
Lo smoke testing è il processo di verifica del software per assicurarsi che soddisfi i requisiti di funzionalità e stabilità di base. Si tratta essenzialmente di un tipo di test di regressione rapido e in miniatura che prevede la verifica delle funzionalità più importanti del software per assicurarsi che funzionino a livello di base.
Lo smoke testing è un’importante fase iniziale del processo di QA, perché indica se il team deve proseguire con ulteriori test o rimandare immediatamente il prodotto agli sviluppatori.
Se il prodotto non supera lo smoke test, significa che la build iniziale presenta difetti significativi che devono essere risolti prima di poter effettuare ulteriori test.
Quando è necessario effettuare il test del fumo?
Eseguiamo lo smoke test del software ogni volta che vengono sviluppate e integrate nuove funzionalità in una build esistente e prima che la nuova build venga distribuita al QA. L’esecuzione di smoke test in questa fase evita di sprecare denaro e altre risorse in test QA per un software che presenta gravi problemi di fondo.
Per eseguire uno smoke test QA, il team di sviluppo distribuisce la nuova build del software in QA e un sottoinsieme di casi di test viene preso ed eseguito sulla build. Il team QA testa l’applicazione rispetto alle sue funzionalità più importanti. Se il test di fumo viene superato, il team QA prosegue con il test funzionale; se invece non viene superato, la build passa al team di sviluppo per un ulteriore sviluppo.
Questo tipo di test avviene ogni volta che vengono aggiunte nuove funzionalità a una build di software.
Ci possono essere altre occasioni in cui i team QA effettuano lo smoke test del software, ad esempio:
Prima di eseguire il commit di nuovo codice in un repository
Prima di un’ampia serie di test, compresi i test di regressione e di accettazione.
Dopo la distribuzione di una nuova build del software
Se non si esegue uno smoke test in questi punti, si potrebbe finire per trovare difetti importanti nelle fasi successive del test di funzionalità, che potrebbero influenzare la data di rilascio della nuova build o causare interruzioni più gravi del programma.
Quando non è necessario fare il test del fumo
È importante eseguire lo smoke test nel testing del software ogni volta che si apportano modifiche al codice del software o si aggiungono nuove funzionalità a una build.
È anche una fase preparatoria essenziale al test di funzionalità, perché impedisce ai team QA di perdere tempo a testare un software che non è pronto.
Se il vostro software non soddisfa questi criteri, non è detto che dobbiate eseguire lo smoke test in questo momento… anche se gli strumenti di smoke test automatizzati rendono facile ed economicamente conveniente l’esecuzione di smoke test regolari per garantire che il software funzioni sempre correttamente.
Chi è coinvolto nel test del fumo
Lo smoke test viene eseguito dagli ingegneri QA o dal responsabile QA; è la prima fase del test QA e si svolge in un ambiente QA.
Il team QA è responsabile del collaudo della build del software e della valutazione delle sue prestazioni in diverse condizioni e sollecitazioni. Durante lo smoke test, gli ingegneri QA cercheranno gli “showtopper”, ovvero i bug che bloccano lo sviluppo e che devono essere risolti prima che il test possa continuare.
Quando si confrontano gli smoke test con i sanity test e i test di regressione, è importante considerare non solo cosa viene testato, ma anche chi esegue i test.
Lo smoke test nel test del software è sempre eseguito da professionisti della QA. Questo differenzia lo smoke testing dal sanity testing, che è un test eseguito nell’ambiente di sviluppo e che di solito non coinvolge il team QA.
Il ciclo di vita del test del fumo
Il ciclo di vita dello smoke test illustra dove si svolge lo smoke test durante lo sviluppo del prodotto e il test QA. La comprensione di ogni fase di questo ciclo vi aiuterà a capire meglio come lo smoke testing si inserisce nel percorso di testing e le differenze tra smoke testing, sanity testing e regression testing.
1. Codice
La prima fase della creazione di un software è sempre la scrittura e la creazione di codice. Il codice è l’elemento costitutivo di qualsiasi software e il team di sviluppo deve scrivere il codice prima di poterne testare la stabilità e la funzionalità.
2. Test unitari
I test unitari sono solitamente eseguiti dagli sviluppatori, anche se a volte anche gli ingegneri QA possono eseguire alcuni test unitari. I test unitari assicurano che le diverse unità o elementi di codice funzionino come previsto prima che le singole unità vengano integrate in un’unica build del software.
I test unitari di solito si svolgono parallelamente allo sviluppo, perché evidenziano gli errori e i bug del codice che possono essere corretti tempestivamente.
3. Test di integrazione
Il test di integrazione è il processo di verifica del funzionamento delle singole unità quando vengono integrate in un unico software.
Anche se ogni unità separata funziona bene, spesso possono sorgere problemi quando queste unità sono integrate tra loro. I test di integrazione vengono solitamente eseguiti dagli sviluppatori, anche se i diversi approcci a questo tipo di test consentono di eseguirli in diverse fasi del processo di creazione del software.
4. Test di sanità mentale
Il Sanity test è un tipo di test di regressione e di solito è l’ultimo tipo di test di regressione da eseguire. Si verifica durante la fase di sviluppo della build, dopo che i bug evidenziati dal test di regressione sono stati risolti.
Il Sanity test è di solito molto rapido e serve semplicemente a garantire che il software funzioni senza problemi e che gli eventuali bug riscontrati siano stati adeguatamente risolti.
A volte si confondono i test di sicurezza e i test di controllo, ma è fondamentale ricordare che i test di sicurezza si svolgono nell’ambiente di sviluppo, mentre i test di controllo si svolgono nell’ambiente di QA.
5. Test del fumo
Lo smoke test è la prima fase del test QA e il primo tipo di test che viene eseguito in un ambiente QA.
Lo smoke testing di solito precede il sanity testing e il regression testing, anche se di solito viene eseguito dai team di QA. Si tratta di un processo di test semplice e veloce – e al giorno d’oggi la maggior parte dei team QA utilizza lo smoke testing automatizzato nel testing del software – che determina se la build è stabile o meno e se è necessario eseguire ulteriori test.
Poiché lo smoke testing è il test più semplice e veloce nel confronto tra smoke testing e sanity testing e regression testing, è ragionevole eseguirlo per primo prima di passare ad altri test più complessi.
6. Test funzionali
Il test funzionale è la fase successiva del ciclo di vita del test del software e si svolge all’interno dell’ambiente QA.
Il test funzionale verifica ogni funzione di un’applicazione software rispetto ai suoi requisiti e si concentra su funzioni, usabilità, accessibilità e condizioni di errore.
Il test funzionale può iniziare una volta superato lo smoke test.
Applicazioni di prova del fumo a diversi livelli
Il test del fumo è applicabile a tre diversi livelli di test: test del fumo a livello di accettazione, test del fumo a livello di sistema e test del fumo a livello di integrazione.
1. Livello di test di accettazione
Lo smoke test a livello di accettazione viene solitamente eseguito quando la build del software viene rilasciata al QA. Questo tipo di smoke test QA verifica semplicemente la funzionalità di base della build e se questa è in linea con la funzionalità prevista.
2. Livello di test del sistema
Lo smoke test a livello di sistema prevede la verifica dei flussi di lavoro più importanti del sistema. Questo viene eseguito dopo che il sistema stesso è stato testato e prima che venga eseguito un test di regressione completo del sistema.
A livello di sistema, lo smoke test automatizzato è la forma più comune di smoke test.
3. Livello di test di integrazione
A livello di test di integrazione, gli smoke test assicurano che tutte le funzionalità end-to-end del software funzionino come previsto e che l’integrazione di base sia funzionale.
Questo tipo di smoke test si verifica di solito quando vengono implementati singoli moduli o quando più moduli vengono integrati in una singola build del software.
Test di fumo manuali e automatizzati
Quando i team di software iniziano a eseguire gli smoke test, devono decidere se eseguire gli smoke test manuali o quelli automatizzati.
Sebbene gli smoke test automatizzati offrano di solito risultati più rapidi ed economici, possono anche richiedere tempo per essere creati e implementati. Molti team iniziano creando smoke test manuali prima di considerare l’automazione più avanti.
1. Test del fumo manuale
Gli smoke test manuali sono abbastanza facili da progettare e possono essere eseguiti da professionisti non tecnici esterni ai team di QA o di sviluppo. Ciò significa che gli smoke test manuali sono spesso preferiti nelle aziende più piccole che potrebbero non avere ancora un responsabile QA dedicato.
Quando si esegue lo smoke test manuale, è importante testare un certo numero di casi d’uso che coprano un numero sufficiente di funzioni fondamentali del software, senza coprirne così tante da richiedere troppo tempo per l’esecuzione dello smoke test. Il numero ideale di casi d’uso è solitamente considerato compreso tra 20 e 50.
I vantaggi dell’esecuzione manuale dei test del fumo
L’esecuzione di smoke test manuali in QA presenta molteplici vantaggi rispetto agli smoke test automatizzati. Gli smoke test manuali offrono spesso informazioni più dettagliate sulle prestazioni e sulla funzionalità del software rispetto ai test automatizzati.
I non ingegneri possono eseguire test manuali
Mentre gli smoke test automatici richiedono solitamente l’esperienza di ingegneri e sviluppatori software per essere impostati, gli smoke test manuali possono essere eseguiti da membri del team con competenze meno specialistiche.
Questo è di solito vantaggioso nei team più piccoli, dove le risorse possono già essere limitate e il tempo del personale specializzato è estremamente prezioso.
È possibile creare uno smoke test personalizzato per ogni lavoro.
Se volete assicurarvi che lo smoke test copra accuratamente le funzioni più importanti di qualsiasi applicazione software e si concentri sulle funzioni più importanti per ogni build, la creazione di uno smoke test manuale consente ai tester di adattare il test a ogni progetto.
Gli smoke test manuali di questo tipo possono offrire risultati più utili rispetto ad alcuni test automatizzati, ma comportano un notevole dispendio di tempo per l’impostazione e l’esecuzione.
I test manuali rivelano dati qualitativi
Quando si esegue uno smoke test automatico, tutto ciò che ci si può aspettare di ricevere sono dati quantitativi su quali aspetti del test sono stati superati e quali no.
Quando i membri del team eseguono lo smoke test manuale, possono usare la loro intuizione, il loro intuito e il loro giudizio per valutare non solo se la build passa o fallisce, ma anche come e/o perché.
Le sfide dello smoke test manuale
L’esecuzione manuale dei test di fumo presenta numerose difficoltà, che spiegano il motivo per cui molte aziende scelgono di utilizzare, ove possibile, i test di fumo automatizzati.
Gli smoke test manuali sono accurati, ma richiedono molto tempo.
Gli smoke test manuali richiedono tempo
I test manuali richiedono molto più tempo per essere completati rispetto ai test automatici e richiedono molta più attenzione da parte del team.
Mentre i test automatizzati possono essere eseguiti in background da soli, il vostro team dovrà dedicare del tempo all’esecuzione di uno smoke test manuale.
I test manuali non possono essere eseguiti troppo spesso
A causa dell’enorme quantità di tempo e risorse che i test di fumo manuali richiedono, non possono essere eseguiti con la stessa regolarità dei test di fumo automatizzati.
Quando si esegue uno smoke test manuale, i tester del software devono dedicare ore, fino a mezza giornata, a seconda della complessità del test.
In questo modo si elimina la possibilità di effettuare test giornalieri sui fumi, che sono ampiamente considerati la migliore pratica del settore.
C’è sempre spazio per gli errori
Poiché l’uomo esegue i test manuali, c’è sempre la possibilità di commettere errori durante gli smoke test manuali.
Per questo motivo, lo smoke testing manuale di solito non è così completo come quello automatizzato, soprattutto quando si tratta di individuare bug sottili che è più facile non notare o quando si eseguono test estremamente ripetitivi che potrebbero far perdere la concentrazione ai tester durante il test.
Quando utilizzare lo smoke test manuale
Lo smoke testing manuale è più comunemente utilizzato nei team più piccoli che non hanno le risorse per dedicare gli ingegneri allo smoke testing automatizzato, oppure nei casi in cui sono necessari o desiderati un’analisi e un giudizio umani aggiuntivi.
Per questo motivo, i test di fumo manuali sono spesso implementati nei test di fumo a livello di integrazione.
2. Test del fumo automatizzato
Gli smoke test automatizzati possono essere implementati da ingegneri del software con le competenze di codifica necessarie per creare ed eseguire una serie di casi d’uso rilevanti per ogni build del software.
Gli smoke test automatici sono molto più veloci di quelli manuali, in quanto di solito non richiedono più di 30-60 minuti, e possono essere eseguiti in background mentre tutti i membri del team di sviluppo e di QA continuano le loro attività quotidiane.
Per questo motivo, gli smoke test automatizzati sono diventati comuni nell’industria del software, in quanto sempre più aziende cercano di migliorare l’efficienza del posto di lavoro.
I vantaggi dell’automazione degli smoke test
L’automazione degli smooth test offre molti vantaggi alle aziende che hanno il tempo e le risorse per implementarla. È veloce ed efficace e, grazie alla mancanza di stress per i team e le risorse, i test automatizzati possono essere eseguiti regolarmente anche nelle piccole aziende.
I test automatizzati sono veloci
Gli smoke test automatizzati sono molto più veloci di quelli manuali: la maggior parte dei test automatizzati non richiede più di 30-60 minuti per essere completata.
I test manuali possono richiedere ore, in confronto.
Gli smoke test automatizzati richiedono risorse minime e, una volta implementati, sono molto facili da eseguire.
L’automazione rende possibili i test del fumo giornalieri
Le attuali best practice del settore impongono l’esecuzione di smoke test quotidiani, in particolare quando si lavora su software in costante evoluzione.
Gli smoke test manuali richiedono troppo tempo per essere eseguiti quotidianamente, mentre gli smoke test automatizzati sono facili da eseguire all’inizio di ogni giornata lavorativa.
L’automazione elimina l’errore umano
I test automatizzati vengono eseguiti da script preparati in anticipo e creati secondo standard molto esigenti. Ciò significa che la possibilità che un test automatizzato non si accorga di un bug o di un problema importante è molto bassa.
L’automazione può imitare i test di carico e di prestazione
I test di carico e di prestazione valutano il funzionamento di un’applicazione quando molti utenti la utilizzano contemporaneamente. Gli smoke test automatizzati possono simulare il carico aggiuntivo di più utenti in modi che i test manuali non possono fare e fornire un ulteriore livello di dati sulle prestazioni del software in determinate condizioni.
Le sfide dell’automazione degli smoke test
L’automazione dei test di fumo non è priva di sfide. L’implementazione di smoke test automatizzati può richiedere più tempo e risorse, soprattutto nei team più piccoli con meno ingegneri a disposizione.
Requisiti tecnici
Gli smoke test automatizzati richiedono maggiori conoscenze tecniche e competenze di codifica rispetto agli smoke test manuali. Gli ingegneri del software devono avere il tempo e le conoscenze necessarie per creare test automatizzati prima di poterli implementare, e non tutti i team avranno necessariamente le risorse disponibili per farlo.
Mancanza di intuizione umana
I test di automazione offrono una visione complessiva della funzionalità di un’applicazione software e, quando eseguono uno smoke test automatizzato, i tester del software ottengono una visione delle funzioni di base del software, che è lo scopo ultimo di uno smoke test.
Tuttavia, i test automatizzati non offrono alcuna visione degli aspetti più soggetti alle prestazioni del software, come l’usabilità e l’accessibilità.
Quando implementare l’automazione dei test di fumo
L’automazione è spesso impiegata negli smoke test perché lo scopo di questi ultimi è semplicemente quello di verificare le funzionalità di base, cosa che i test automatizzati sanno fare relativamente bene.
È più probabile che i team con competenze tecniche sufficienti per implementare i test di fumo automatizzati abbiano il tempo e le risorse per investire in questo processo, mentre le aziende più grandi e consolidate sentiranno probabilmente una maggiore pressione per soddisfare gli standard di best practice dei test di fumo giornalieri.
Automazione del test di fumo vs. test di fumo manuale
Non c’è un modo giusto o sbagliato di eseguire lo smoke test, e ciò che funziona bene per un team può non funzionare bene per un altro.
Prima di eseguire uno smoke test, i team di software devono considerare gli obiettivi, le risorse e i piani di progetto a lungo termine. Il processo di verifica manuale del software può essere istruttivo per i giovani professionisti alle prime armi con la QA, ma per i team più consolidati è raro che ci sia un vantaggio nell’optare per i test manuali rispetto a quelli automatizzati.
Prove di fumo ibride
La terza opzione per i team che non sanno decidere tra smoke test e sanity test manuali e automatizzati è quella di optare per un testing ibrido.
I test ibridi combinano aspetti di smoke test manuali e automatizzati per aumentare le prestazioni e l’efficienza complessiva dei test. Quando si utilizza il metodo di prova del fumo ibrido, la maggior parte della prova può essere automatizzata, ma alcuni aspetti possono essere eseguiti manualmente. Questo permette ai team di concentrarsi maggiormente sugli aspetti della build che ne hanno bisogno, mantenendo bassi i tempi complessivi dello smoke test.
Tipi di test del fumo
I test del fumo possono essere suddivisi in due categorie: test del fumo formali e informali. Il fatto che lo smoke testing sia formale o informale dipende dal fatto che sia istigato formalmente dal responsabile QA o che sia semplicemente eseguito come parte dello sviluppo.
1. Prove di fumo formali
In uno smoke test formale, gli sviluppatori del software passano la build del software all’ingegnere QA o al responsabile QA per il test formale. Il responsabile QA assegna ai tester il compito di eseguire lo smoke test e chiede loro di eseguirlo utilizzando strumenti di smoke test come l’automazione o manualmente.
Quando si eseguono gli smoke test formali, i tester QA compilano i risultati del test in un rapporto formale che può essere analizzato dal responsabile QA.
Gli smoke test formali vengono eseguiti in punti importanti del processo di creazione del software, ad esempio prima di eseguire il test funzionale di nuove funzionalità.
2. Prove di fumo informali
I test di fumo informali sono test di fumo eseguiti su una build del software durante il processo di sviluppo o di AQ che non sono formalmente riportati o richiesti dal responsabile dell’AQ.
Gli smoke test quotidiani, che molti team di software eseguono per protocollo, sono un esempio di smoke test informali.
I test informali possono essere eseguiti ad hoc ogni volta che gli ingegneri QA lo ritengono utile.
Cosa vi serve per iniziare il test del fumo
Prima di iniziare il test del fumo nel test del software, è importante raccogliere tutti gli elementi necessari, compresi i file di dati e le competenze all’interno della propria organizzazione.
Il materiale necessario per eseguire lo smoke test dipenderà dal fatto che si intenda eseguire uno smoke test automatizzato o manuale e dagli strumenti di test utilizzati per semplificare il processo.
1. Un elenco di casi di test
Prima di iniziare uno smoke test, è necessario un elenco completo di tutti i casi di test che si desidera valutare.
I casi di test sono singoli insiemi di azioni che si desidera testare per valutare se il risultato dell’esecuzione di tali azioni è in linea con i risultati attesi.
Ad esempio, un caso di test molto semplice potrebbe essere che il software carichi la dashboard principale all’apertura dell’applicazione.
2. File di prova
Prima di eseguire lo smoke test, è necessario raccogliere tutti i file di test su cui si intende eseguire lo smoke test. È possibile utilizzare la riga di comando del software di prova del fumo che si sta utilizzando per raccogliere tutti i file in un unico posto.
Le modalità di raccolta dei file e la loro archiviazione dipendono dal modo in cui opera la vostra organizzazione.
3. Strumenti per il test del fumo
È possibile eseguire un test del fumo di base senza utilizzare alcuno strumento particolare, ma l’uso di strumenti per il test del fumo può aiutare a migliorare l’accuratezza dei risultati e a velocizzare il processo di test del fumo.
Ricercate prima gli strumenti di smoke test online e scegliete il software che automatizza o ottimizza il vostro smoke test in relazione alle vostre esigenze e al vostro budget.
Il processo di prova del fumo
Il modo migliore per eseguire uno smoke test varia da un’organizzazione all’altra e, se siete alle prime armi, potreste voler sperimentare diversi approcci per vedere cosa funziona meglio per il vostro team.
Di seguito è riportato un esempio di come eseguire uno smoke test di base per valutare le funzioni principali del software.
Passo 1: scegliere i casi di test
Il primo passo per eseguire uno smoke test è scegliere i casi di test su cui eseguirlo.
Quando si progetta uno smoke test, gli ingegneri del software e gli ingegneri QA devono considerare quali sono le funzioni più critiche del software e come testare al meglio queste caratteristiche. Non perdete tempo a testare caratteristiche che non sono importanti per il funzionamento del software.
Fase 2: Creazione di test di fumo
Una volta identificati i casi di test da utilizzare, si possono scrivere gli script di test per verificarli. Utilizzare un singolo script per gli smoke test per aumentare la flessibilità durante l’esecuzione del test.
Se si sceglie di automatizzare gli smoke test, non sarà più necessario scrivere script di test manuali ogni volta che si vuole eseguire uno smoke test. Per automatizzare script di questo tipo si possono utilizzare suite di automazione del test del software.
Passo 3: Eseguire gli smoke test
Una volta creati i vostri script di smoke test, potete eseguirli sulla vostra build per cercare bug e altri errori importanti. L’operazione non dovrebbe richiedere più di 30-60 minuti e, una volta terminati i test, è possibile valutare i risultati per determinare i passi successivi.
Fase 4: correzione di eventuali bug
Lo scopo dello smoke testing nello sviluppo di un software è quello di identificare eventuali bug o problemi importanti prima che venga avviato il test QA completo.
Se gli smoke test rivelano problemi significativi che compromettono le funzioni principali della build del software, è importante inviare il software e la vostra analisi al team di sviluppo per la correzione dei bug prima di continuare con la QA.
Le migliori pratiche per il test del fumo
Lo smoke testing è un metodo affidabile per identificare i principali bug nelle build del software in tutte le fasi di sviluppo. Seguire le migliori pratiche del settore è il modo migliore per garantire che i test sul fumo siano efficienti, accurati e produttivi.
1. Eseguire spesso gli smoke test
Non è sempre possibile eseguire i test di fumo ogni giorno, soprattutto se si eseguono test manuali piuttosto che test di fumo automatizzati.
Eseguite gli smoke test il più spesso possibile e ogni volta che implementate modifiche al vostro software. Una volta in grado di farlo, l’esecuzione di test del fumo giornalieri è considerata la prassi migliore.
2. Non saltare mai le fasi di test
Se avete fretta, potreste essere tentati di saltare alcune fasi di test per avanzare più rapidamente nel processo di sviluppo, ma sia il test di fumo che quello di regressione sono essenziali per mantenere il vostro sviluppo in linea con i tempi.
Testate sempre le vostre build con smoke e sanity test prima di passare alla fase successiva.
3. Testare ogni modifica
Non esiste un’unica applicazione per il test del fumo. Si possono e si devono usare gli smoke test per verificare ogni modifica apportata a una build del software e per testare il software tra le diverse fasi di sviluppo.
Gli smooth test dovrebbero essere il precursore dei test di integrazione, delle prestazioni e dei test funzionali.
4. Tracciare i risultati dei test
È prassi normale verificare i risultati di una prova di fumo formale, ma anche quando si effettuano prove di fumo informali i tecnici dovrebbero tenere traccia dei risultati.
In questo modo è più facile trasmettere i risultati agli sviluppatori e tenere traccia delle funzionalità che non superano i test.
5. Eseguire due volte il test del fumo
Eseguire lo smoke test due volte può sembrare un’esagerazione, ma se si vuole davvero individuare ogni bug durante il test, è meglio eseguirlo due volte.
In questo modo si garantisce che lo smoke test abbia tutte le possibilità di individuare i principali bug e problemi che potrebbero causare ulteriori problemi se non risolti immediatamente.
6. Scegliere il giusto tipo di prova del fumo
L’utilizzo di smoke test manuali o automatizzati dipende dalle dimensioni e dalle esigenze del team. Assicuratevi di scegliere il tipo di test più adatto al vostro progetto per ottimizzare l’efficienza senza compromettere l’accuratezza dei risultati.
Tipi di risultati di una prova del fumo
Quando si esegue un test di fumo, ci si può aspettare che il test di fumo produca uno dei due risultati distinti per ogni caso di test valutato: superamento o fallimento.
1. Passare
Un risultato possibile per ogni caso di test eseguito è che lo smoke test sia superato. Ciò significa che il risultato effettivo del test è in linea con il risultato atteso del test.
Ad esempio, se si esegue un test su ciò che accade quando si carica l’applicazione e questa viene caricata nella schermata che dovrebbe aprirsi al momento del caricamento, lo script dovrebbe visualizzare questo risultato come un passaggio.
2. Bocciatura
Se lo smoke test fallisce per un particolare caso di test, di solito significa che l’esito effettivo del test non si è allineato con l’esito atteso del test.
Ad esempio, se si sta testando un’applicazione per lo shopping e uno dei casi di test eseguiti verifica la funzionalità di aggiunta di articoli al carrello, il test fallisce se gli articoli aggiunti al carrello non appaiono nel carrello come ci si aspetta.
Esempi di casi di test per lo smoke test
Quando cercate di pensare a quali casi di test includere nel vostro smoke test, scrivete un elenco delle funzionalità principali del vostro software e considerate quali di esse sono essenziali per l’esecuzione e l’utilizzo del software.
Alcuni esempi di casi di test per lo smoke test possono aiutare a determinare quali casi di test utilizzare nel proprio smoke test.
1. Convalida delle credenziali di accesso
Se la vostra applicazione richiede che gli utenti effettuino il login, potreste voler creare un caso di test che verifichi se il processo di convalida delle credenziali di accesso funziona come dovrebbe.
A tal fine, è necessario creare uno script che automatizzi le operazioni di accesso, esecuzione del test e verifica dei risultati. Se il software si collega come previsto, questo caso di smoke test viene superato.
2. Creare un nuovo documento
Si potrebbe creare un caso di test per valutare se il software consente agli utenti di creare correttamente un nuovo documento. Create uno script che automatizzi la creazione, la denominazione e il salvataggio dei documenti nel vostro software ed eseguitelo.
Qualsiasi problema di rilievo che impedisca questo processo significherebbe che il test del fumo è fallito.
3. Disconnessione
Se l’applicazione dispone di una funzionalità di accesso, dovrebbe anche disporre di una funzionalità di uscita. Eseguire uno script per verificare cosa succede quando gli utenti fanno clic su “log out”.
Se l’utente non riesce a disconnettersi quando fa clic su questo pulsante, lo smoke test fallisce.
Tipi di errori e bug rilevati attraverso lo smoke test
Gli smooth test possono aiutarvi a identificare gli errori e i bug che disturbano la funzionalità principale del vostro software. A seconda del momento in cui si esegue lo smoke test e di ciò che si vuole controllare, è possibile trovare diversi tipi di errori e bug attraverso lo smoke test.
1. Errori funzionali
Gli errori funzionali sono bug che si verificano quando il software non si comporta come ci si aspetterebbe o quando non funziona correttamente.
La maggior parte dei casi di test che verranno controllati con gli smoke test sono test funzionali, quindi è più probabile che gli errori funzionali vengano identificati da smoke test come questo.
2. Errori logici
Gli errori logici rappresentano difetti nella logica del codice e possono anche causare un comportamento errato del software. Gli errori logici possono far sì che le azioni producano output errati o addirittura causare crash del software.
Un errore logico comune è il loop infinito, che fa sì che il software ripeta sempre le stesse azioni fino a bloccarsi.
3. Bug di integrazione
Se si esegue uno smoke test a livello di integrazione, si possono trovare bug di integrazione durante il test. Si verificano quando due gruppi di codice separati non si integrano perfettamente tra loro. Possono essere causati da un’ampia gamma di problemi di compatibilità nel codice e possono richiedere soluzioni complesse per essere riparati.
Metriche comuni per lo smoke test
Durante l’esecuzione di uno smoke test, i team QA possono utilizzare delle metriche per valutare i risultati di uno smoke test e giudicare se il test è stato superato o meno.
Oltre a considerare se il software è in grado di svolgere correttamente le sue funzioni principali, le metriche degli smoke test possono valutare, tra le altre cose, la velocità e i tempi di caricamento del software.
1. Velocità del software
Gli smooth test possono essere utilizzati per verificare che la velocità e i tempi di caricamento del software soddisfino determinati criteri delineati nei singoli casi di test.
Ad esempio, se si sta testando il comportamento del software quando si carica l’applicazione e questa si carica come previsto, ma impiega due minuti per avviarsi, si può contrassegnare questo risultato come un fallimento, perché non rispetta il tempo di caricamento previsto.
2. Affidabilità
Eseguire due volte lo smoke test può anche aiutare a verificare l’affidabilità del software. Se alcuni casi di test passano una volta ma falliscono una volta, ciò indica che qualche errore nel codice sta causando errori che potrebbero non verificarsi ogni volta che il software viene utilizzato, ma che possono comunque causare seri problemi agli utenti.
I migliori strumenti gratuiti per il test del fumo
Gli strumenti per gli smoke test possono aiutarvi a eseguire gli smoke test in modo più efficiente e rapido, per aiutarvi a ottenere il massimo dai vostri smoke test.
Di seguito sono riportati alcuni dei migliori strumenti per il test del fumo disponibili a costo zero.
5 migliori strumenti gratuiti per il test del fumo
1. ZAPTEST edizione gratuita
ZAPTEST è uno strumento gratuito che consente agli utenti di automatizzare i test del software e la RPA senza pagare un centesimo.
È possibile utilizzare ZAPTEST FREE edition per eseguire semplici test di fumo su più piattaforme, tra cui mobile, web, API e LOAD.
Se volete provare gli smoke test automatizzati, l’edizione gratuita di ZAPTEST può aiutarvi a vedere in prima persona i vantaggi dell’automazione. È facile da usare anche per chi non ha un background tecnico, perché ha un’interfaccia senza codici e sfrutta una tecnologia di Computer Vision all’avanguardia.
Soprattutto, ZAPTEST FREE è ben…. gratis per sempre! Al contrario, molti strumenti di smoke testing e di automazione del software in generale prevedono un periodo di prova iniziale, dopo il quale si è costretti a pagare un abbonamento.
2. Il selenio
Selenium è uno strumento gratuito e open-source che può essere utilizzato per eseguire diversi tipi di test sul software, tra cui test di fumo e di regressione. Funziona con molti linguaggi di programmazione diversi ed è particolarmente indicato per testare le applicazioni web.
3. Appium
Se si desidera eseguire smoke e sanity test sulle applicazioni mobili, Appium è una scelta migliore di Selenium. Appium è facile da installare e da usare e può essere utilizzato per eseguire semplici test di fumo su applicazioni sviluppate sia per iOS che per Android.
4. Testlink
Testlink è uno strumento di gestione gratuito e basato sul web che consente agli utenti di redigere piani e casi di test all’interno di un unico quadro strutturato. Testlink può aiutarvi a pianificare i vostri test di fumo e a delineare le vostre aspettative e metriche prima di iniziare i test di fumo.
5. Lupo QA
QA Wolf è uno strumento di test end-to-end gratuito che consente agli utenti di creare uno smoke test QA automatizzato insieme ad altri test funzionali. QA Wolf è utilizzabile anche da persone senza competenze tecniche o di codifica, il che significa che è un’ottima introduzione all’automazione dei test per la maggior parte dei team QA.
I migliori strumenti di smoke testing per le aziende
Se siete disposti a investire un po’ di denaro negli strumenti di smoke testing, potete acquistare strumenti aziendali con funzionalità di smoke testing più estese e risultati più approfonditi.
Qui di seguito sono elencati cinque dei migliori strumenti di automazione degli smoke test aziendali presenti sul mercato.
5 migliori strumenti di automazione dei test di fumo a livello aziendale
1. ZAPTEST edizione ENTERPRISE
ZAPTEST ENTERPRISE è una suite di test software e RPA in grado di automatizzare completamente qualsiasi tipo di test, compresi i test di fumo.
La versione gratuita è adatta alle piccole aziende che vogliono conoscere le potenzialità di ZAPTEST, ma se cercate una soluzione a pagamento facile da usare e adatta a testare qualsiasi software o app, su qualsiasi piattaforma, browser o dispositivo, E con l’implementazione di 1SCRIPT in tutti questi ambiti, allora ZAPTEST ENTERPRISE è un ottimo punto di partenza.
2. SoapUI
SoapUI è uno strumento di testing aziendale che semplifica la gestione e l’esecuzione di test QA end-to-end sul software. È uno strumento relativamente semplice da installare, ma ha i suoi limiti, che si riflettono nel prezzo.
3. Testimonianza
Testim è uno strumento di smoke test a pagamento che utilizza l’intelligenza artificiale per creare test senza codice che valutano la funzionalità del software. L’API Javascript di Testim può essere usata per rifattorizzare, personalizzare ed eseguire il debug dei test.
4. Robot T-Plan
T-Plan Robot è uno strumento di test aziendale che gli ingegneri QA possono utilizzare per automatizzare le azioni utente scriptate e la Robotic Process Automation (RPA) su Windows, Mac, Linux e Mobile. È possibile utilizzare T-Plan Robot per automatizzare gli smoke test su una serie di applicazioni e creare script automatizzati che possono essere eseguiti in momenti chiave dello sviluppo.
5. QA della foresta pluviale
Rainforest QA è uno strumento di test di fumo per la QA che consente agli utenti di gestire e implementare test di fumo sia manuali che automatizzati da un’unica dashboard. Questo lo rende ideale per le organizzazioni interessate a provare l’approccio ibrido ed è adatto a una vasta gamma di piattaforme, tra cui applicazioni basate su cloud, Windows e Mac.
Quando utilizzare strumenti di smoke testing aziendali o gratuiti?
Gli strumenti di smoke testing aziendali e gratuiti possono soddisfare esigenze simili in modi leggermente diversi. Di solito, gli strumenti gratuiti rappresentano un’eccellente porta d’ingresso per le organizzazioni che si trovano a proprio agio con gli smoke test manuali, ma che desiderano esplorare gli smoke test automatizzati in modo più approfondito.
Inoltre, potrebbero essere più adatti a start-up molto piccole, dove i soldi per gli strumenti a pagamento non ci sono ancora.
Gli strumenti di test aziendali diventano di solito un’opzione più praticabile con l’espansione delle aziende. Offrono una serie di vantaggi rispetto agli strumenti gratuiti, offrendo di solito una maggiore flessibilità, un supporto migliore e interfacce più semplici da usare, che rendono facile anche per i professionisti non tecnici eseguire test di fumo automatizzati.
Lista di controllo per il test dei fumi
Prima di iniziare uno smoke test, il team QA del software può utilizzare questa lista di controllo per assicurarsi di coprire tutte le fasi del processo di smoke test.
Identificare gli strumenti per lo smoke testing che si intende utilizzare
Scegliere se creare un test manuale o automatico.
Selezionare i casi di test che si desidera testare.
Creare script di test per ogni caso
Identificare i requisiti di “superamento” per ogni caso di test.
Eseguire i test di fumo
Analizzare i risultati
Feedback allo sviluppo e all’AQ
Conclusione
Lo smoke testing è una fase essenziale dello sviluppo del software e della QA. Garantisce che un prodotto sia funzionale prima di effettuare ulteriori test, evitando così che i team QA sprechino tempo e risorse per effettuare test funzionali intensivi su build non ancora stabili.
Lo smoke testing è un processo relativamente rapido e semplice che dovrebbe essere eseguito dai team software il più spesso possibile.
Poiché le aziende si sforzano di raggiungere un’efficienza ottimale attraverso l’uso di strumenti avanzati che supportano l’iperautomazione, la RPA e altre tecnologie correlate, gli smoke test automatizzati stanno diventando sempre più comuni nelle organizzazioni di tutte le dimensioni.
Sia i test manuali che quelli automatizzati hanno ancora un posto negli ambienti di QA contemporanei, ma con l’aumento dei test automatizzati non c’è dubbio che diventeranno la norma.
FAQ e risorse
Quali sono i migliori corsi sull’automazione dei test di fumo?
Se volete saperne di più sull’automazione dei test di fumo, alcuni esempi di corsi online che potreste seguire sono:
Corsi di prova del fumo di Coursera
Corsi Udemy sul test del fumo
Corsi Skillshare per il test del fumo
Uno dei migliori corsi per principianti è il Certified Tester ISTQB Foundation Level (CTFL), disponibile su Udemy.
Ognuna di queste risorse online offre corsi di test del fumo per studenti di diverse abilità e può essere possibile seguire corsi sia gratuiti che a pagamento in questi siti.
Se volete ottenere la certificazione, cercate i corsi accreditati dal CAST.
Quali sono i migliori libri sui test del fumo?
Se volete saperne di più sui test di fumo, potete leggere i libri sui test del software e sui test di fumo per capire gli approcci e i vantaggi dei test di fumo. Tra i migliori libri sulla prova del fumo si possono citare i seguenti:
L’arte di testare il software, di Glenford J. Myers, Tom Badgett e Corey Sandler
Test del software, di Ron Patton
Automazione del test del software, di Mark Fewster e Dorothy Graham
Tuttavia, ci sono molti libri fantastici sul testing del software che possono aiutarvi a capire meglio il come, il perché e il cosa del testing.
Scegliete un libro che vi appassioni e che approfondisca gli argomenti che più vi interessano.
Quali sono le 5 principali domande di intervista sul test del fumo?
Se state pensando di sostenere un colloquio per una posizione che potrebbe comportare l’esecuzione di test del fumo, preparatevi al colloquio preparando le vostre risposte alle domande più comuni, ad esempio:
Quando è il momento giusto per effettuare la prova del fumo?
Come si decide quali casi di test utilizzare in uno smoke test?
In cosa differiscono gli smoke test da altri tipi di test, come il sanity test?
Quante conoscenze di codifica sono necessarie per condurre gli smoke test?
Cosa fareste se la prova del fumo fallisse?
Quali sono i migliori tutorial di YouTube sul test del fumo?
Se siete amanti dell’apprendimento visivo, potete utilizzare questi video di YouTube per saperne di più sul test del fumo:
Tutorial per il test del fumo di Edureka
Cos’è il test del fumo?
Smoke test vs. sanity test
Come mantenere i test del fumo?
La manutenzione degli smoke test consiste nel garantire che gli smoke test creati rimangano sani e rilevanti man mano che il progetto di creazione del software prosegue.
Eseguire quotidianamente gli smoke test e creare nuovi casi di test quando sono necessari.
Potete anche massimizzare i benefici dei vostri smoke test lavorando a stretto contatto con quegli sviluppatori i cui contributi non riescono a migliorare la qualità del loro codice.
Che cos’è lo smoke testing nell’ingegneria del software?
Lo smoke testing nell’ingegneria del software è chiamato anche test di verifica della build ed è un test semplice e veloce per garantire che la build di un software sia stabile.
Lo Smoke test viene utilizzato per verificare le funzionalità principali di una build e serve come test preliminare prima di effettuare ulteriori test QA.
Smoke test e sanity test
Smoke e sanity test sono entrambi tipi di test che prevedono la verifica rapida delle funzionalità principali di un software o di un prodotto.
Tuttavia, mentre lo smoke testing verifica se le funzionalità principali del software si sono comportate come previsto, il sanity testing viene solitamente utilizzato per verificare se le riparazioni dei bug hanno risolto i problemi identificati.
Lo smoke testing è un processo più formale e documentato che di solito viene eseguito prima che una build sia verificata come stabile, mentre il sanity testing è un tipo di test informale che può essere eseguito come parte del test di regressione su build relativamente stabili.
Smoke test vs. test di regressione
Smoke e regression test sono entrambi tipi di test che verificano se il software continua a funzionare correttamente dopo che sono state apportate nuove modifiche.
Tuttavia, lo smoke testing è un tipo di test relativamente veloce e poco approfondito che si limita a verificare le funzioni principali e a garantire la stabilità del software.
Il test di regressione è un test di livello più profondo che richiede molto più tempo e valuta la build in modo più dettagliato.
Smoke test vs. sanity test vs. test di regressione
Quando si confrontano gli smoke e sanity test con i test di regressione, è importante capire che tutti e tre questi tipi di test sono necessari per un buon sviluppo del software e per la QA.
Gli smooth test e i sanity test offrono un modo rapido per verificare se il software funziona normalmente, mentre i test di regressione offrono una visione più approfondita del funzionamento del prodotto.
I team di QA eseguono prima lo smoke test del software e poi, se il software supera questo controllo, possono eseguire il sanity test e successivamente il test di regressione.
L’automazione dei test di fumo tramite strumenti di test di fumo sta diventando sempre più comune, ma alcuni tipi di test, come i test di regressione, non possono ancora essere completamente automatizzati a causa della natura complessa del test.
Infine, se siete alla ricerca di strumenti per eseguire test su piattaforme Windows, iOS, Android, test UI, Linux e molto altro, scaricate ZAPTEST GRATIS!