Il collaudo del software o comunemente detto software testing rappresenta una fase fondamentale del ciclo di vita del software, in particolare nel modello Agile.
Infatti, il fine ultimo dei test è quello di verificare e individuare carenze di correttezza, completezza e affidabilità delle componenti software in corso di sviluppo.
Esistono però varie tipologie di testing, dalle più atomiche alle più distribuite, che possono essere suddivise in una struttura piramidale che perfettamente si presta alla descrizione dei vari tipi.
La base della piramide idealmente racchiude i test di più basso livello come il comportamento di una data label o bottone, fino ai test di carattere distribuito dove non vi è un singolo comportamento da testare ma piuttosto una serie di azioni che porteranno, come nel nostro caso, a un corretto utilizzo dell’applicativo.
Al vertice sono invece mappati i test di più alto livello cioè quelli più aderenti al concetto di design e per estensione look&feel.
Unit Test
Analizzando i vari stadi piramidali troviamo quindi alla base i test unitari o Unit Test.
Questi prendono il nome di unitari perché hanno l’esatto scopo di verificare la singola e atomica funzionalità, come per esempio il singolo comportamento del bottone X.
Essendo l’unità minima descrivibile possono anche essere utilizzati come i mattoncini base, che composti tra loro, vanno a formare test più complessi.
Integration Test
Salendo la struttura piramidale troviamo i test di integrazione o Integration Test.
Il loro scopo è verificare, a seguito di un rilascio, la corretta integrazione tra due o più unità già testate. In questa fase è fondamentale controllare che eventuali punti critici, presenti nei primi test, non si ripetano quando queste funzionalità si trovano a operare come un unico componente. Il QA possiede conoscenza di questi punti sensibili in base alla propria esperienza e know how sul progetto.
End-to-End Test
Allo step successivo troviamo dei test che invece hanno lo scopo di simulare il comportamento dell’utente e coprire più “scenari d’uso” possibili. Questi test prendono il nome di end-to-end o più comunemente noti come e2e, nome che deriva proprio da come questi scenari devono essere prodotti. Infatti mirano a descrivere, con l’utilizzo dei test unitari, una possibile interazione utente con il portale dallo step iniziale a quello finale. Questi particolari test sono largamente utilizzati e fondano la base del cosiddetto UAT (User Acceptance Testing), in cui si sottopone il prodotto sviluppato al cliente, che verifica la quasi totalità delle funzionalità e quindi autorizza il rilascio in produzione del software.
UI Test
Al vertice della struttura piramidale troviamo infine i test di layout e design, comunemente noti come UI Test (User Interface Test). Questi essendo di alto livello mirano a valutare il software sviluppato in termini di design e look&feel.
A differenza dei test precedentemente trattati questi possono avere varie granularità, si passa dalla mera verifica che tutti i componenti siano presenti e giustamente collocati, al più complesso scenario pixel perfect, dove si ricerca la perfezione al minimo livello di pixel.
Conclusioni
Il ruolo del QA è quindi fondamentale per garantire un prodotto il più possibile privo di bug e conforme con i requisiti richiesti dal cliente.
In Antreem, tutti i progetti, con qualsiasi livello di complessità, godono di questa fase per garantire soluzioni efficaci e di qualità.