Categorie
Web development

End to end testing: cosa è?

L’attività di end to end testing permette di evitare le regressioni nello sviluppo di software.

Cosa di intende per regressione?

Nello sviluppo di software, una regressione indica una caratteristica del software che era presente nel recente passato, ma che attualmente risulta assente.

Ciò è accaduto a causa di una modifica del codice sorgente dell’applicazione, oppure a modifiche all’ambiente di esecuzione o a componenti di terze parti.

Questi tipi di test, spesso indicati con l’acronimo e2e tests, permettono di rilevare le regressioni senza la necessità di testing manuale.

End to end testing: a cosa serve

Come hai letto nell’introduzione di questo articolo, l’end to end testing serve per controllare se si siano verificate delle regressioni in una certa versione del software.

Nella pratica, questo metologia di testing permette di testare il software utilizzandolo, come farebbe un utente reale.

In questo modo si verifica che le varie parti necessarie al corretto funzionamento del software stiano interagendo correttamente.

Per fare un esempio pratico, prendiamo ad esempio un’applicazione web costruita con frontend in HTML + CSS + JavaScript e backend in PHP + Database MySql e strumento di caching Memcached.

Un esempio di test end to end potrebbe essere:

  1. Visitare la pagina di login dell’applicazione web
  2. Verificare che il form per l’autenticazione sia presente
  3. Verificare che la parte autenticata dell’applicazione non sia presente
  4. Inserire le credenziali corrette per il login e premere il pulsante “Accedi”
  5. Verificare che la parte autenticata dell’applicazione sia presente

Se questa serie di test ha successo, vuol dire che sia il frontend che il backend dell’applicazione stanno funzionando correttamente.

Per testare il frontend ed interagire con esso, solitamente si utilizzano i selettori CSS.

End to end testing per applicazioni web

Per effettuare dei test end to end di applicazioni web solitamente si utilizza Selenium.

Questo progetto open source permette di inviare dei comandi ad un browser a propria scelta.

In questo modo, potrai effettuare azioni (cliccare pulsanti, riempire forms) ed effettuare controlli sul DOM (ad esempio che esista un certo elemento, identificato da un selettore CSS).

I linguaggi supportati da Selenium sono:

  • Java
  • Python
  • CSharp (C#)
  • Ruby
  • JavaScript
  • Kotlin

Approfondimenti

In questo blog sono presenti numerosi articoli riguardo al web development.

Eccone alcuni:

Conclusioni

In questo articolo hai visto cosa siano i test end to end e perché siano fondamentali nello sviluppo di software.