Test automation: Che cos’è e come automatizzare il testing manuale

Test automation: Che cos’è e come automatizzare il testing manuale

L’obiettivo di qualsiasi progetto di successo è quello di ridurre i costi e i tempi necessari per completare quanto richiesto, mantenendo alta la qualità del prodotto che si sta realizzando.

Il Testing copre un dominio enorme ma può essere suddiviso in due aree principali:

  1. Testing manuale
  2. Testing automatizzato

Entrambi offrono vantaggi e svantaggi, ma vale la pena conoscere la differenza che sussiste tra queste due aree e capire quando usare l’uno o l’altro per ottenere i risultati migliori. Il tipo di testing da eseguire dipende da vari fattori, tra i quali i requisiti di progetto, budget, scadenze, competenze.

  1. Nel testing manuale i casi di test sono eseguiti manualmente senza l’ausilio di strumenti o script. Si tratta di un testing molto flessibile con costi a breve termine contenuti. Il problema è che non sempre è possibile svolgere tutti i compiti manualmente. Può essere ripetitivo e noioso in alcuni casi. Come risultato, molti tester hanno difficoltà a rimanere impegnati in questo processo e gli errori possono verificarsi con più probabilità.
  2. Nel testing automatico si ricorre all’uso di tool, script e software. I casi di test vengono eseguiti in maniera rapida ed efficace. E’ possibile il riuso di test già esistenti, il che è un vantaggio quando bisogna fare test di regressione in quanto sono necessarie modifiche frequenti nel codice e le operazioni di regressione devono essere eseguite in modo tempestivo.

A causa dell’elevato numero di casi di test necessari per eseguire un testing efficace l’operazione di progettazione manuale dei casi di test può essere molto onerosa. Si ricorre quindi a delle tecniche di generazione automatica che possono ridurre drasticamente i costi e i tempi legati alla fase di test design. L’automazione offre la possibilità di svolgere efficacemente la fase di verifica e validazione del software, permettendo di eseguire i test in maniera più rapida e in modo facilmente ripetibile.
Il testing automatico può quindi favorire, se pianificato e progettato a dovere, diversi fattori come il riuso del progetto, affidabilità e riduzione degli errori a lungo termine.

Differenze tra Test manuale e Test automatico

Nel processo di automazione del testing si individuano tre aree di intervento:

  1. Generazione dei casi di test
  2. Preparazione ed esecuzione dei test
  3. Valutazione dell’esito e dell’efficacia dei casi di test

Test automation: Che cos'è e come automatizzare il testing manuale

Generazione dei casi di test

Diversi sono i modi attraverso cui è possibile generare automaticamente casi di test. In particolar modo si può partire dalla specifica dei requisiti, dall’analisi della documentazione di progetto, dall’analisi statica del codice sorgente oppure dall’osservazione di esecuzioni reali dell’applicazione. Per ottenere però un test efficace è necessario eliminare anche le eventuali ridondanze che si potrebbero presentare in un processo di automazione del testing.

Preparazione ed esecuzione dei test

Si tratta della parte più meccanica della testing automation. Il completo automatismo si può ottenere scrivendo il codice di test sotto forma di codice eseguibile. Per l’esecuzione dei casi di test vengono utilizzati degli appositi framework nati nell’ambito dell’eXtreme Programming per automatizzare il testing di unità, ma generalizzabili anche alle problematiche di testing black-box.

Valutazione dell’esito e dell’efficacia dei casi di test

Per poter valutare automaticamente l’esito di un caso di test, esso dovrebbe esser stato oggettivamente definito e dovrebbe esser disponibile un metodo per la sua valutazione.
In alcuni casi, l’esito di un test non ha bisogno di esser definito, oppure può esser definito automaticamente ricorrendo al Crash Testing (che consiste nel testare un software andando alla ricerca di eccezioni o errori a run-time che ne interrompano l’esecuzione) o al Regression Testing (che viene effettuato in seguito ad un intervento di manutenzione per verificare se la modifica effettuata su modulo software ha impattato il resto del sistema).

Pubblicato da Vito Lavecchia

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

Lascia un commento

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