10 Febbraio, 2016 | Di Wellnet

Cos’è il Testing Automatico e perché dovrebbe interessarti

Cos’è il Testing Automatico e perché dovrebbe interessarti

Un passo indietro: introduzione alle software regression

Il problema è il seguente: ogni volta che uno sviluppatore cambia o apporta una modifica al codice, c’è sempre una piccola possibilità che anche un piccolo ritocco possa avere un impatto inaspettato sulle performance generali o le funzionalità del software su cui stai lavorando.

Il Testing è un modo per assicurarsi che un software non presenti anomalie e che le funzionalità che ci interessano performino come previsto. L’obiettivo principale è quello di intercettare bug (magari introdotti accidentalmente in una nuova versione) e di assicurarsi che bug già trovati e risolti rimangano tali, e inoltre che non vengano a crearsi delle regressioni (i componenti che in precedenza risultavano funzionanti devono continuare a farlo, possibilmente nello stesso modo con le stesse performance, se non addirittura migliori).

Step numero uno: perché scegliere il testing automatico?

Finora abbiamo fatto un'overview che ci ha permesso di capire che il testing può essere una parte molto importante della tua attività di sviluppo, specialmente se si parla di feature particolarmente critiche del tuo software. Nel caso tu stia lavorando su un piccolo progetto potresti essere tentato dal testare ogni cosa manualmente, ma ti consiglio di non farlo: in molti casi rieseguire un set di test ogni volta che si effettua un update può diventare un’operazione complessa e che richiede molto tempo.  In questo tipo di situazioni c’è d’aiuto il testing automatico: si tratta di un modo per svolgere una grossa parte degli effort di testing ma usando il minimo set di script possibile. Il processo usato per implementare l’automazione va sotto il nome di “framework di test automation”e più in là in questo articolo ne introdurremo uno in particolare.

Step numero due: cosa è il caso di automatizzare?

testing automatico

Mike Cohn- Piramide della test automation.

La piramide della test automation qua sopra illustra 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. Di seguito 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”.

Step numero tre: scegliere gli strumenti giusti

Come abbiamo detto 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. Come procediamo?

Useremo Selenium: 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:

testing automatico

Cucumber è 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. 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.

Siamo in grado di fornirti servizi di analisi e testing al fine di migliorare la stabilità, le performance e l’affidabilità del tuo software. Contattaci per maggiori informazioni!

Wellnet
Wellnet

Wellnet è una nuova realtà nel panorama delle agenzie digitali italiane: 70 expertise complementari e integrate, con sedi a Milano, Torino Cuneo e Modena, frutto della fusione di tre realtà di successo preesistenti.