Definizione, caratteristiche e importanza della piramide del testing

Definizione, caratteristiche e importanza della piramide del testing

Piramide del testing

Nel testing software, la piramide del testing o piramide del test (in inglese Testing Pyramid) è una metafora che ci dice di raggruppare i test del software in livelli di diversa granularità. Essa inoltre dà anche un’idea di quanti test dovremmo avere in ciascuno di questi gruppi. Sebbene il concetto di piramide del testing esiste già da un po’ di tempo, i team hanno ancora difficoltà a metterlo in pratica correttamente.

Una piramide del testing è in pratica una piramide in cui si adattano tutti i diversi tipi di test software da eseguire. La piramide del testing molto semplice (o originale) è costituia da 3 livelli (dal basso verso l’alto):

  1. Test di unità
  2. Test di integrazione
  3. Test dell’end-to-end

In fondo, quindi sono presenti i Test di unità. Questi dovrebbero contare per la maggior parte dei test che hai per la tua base di codice. Testano la più piccola unità di codice possibile. Normalmente, testano un singolo metodo sviluppato.

Il livello intermedio è costituito dai test di integrazione che sono test progettati per verificare l’integrazione delle diverse parti di componenti separati di un sistema software che è stato integrato. Per esempio, può essere l’integrazione con un database, con un framework, con sistemi software esterni di terze parti o persino con componenti inter-software tra diversi livelli (se si sta implementando un software con architettura software a più livelli).

Infine, nella parte superiore si trovano i test end-to-end (test E2E) che sono test che verificano i flussi di lavoro end-to-end del software sviluppato. Questi testano il sistema dal punto di ingresso dell’azione dell’utente (input utente) fino alla fine del sistema o fino al livello del database, verificando infine gli output prodotti (output utente). Tuttavia, si tratta in genere di test in scatola nera o black-box.

Definizione, caratteristiche e importanza della piramide del testing

Piramide del testing completa

Una piramide del testing più dettagliata chiamata anche piramide del testing completa potrebbe invece apparire così:

  1. Test di unità
  2. Test dei componenti
  3. Test API
  4. Test dell’interfaccia utente
  5. Test manuali

Test di unità

In fondo, sono sempre presenti i Test di unità che svolgono lo stesso ruolo della piramide del test originale.

Test dei componenti

Allo stesso livello dei test di integrazione, è possibile che vi siano anche i cosiddetti test dei componenti. Questi sono test che testano i diversi componenti di un sistema software. Naturalmente, è necessario definire all’interno del proprio sistema ciò che costituisce i “componenti”. Ciò presuppone che il software sia un sistema software distribuito modulare con componenti separati, SOA o Microservizi.

Test API

Al terzo livello dal basso e tra i primi 2 livelli ci sono test API che, come dice il nome, testano gli endpoint API del sistema. Supponendo di avere API di qualsiasi tipo, sia RESTful o non RESTful; questi test sono comuni perché molte app Web nei nostri giorni hanno i cosiddetti servizi web back-end che espongono la sua funzionalità (operazioni simili a CRUD) tramite endpoint. Quindi è importante testare anche il richiamo di queste API. Alcune persone sostengono che si tratta solo di test di integrazione. E probabilmente hanno ragione, sono semplicemente una classificazione più specifica dei test di integrazione.

Test dell’interfaccia utente

Negli ultimi anni sempre più noti, i test dell’interfaccia utente (test UI) testano l’aspetto della user interface del sistema, se il sistema ovviamente ha una UI. Se il sistema è solo un servizio web back-end che espone API, ovviamente non servono e probabilmente non sono validi in quanto non hai un’interfaccia utente.

Test manuali

In cima alla piramide ora si trova una nuvola o una bolla di test: i test manuali. Questi sono test eseguiti manualmente e testano l’intero sistema in una scatola nera. Questi test sono importanti in quanto testano il sistema nel suo complesso, cosa che nessuno dei test delle singole aree può eseguire.

Definizione, caratteristiche e importanza della piramide del testing completa

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 *