Livelli e tool della piramide del test automation

Livelli e tool della piramide del test automation

Che cos’è il testing automatico

Il testing automatico (o test automation) è ancora poco diffuso tra le aziende per vari motivi ma la principale ragione è sicuramente riconducibile al fatto che lo sforzo di progettazione, scrittura e manutenzione di una suite di test automatici è decisamente più oneroso del corrispettivo necessario per i test manuali.
A differenza dei test manuali, lo sviluppo di test automatici, infatti, è facilmente paragonabile a quello di un software. Prima di scrivere un test automatico bisogna conoscere la struttura interna del software da testare, i suoi punti critici e molti dettagli implementativi. Onde evitare la creazione di test illeggibili e difficili da manutenere è necessario commentare i passaggi complessi e le funzioni utilizzate; bisogna mantenere degli standard e seguire delle linee guida come l’utilizzo di red test. Infine è necessario che il test sia parlante, che faccia capire al tester, in caso di errore, dove si sia riscontrato e quale potrebbe essere. Proprio per questi motivi gli sviluppatori di test automatici devono avere competenze molto più elevate rispetto a quelle necessarie per progettare ed eseguire test manuali.

D’altro canto, il motivo principale per cui si vuole costruire una suite di test automatici è sicuramente perchè si vuole eseguire dei test ripetutamente dopo ogni nuova release. Se un test deve essere eseguito una sola volta, lo sforzo per automatizzarlo potrebbe superare i benefici offerti.
Dal punto di vista puramente teorico l’introduzione dei test automatici nel ciclo di vita di un software è un passo obbligatorio per un’azienda perchè, a lungo termine, semplifica notevolmente tutto il testing; scontrandosi con la realtà economica però ci si rende conto che la costruzione di una suite di test automatici sia un lavoro, soprattutto inizialmente, dispendioso e complicato. Per scrivere test automatici solidi sono necessarie grandi conoscenze nel campo della programmazione, oltre a quelle riguardanti il testing; un’azienda potrebbe, quindi, fare fatica a rinunciare a del personale qualificato investibile in ambiti come la progettazione o lo sviluppo per assegnarlo ai test automatici.

La piramide del test automation

La piramide del test automation nella figura seguente mostra delle buone linee guida per determinare quali sono i test che richiedono automazione con la maggior priorità. I test unitari formano la base della nostra piramide e generalmente sono considerati come il punto di partenza. Un’altra componente importante riguarda il performance testing, attività con la quale il tester ha la possibilità di simulare centinaia o migliaia di utenti contemporaneamente: questa operazione è difficilmente replicabile manualmente. Nel paragrafo seguente approfondiremo quelli che nella piramide sono indicati come GUI test (Graphical User Interface test) che hanno lo scopo di verificare il corretto funzionamento dell’interfaccia grafica. Questo è possibile usando un tool in grado di simulare il comportamento umano: come la piramide suggerisce, questo tool va sotto il nome di Selenium.

Livelli e tool della piramide del test automation

Tool di test automation

Il processo usato per implementare l’automazione va sotto il nome di framework di test automation.
Come abbiamo detto nel paragrafo precedente, il nostro obiettivo è di assicurarci il corretto funzionamento dell’interfaccia grafica, e per farlo è necessario simulare (con una certa accuratezza) il comportamento di una persona che usa il vostro software, generalmente una web application. Ma come procediamo per raggiungere questo obiettivo?
Seguendo la piramide del test automation, useremo innanzitutto Selenium che si tratta di uno strato intermedio tra il nostro set di istruzioni ed il browser in cui intendiamo testare la nostra applicazione.

Quando parliamo di GUI testing, viene quindi a delinearsi la seguente stack:

Cucumber –> Selenium –> Browser Web

Cucumber, invece, è uno strumento che ci permette di eseguire esempi scritti di determinati comportamenti utente come test di accettazione automatizzati. Gherkin è il linguaggio che usiamo per scrivere questi esempi (o script): si tratta di un linguaggio di alto livello simile all’inglese, non è necessario essere un programmatore per scrivere il Gherkin e una volta scritti i necessari script di testing vi ritrovate con un documento che funge anche da documentazione per la vostra applicazione. Quando esegui uno script scritto in Gherkin, Cucumber controlla Selenium in modo che faccia azioni specifiche all’interno di un browser web.

Il tipo di azioni eseguibili è quasi lo stesso di un agente umano, così che dato uno scenario ed esatte istruzioni Cucumber è in grado di stabilire quale dei test ha dato un risultato idoneo con quanto previsto dai test plan e dalle specifiche. In questo modo è possibile automatizzare il processo di testing ed eseguirlo ogni qual volta è necessario avere la certezza che lo sviluppo attuale della tua web application non abbia compromesso delle funzionalità che in precedenza non presentavano anomalie.

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 *