Software Quality Assurance: unit testing

Con l’aiuto dello unit testing, spesso chiamato anche testing di unità o testing unitario, si effettuano test su singoli componenti di programmi. Si esamina quindi il corretto funzionamento delle singole parti, prima che prendano il loro posto all’interno di un software. Grazie a questi test si verifica in modo relativamente facile e veloce se le componenti funzionano esattamente come previsto dallo sviluppatore. Lo unit testing è uno tra i mezzi più efficaci per identificare tempestivamente gli errori presenti nel codice.

Lo unit testing svolge una funzione molto importante nella software quality assurance (cioè la garanzia di qualità del software). Questi metodi vengono utilizzati soprattutto nella fase di sviluppo di un software; per lo più si punta a effettuare frequenti test di componenti ed è anche per questa ragione che vengono eseguiti in modo automatico. Programmi appositi eseguono testing di unità qualsiasi semplicemente premendo un tasto. Di solito il testing di unità utilizzato è scritto nella stessa lingua dell’oggetto verificato.

A cosa serve lo unit testing?

Come già accennato, si parla anche di testing di unità o testing unitario, in quanto si verificano le unità più piccole del software, mentre le parti di sistema più piccole che è importante verificare sono i moduli.

Si consiglia di verificare questi moduli già agli inizi del processo di sviluppo, in quanto nella fase del test dei moduli è possibile correggere gli errori in modo relativamente semplice e vantaggioso. Nelle fasi successive questi processi comportano costi maggiori. Lo unit testing si occupa prioritariamente di proprietà funzionali. Di solito lo sviluppatore esegue i test personalmente, garantendo così la correttezza delle funzioni.

Ambiente di test per lo unit testing

Una qualità importante dello unit testing è quella di isolare un modulo e certificarne la correttezza. Il test esegue solo una funzione concreta, mentre lascia in un primo momento fuori tutti i fattori esterni, come la comunicazione con altri sistemi. Le interazioni con altri componenti sono esclusi. In questo modo è possibile far risalire eventuali errori al modulo testato isolatamente.

Il processo di verifica avviene in un cosiddetto ambiente autonomo. In primo luogo è necessario creare questo speciale ambiente di test (ciò che si rivela relativamente complesso e realizzabile solo con fatica, andrebbe prima impostato manualmente). Poiché un modulo non è una parte eseguibile in maniera autonoma, per effettuare il test si ha bisogno di un cosiddetto “test harness” (un insieme di software per effettuare i test). Solo con questo test harness l’oggetto diventa un programma eseguibile. Per creare un ambiente di test realistico, si realizzano oggetti di supporto (i cosiddetti stub) che funzionano come segnaposto, quando il modulo su cui si effettua il test, richiede altre componenti per poter interagire.

Framework per unit testing

L’obiettivo dello unit testing è quello di verificare gli errori all’interno dei singoli componenti. Se si vuole garantire la correttezza del codice durante tutto il periodo di sviluppo, si eseguiranno continuamente degli unit test e pertanto l’automatizzazione in questo campo è un concetto molto importante. Ci sono speciali framework che servono all’esecuzione di unit test. Per quasi tutti i linguaggi di programmazione esiste un software di unit testing adatto, che legge il codice sorgente alla ricerca di eventuali errori. L’ambiente di testing sopra citato viene creato in automatico dai tool, mentre lo sviluppatore si concentra sulla realizzazione dei diversi casi di test. A questo link trovate una lista completa degli unit testing disponibili per i singoli linguaggi di programmazione.

Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top