Test automation: Definizione, cosa, quando e perchè automatizzare 

Test automation: Definizione, cosa, quando e perchè automatizzare 

L’automazione

Prima di iniziare con i test di automazione, capiamo prima cosa vuol dire il termine “automazione”. L’automazione è un processo tramite il quale possiamo automatizzare un processo manuale con l’uso della tecnologia. L’obiettivo è eliminare o ridurre lo sforzo umano e manuale. Ora vediamo come l’automazione aiuta nei test del software (test automation).

Il test di un software include la scrittura di casi di test una volta e quindi la loro esecuzione più e più volte, quando necessario.

L’esecuzione del test, se eseguita manualmente, è un’attività noiosa e che richiede molto tempo. I test di automazione aiutano a ridurre il tempo di esecuzione del test poiché gli script di test scritti una volta possono essere eseguiti automaticamente un numero qualsiasi di volte senza alcun intervento umano.

Che cos’è il test automation

Il test di automazione (in inglese test automation) è un tipo di test del software che prevede l’esecuzione di casi di test automatizzati utilizzando uno strumento di automazione.

Quindi, in pratica, automatizza il processo di test manuale. Il tester software scrive script di test e quindi esegue gli script di test su richiesta o pianificandoli per esecuzioni periodiche. Ciò riduce il tempo di test complessivo, aiutando così a rilasciare più rapidamente i prodotti.

Test automation: Definizione, cosa, quando e perchè automatizzare 

Cosa automatizzare

Ora che sappiamo cosa sono esattamente i test di automazione, controlliamo quali casi di test automatizzare o quali sono i candidati ideali per l’automazione.

  1. Casi di test che testano la funzionalità critica dell’applicazione: ad esempio per un’applicazione di e-commerce, la funzionalità critica sarebbe la scoperta del prodotto tramite la ricerca e le pagine delle categorie, l’aggiunta al carrello e quindi l’acquisto della funzionalità. Quindi, questi casi di test dovrebbero essere scelti per primi. I casi di test per l’aggiunta alla lista dei desideri e le notifiche, ecc. Dovrebbero avere una priorità inferiore e quindi scelti di conseguenza per l’automazione.
  2. Scenari di test che richiedono l’esecuzione di test ripetuti con un set di dati di grandi dimensioni: esistono molti casi di test o flussi di applicazioni che richiedono l’esecuzione di un’azione ripetutamente. Questi casi di test sono anche candidati ideali per l’automazione poiché, una volta automatizzati, una notevole quantità di lavoro di test viene ridotta.
    Prendiamo un esempio di una funzione di ricerca di un’applicazione. Se possiamo automatizzare il flusso di ricerca con un termine di ricerca e quindi verificare i risultati della ricerca. Quindi lo stesso script può essere eseguito più e più volte con un diverso tipo di termini di ricerca come: parola singola, multi-parola, alfanumerico, con caratteri speciali, con caratteri in lingua straniera, ecc.
  3. Test che richiedono tempo: anche i flussi di lavoro che richiedono una notevole quantità di tempo per l’esecuzione e la configurazione dovrebbero essere candidati ideali per l’automazione.
    Riprendendo l’esempio dell’applicazione di e-commerce, se alcuni casi di test richiedono la configurazione di più prodotti e quindi l’esecuzione di alcune operazioni su tali prodotti. Tali casi di test, quando automatizzati, non solo riducono il tempo di esecuzione del test, ma liberano anche i tester manuali dal compito ridondante e li aiutano a concentrarsi su altre attività di test esplorativi.
  4. Casi di test che devono essere eseguiti in ambiente parallelo o distribuito – Alcuni casi di test che richiedono l’esecuzione di operazioni simultanee sull’applicazione, ad esempio in caso di test delle prestazioni o scenari in cui è necessario controllare il comportamento dell’applicazione all’accesso simultaneo alle risorse. In questi casi, il test manuale non è fattibile o richiederebbe molte più risorse per testare gli scenari particolari. Questi script automatizzati aiutano effettuando richieste simultanee e raccogliendo i risultati in un unico posto.

Cosa non automatizzare

È anche importante capire quale tipo di casi di test non può o piuttosto non dovrebbe essere automatizzato.

  1. Casi di test relativi all’interfaccia utente: i casi di test relativi all’interfaccia utente grafica dovrebbero essere lasciati al test manuale o alla convalida umana. Questo perché anche con il minimo cambiamento nell’interfaccia utente, i casi di test fallirebbero ed è anche molto difficile creare casi di test dell’interfaccia utente affidabili su più dispositivi e risoluzioni dello schermo.
  2. Casi di test relativi all’usabilità – Piuttosto che “non dovrebbe”, è il caso di “non può” automatizzare. Casi di test relativi all’usabilità, facilità d’uso dell’applicazione da parte di diversi gruppi di utenti che, con la tecnologia attuale, non è possibile automatizzare.
  3. Funzionalità che vengono utilizzate raramente e richiedono tempo per lo scripting: è bene automatizzare gli scenari complessi, ma investire i propri sforzi in scenari che sarebbero usati raramente non fornisce un buon ritorno sull’investimento.
  4. Test esplorativi: i test esplorativi richiedono l’apprendimento immediato dell’applicazione e il test simultaneo. Pertanto, non è possibile automatizzare gli scenari di test esplorativi.

Quando dovremmo automatizzare

Una volta definite tutte le funzionalità della suite di automazione durante la pianificazione del test, possiamo iniziare l’ attività di creazione del framework di automazione in parallelo con il team di sviluppo. Ma lo scripting dei casi di test dovrebbe essere fatto al momento giusto.
Per una migliore automazione del ROI e per evitare qualsiasi rielaborazione, lo scripting dei casi di test dovrebbe essere avviato quando l’applicazione è stabile e non sono previste modifiche frequenti nell’applicazione.

Perché il test automation

Di seguito sono riportati alcuni dei vantaggi o dei benefici dei test di automazione:

  1. Il Test automation riduce il tempo complessivo di esecuzione del test. Poiché l’esecuzione automatica dei test è più veloce dell’esecuzione manuale dei test.
  2. Esso riduce i requisiti di costo e di risorse del progetto, come lo script creato una volta può essere fatto per eseguire qualsiasi numero di volte finché non v’è alcun cambiamento nella domanda.
  3. Aiuta a lavorare con un ampio set di input che non è fattibile con i test manuali.
  4. Aiuta a creare un ambiente di integrazione continua in cui, dopo ogni inserimento del codice, viene eseguita l’esecuzione automatica della suite di test con la nuova build. Utilizzando strumenti CICD come Jenkins, possiamo creare lavori che eseguono i casi di test dopo la distribuzione di una build e inviano i risultati del test alle parti interessate.

Test automation: Definizione, cosa, quando e perchè automatizzare 

Quando non automatizzare

Vediamo alcuni scenari, in cui non è consigliabile fare test automatici insieme ad alcuni svantaggi dell’automazione.

  1. Mancanza di esperienza nello strumento di automazione: La mancanza di esperienza nello strumento di automazione e \ o nel linguaggio di programmazione richiesto per creare script robusti è uno dei motivi principali che può portare a non utilizzare lo strumento al massimo delle sue potenzialità. Fattori come questi portano al fallimento dei test di automazione.
  2. Casi di test scelti in modo errato: il successo dei test di automazione dipende fortemente dai casi di test scelti per l’automazione. Test scelti in modo errato portano allo spreco di risorse e tempo investito nell’automazione.
  3. Applicazioni con modifiche frequenti: la scelta dell’automazione dei test per un’applicazione con modifiche frequenti richiede una manutenzione costante degli script di test, che a volte potrebbe non fornire il ROI desiderato.
  4. Script di test scritti in modo inefficiente: script di test con convalide limitate o inadeguate possono portare a risultati di test falsi positivi. Questi risultati falsi positivi nascondono i difetti sottostanti che avrebbero potuto essere facilmente rilevati se convalidati manualmente o inseriti in uno script in modo migliore.

Miti sui test automatizzati

È ora di sfatare alcuni miti sull’automazione dei test:

  1. È possibile l’automazione al 100%: Escludendo alcune applicazioni molto specifiche, l’automazione al 100% non è possibile. Casi di test esplorativi, casi di test di usabilità sono alcuni degli esempi di casi di test che non possono essere automatizzati.
  2. L’automazione mangerà i lavori di test manuali: Anche se è vero che con l’avvento e l’ascesa dei test di automazione e di strumenti diversi, c’è un passaggio al requisito dei tester full-stack o con doppio ruolo, che possono lavorare sia sui test manuali che su quelli di automazione . Ma l’automazione non sarà mai in grado di eliminare completamente la necessità di test manuali.
  3. Lo sviluppatore rende i tester di automazione migliori: Anche se uno sviluppatore potrebbe avere un leggero vantaggio nella parte di codifica, ma un tester sarà comunque in grado di pensare da una prospettiva di test e provare a creare script di test più robusti che avranno la verifica multi-gate.
  4. L’automazione è costosa: se eseguita correttamente, l’automazione può ridurre lo sforzo complessivo di test e il fabbisogno di risorse. Risparmiando così il costo del progetto nel lungo periodo.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *