I test funzionali di un software sono costituiti da un procedimento che fa parte del ciclo di vita del software e in particolare delle procedure di QA (Quality Assurance). Essi hanno l’obiettivo di valutare se il comportamento del software rispetta i requisiti attesi.

Il software può essere valutato secondo differenti aspetti e quindi si possono riconoscere diverse tipologie di test, tra le quali si citano ad esempio:

  • i test di funzionalità, i quali puntano a controllare che ogni funzionalità del prodotto sia stata realizzata correttamente
  • i test di performance, i quali assicurano che il sistema rispetti i tempi di elaborazione e di risposta attesi
  • i test di usabilità, i quali valutano la facilità d’utilizzo del prodotto da parte dell’utente finale
  • i test di sicurezza, i quali controllano l’efficacia dei meccanismi di sicurezza del sistema cercando di accedere a funzionalità o aree riservate
  • i test di compatibilità, i quali controllano la compatibilità del sistema con versioni precedenti dello stesso prodotto o con altri software con cui il prodotto deve interagire

In questa serie di articoli ci concentreremo sui test funzionali dell’applicazione Web.UP.

Test funzionali di unità e test e2e in Web.UP

All’interno della categoria dei test di funzionalità si possono riconoscere le seguenti sottocategorie:

  • test di unità: i quali hanno come obiettivo quello di testare una piccola porzione di codice, come una classe o un metodo. In questi casi le dipendenze esterne verso altre classi sono rimosse e sostituite con dei mock o stub ovvero delle classi fittizie con un comportamento predeterminato che simula quello delle classi che sostituiscono.
  • test di integrazione: i quali testano l’interazione tra più componenti (ad esempio tra un database e un layer di accesso al database)
  • test di sistema: chiamati anche e2e testing (e a volte anche test funzionali) che testano il sistema nel suo complesso

Spesso la distinzione tra e2e e test di integrazione viene eliminata e i test di integrazione vengono equiparati ai test e2e. Anche in questo articolo li considereremo sinonimi. Si possono pertanto riconoscere due tipologie di test funzionali in Web.UP: i test unitari e i test e2e.

I test funzionali in Web.UP sono automatici. Il test del software può essere svolto manualmente o in maniera automatica, ovvero attraverso altro software. I test automatici garantiscono uno sviluppo del software più sicuro in quanto il pacchetto di test automatici può essere eseguito in maniera completa ogni volta che si desidera, ad esempio ad ogni modifica del codice, riducendo l’introduzione di regressioni ed errori.

Attualmente esistono quasi 1000 test automatici dell’applicazione Web.UP.

Una parte di tali test sono test unitari. Per i test unitari è stato utilizzato il framework Junit, associato a Mockito e PowerMock per la creazione di mock e stub.

La stragrande maggioranza dei test automatici sono test e2e, scritti utilizzando il framework Arquillian. Arquillian è un framework di integration testing per applicazioni Java EE, quali lo è Web.UP. Grazie alle estensioni Drone e Graphene permette l’integrazione con Selenium Web Driver, un software in grado di simulare automaticamente i click di un utente su un browser. Un e2e test in Web.UP pertanto non è altro che una classe Java in cui è presente del codice che effettua dei click predeterminati su una versione di test dell’applicazione in esame. Oltre al codice per simulare i click ciascun test contiene del codice di verifica di una o più condizioni. Se le condizioni non sono verificate, ad esempio se cliccando su un data combo box non vengono mostrate le voci attese, il test fallirà.

Chiara Zambelli
Responsabile CI/CD – smeup
My LinkedIn Profile

Naviga per categoria:

Seleziona una categoria d’interesse dal nostro magazine