Cos'è il test esplorativo?

App esplorativa a raggi X (XEA)

Cos'è il test esplorativo?

Test esplorativi è un tipo di test del software in cui i casi di test non vengono creati in anticipo ma i tester controllano il sistema al volo. Potrebbero annotare idee su cosa testare prima dell'esecuzione del test. Il focus dei test esplorativi è più sul test come attività di “pensiero”.

Il test esplorativo è ampiamente utilizzato nei modelli Agile e riguarda la scoperta, l'indagine e l'apprendimento. Sottolinea la libertà personale e la responsabilità del singolo tester.

Perché i test esplorativi?

Con il test scriptato, si progettano prima i casi di test e poi si procede con l'esecuzione del test. Al contrario, il test esplorativo è un processo simultaneo di progettazione ed esecuzione del test, il tutto svolto contemporaneamente.

L'esecuzione di test con script è solitamente un'attività non pensante in cui i tester eseguono le fasi del test e confrontano i risultati effettivi con quelli attesi. Tale attività di esecuzione dei test può essere automatizzata e non richiede molte abilità cognitive.

Test esplorativi

Sebbene la tendenza attuale nei test del software sia quella di spingere automazione, i test esplorativi rappresentano un nuovo modo di pensare. L'automazione ha i suoi limiti

Test esplorativi

App esplorativa a raggi X (XEA)
App esplorativa a raggi X (XEA)

Differenze tra test con script ed esplorativi

Test con script Test esplorativi
Diretto dai requisiti Diretto dai requisiti ed esplorato durante i test
Determinazione dei casi di test con largo anticipo Determinazione dei casi di test durante il test
Conferma del test con i requisiti Indagine sul sistema o sull'applicazione
Enfatizza la previsione e il processo decisionale Enfatizza l’adattabilità e l’apprendimento
Implica test confermati Coinvolge l'indagine
Riguarda il controllo dei test Riguarda il miglioramento della progettazione dei test
È come fare un discorso: leggi da una bozza Come fare una conversazione: è spontaneo
La sceneggiatura ha il controllo La mente del tester ha il controllo

Tecniche di test esplorativo

  • Non si tratta di test casuali ma di test ad hoc con lo scopo di individuare bug
  • È strutturato e rigoroso
  • È cognitivamente (pensando) strutturato rispetto alla struttura procedurale del test con script. Questa struttura deriva da Charter, time boxing ecc.
  • È altamente insegnabile e gestibile
  • Non è una tecnica ma è un approccio. Le azioni che eseguirai successivamente dipenderanno da ciò che stai facendo attualmente

Come eseguire i test esplorativi

Di seguito è riportato un processo passo dopo passo su come eseguire un test esplorativo, noto anche come gestione dei test basata sulla sessione (ciclo SBTM):

Passaggio 1) Creare una tassonomia dei bug (classificazione)

  • Classificare i tipi comuni di guasti riscontrati nei progetti passati
  • Analizzare l'analisi della causa principale dei problemi o dei guasti
  • Trova i rischi e sviluppa idee per testare l'applicazione.

Passaggio 2) Carta di prova

  • Test Charter dovrebbe suggerire
    1. cosa testare
    2. come può essere testato
    3. Cosa bisogna guardare
  • Le idee di test sono il punto di partenza dei test esplorativi
  • La carta dei test aiuta a determinare come l'utente finale potrebbe utilizzare il sistema

Passaggio 3) Tempo Box

  • Questo metodo prevede che una coppia di tester lavori insieme per non meno di 90 minuti
  • Non dovrebbero esserci interruzioni durante la sessione di 90 minuti
  • Il timebox può essere esteso o ridotto di 45 minuti
  • Questa sessione incoraggia i tester a reagire alla risposta del sistema e a prepararsi per il risultato corretto

Passo 4) Revvisualizza i risultati

  • Valutazione dei difetti
  • Imparare dai test
  • Analisi delle aree di copertura

Passaggio 5) Debriefing

  • Compilazione dei risultati di output
  • Confronta i risultati con la carta
  • Verificare se sono necessari ulteriori test

migliori pratiche Test esplorativi

Durante l'esecuzione esplorativa, è necessario fare quanto segue:

  • La missione dei test dovrebbe essere molto chiara
  • Prendi appunti su cosa deve essere testato, perché deve essere testato e sulla valutazione della qualità del prodotto
  • Monitoraggio delle domande e dei problemi sollevati durante i test esplorativi
  • Meglio accoppiare i tester per test efficaci
  • Più testiamo, più è probabile che si eseguano casi di test corretti per gli scenari richiesti

È molto importante prendere un documento e monitorare quanto segue

  • Copertura dei test: se abbiamo preso appunti sulla copertura dei casi di test e se abbiamo migliorato la qualità del software
  • Rischi – Quali rischi devono essere coperti e quali sono tutti quelli importanti?
  • Log di esecuzione del test – Registrazioni sull'esecuzione del test
  • Problemi/query: prendi appunti sulla domanda e sui problemi del sistema

Test esplorativi più intelligenti rilevano più errori in meno tempo.

Pro e contro dei test esplorativi

Vantaggi

  • Questo test è utile quando i documenti dei requisiti non sono disponibili o sono parzialmente disponibili
  • Implica un processo di indagine che aiuta a trovare più bug rispetto ai normali test-
  • Scopri bug che normalmente vengono ignorati da altre tecniche di test
  • Aiuta ad espandere l'immaginazione dei tester eseguendo sempre più casi di test, migliorando infine anche la produttività
  • Questo test approfondisce la parte più piccola di un'applicazione e copre tutti i requisiti
  • Questo test copre tutti i tipi di test e copre vari scenari e casi
  • Incoraggia la creatività e l'intuizione
  • Generazione di nuove idee durante l'esecuzione dei test
  • Svantaggi

    • Questo test dipende esclusivamente dalle capacità del tester
    • Limitato dalla conoscenza del dominio del tester
    • Non adatto per tempi di esecuzione lunghi

    Sfide dei test esplorativi

    Ci sono molte sfide legate ai test esplorativi e quelle sono spiegate di seguito:

    • Imparare a utilizzare l'applicazione o il sistema software è una sfida
    • La replica del fallimento è difficile
    • Determinare se è necessario utilizzare gli strumenti può essere difficile
    • Determinare i migliori casi di test da eseguire può essere difficile
    • La segnalazione dei risultati del test è una sfida in quanto il rapporto non contiene script o casi pianificati da confrontare con il risultato o l'esito effettivo
    • La documentazione di tutti gli eventi durante l'esecuzione è difficile da registrare
    • I test esplorativi non prevedono casi di test definiti da eseguire, il che rende difficile decidere quando interromperli.

    Quando utilizzare i test esplorativi?

    I test esplorativi possono essere ampiamente utilizzati quando

    • Il team di test dispone di tester esperti
    • È necessaria un'iterazione anticipata
    • C'è un'applicazione critica
    • Nuovi tester sono entrati nel team

    Conclusione

    Nell'ingegneria del software, i test esplorativi vengono eseguiti per superare i limiti dei test con script. Aiuta a migliorare Test Case suite. Enfatizza l’apprendimento e l’adattabilità.