Unit testing: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Riga 1:
Nella [[Programmazione informatica]], lo '''unit testing''' è una procedura usata per verificare singole parti di un [[codice sorgente]] . Per unità si intende genericamente la minima parte testabile di un [[codice sorgente]].: Nellanella [[programmazione procedurale]] un'unità può rappresentare un singolo programma, funzione, procedura, etc.,; nella [[programmazione orientata ad oggetti]], la più piccola unità èpuò essere dettail [[metodo (programmazione)|metodo]].
 
Lo Unit Testing si articola in [[test case]] ciascuno dei quali dovrebbe essere indipendente dagli altri. Lo Unit Testing viene normalmente eseguito dagli [[sviluppatori]], non da [[utenti finali]].
== Benefici dall'Unit Testing ==
L'obbiettivo dell'unit testing è di isolare una determinata parte di un programma e verificarne singolarmente l'isolamento. Così un unit testing può dare una prova certa se un pezzo di codice funziona correttamente, risultato che può offrire numerosi vantaggi.
 
===Scopo dell'Unit TestingBenefici===
 
Lo scopo di eseguire un'Unit testing è quello di verificare il corretto funzionamento di parti di programma di cui magari si è incerti, permettendo così una più veloce individuazione del [[bug]] e permettendo una sua più rapida correzione. Alcuni dei bug maggiormente individuabili grazie all'Unit Testing sono i [[loop]] e gli errori di assegnazione di una determinata [[variabile]].
L'obbiettivoLo scopo dell'unitUnit testing è quello di isolareverificare unail determinatacorretto partefunzionamento di unparti di programma epermettendo verificarnecosì singolarmenteuna l'isolamentoprecoce individuazione dei [[bug]]. Così unUno unit testing accurato può dare una prova certa se un pezzo di codice funziona correttamente, risultatocon che può offrire numerosiimportanti vantaggi.:
 
- facilita la modifica del codice in momenti successivi ([[refactoring]]) con la sicurezza che il modulo continuerà a funzionare correttamente
- semplifica l'integrazione di moduli diversi perché limita i malfunzionamenti a problemi nella interazione tra i moduli e non nei moduli stessi
- fornisce una documentazione del codice, perchè è intrinsecamente un esempio di utilizzo dell'[[API]] del modulo
 
==Limitazioni dall'unit testing==
 
In generale il testing non riesce ad identificare tutti gli errori in un programma, e lo stesso vale per lo Unit Testing che, analizzando per definizione le singole unità, può non identificare gli errori di integrazione, problemi legati alla performance e altre questioni di sistema. Lo unit testing è più efficace se utilizzato in congiunzione con altre tecniche di testing del software.
Tuttavia potrebbe verificarsi che l'errore nel programma non si generi nell'unità ove si esegue l'unit testing, ma in una precedente, tuttavia l'errore potrebbe manifestarsi in quella sezione di programma.
 
Come ogni forma di testing, anche lo Unit Testing non può individuare l'assenza di errori ma può solo verificarne la presenza.
 
==Applicazioni==