Il mio rapporto con lo Unit Test

Chi mi conosce sa che da un po' mi sono appassionato allo Unit Testing e quando possibile cerco di avere una "batteria" di test da lanciare per verificare il corretto funzionamento della mia applicazione.
Non è sempre stato cosi.
Anni fa, la prima volta che sentii parlare di Unit Testing, rimasi stupito e parecchio scettico sul valore reale dei test, soprattutto sul fatto che valesse la pena "perdere" tempo a scriverli.
Quindi lasciai la cosa in fondo alla mia lista dei ToDo.

Ma i rumors attorno allo Unit Testing aumentarono, cosicchè la questione riaquisì priorità nella  mia lista al punto che decisi di dargli una seconda chance.
Intallai NUnit e provai a scrivere i test man mano che il codice della mia applicazione veniva scritto.
Funzionava, ma il rigore necessario a tenere i test aggiornati (anche a seguito di modifiche nell'applicazione) era notevole.
I vantaggi però già iniziavano a farsi vedere, ma mano che l'applicazione cresceva e si introducevano modfiche a ciò che avevo scritto tempo prima, iniziavano a far capolino le prime barre rosse ad indicare che quella piccola innocente modifica aveva fatto danni altrove nella mio codice.

Ma l'onere di scrivere i test era sempre alto, e (ahime) non sempre mi "ricordavo" di scrivere quel test. Ci voleva una metodologia più rigorosa e più divertente.
Avevo già sentito parlare di TDD (Test Driven Development) ma se avevo fatto fatica ad accettare l'idea di scrivere codice per testare le mie applicazioni, figuratevi cosa pensai quando mi proposero di scrivere prima i test e poi il codice!! :-) ma il fatto che a parlare di TDD non fossero proprio gli ultimi arrivati mi convinse a dare una chance anche al TDD.
Cosi con l'occasione di iniziare un nuovo progetto provai a scrivere un test prima di scrivere il codice sul ritmo Red-Green-Refactoring.

Ammetto di essere rimasto stupito, la cosa funzionava e anche bene ed oggi cerco di usare il TDD per i miei progetti. Il fatto di scrivere test è integrato nel processo di sviluppo dell'applicazione e questo nasconde l'onere di scrivere i test, visto che diventano una cosa necessaria per procedere.
Poi quando sono stato all'AgileDay e ho visto altre cento persone che usano TDD....

 

Print | posted on mercoledì 6 dicembre 2006 11.53

Comments on this post

# re: Il mio rapporto con lo Unit Test

Requesting Gravatar...
Io uso il TDD da diverso tempo ed è stata la tecnica che mi ha fatto fare il più grande salto di qualità nello scrivere codice.
All'inizio lo vedevo anch'io come un onere, ma ora che ne ho verificato l'efficacia mi fanno risparmiare un sacco di tempo sul debug e a fronte di un maggiore tempo di consegna della prima release ho la tranquillità di poter apportare modifiche anche strutturali senza grosse conseguenze.
Left by Antonio Ganci on dic 06, 2006 12.38

# re: Il mio rapporto con lo Unit Test

Requesting Gravatar...
Se posso anche io faccio sempre TDD, il maggior sforzo di scrivere i test è fondamentale per fare poi refactoring. Non immagino infatti di poter fare refactoring senza una suite di test, e per progetti che diventano complessi il refactoring è sicuramente fondamentale.

Ogni qualvolta si può fare veramente TDD con la calma e senza nessuno che ti alita sopra per vedere codice la qualità è senza dubbio migliore e solitamente nel complesso del progetto ho visto che i tempi si riducono. Il problema è che vallo a spiegare a chi decide del ciclo di vita di un progetto :D

Gian Maria.
Left by Gian Maria on dic 06, 2006 12.58

# re: Il mio rapporto con lo Unit Test

Requesting Gravatar...
Mi sento onorato di averti instradato a questa nuova metodologia/tecnica...:-) ovviamente scherzo!!!
E' da poco che mi hai consigliato TDD, sto iniziando ad assimilarlo piano piano...Certo è un cambio sostanziale di approccio al problema, ma piano piano (non troppo, a dir la verità) stanno iniziando ad emergere gli aspetti positivi!

Ciao
Left by Alessandro Melchiori on dic 06, 2006 2.04

# re: Il mio rapporto con lo Unit Test

Requesting Gravatar...
questi post mi riempiono sempre di felicita' :-)
Left by Marco Abis on dic 06, 2006 2.47

# re: Il mio rapporto con lo Unit Test

Requesting Gravatar...
Ciao Emanuele, condivido al 100% quanto affermi. Come te ci sono passato anch'io e da un iniziale scetticismo verso gli unitTest sono passato ad un notevole entusiasmo verso una tecnica che ha enormi vantaggi.
Ciao e alla prossima!
Left by Maurizio Tammacco on dic 07, 2006 11.48

# re: Il mio rapporto con lo Unit Test

Requesting Gravatar...
Se non siamo convinti della bontà degli argomenti proposti nei nostri articoli non sarebbe giusto scriverli....

Ps.
oggi ho usato qualche UnitTest anche per venificare che l'applicazione che stavo installando girasse correttamente. Un motivo in più per giustifacare l'onere di scriverli!!
Left by Maccari Claudio on dic 07, 2006 7.52

Your comment:

 (will show your gravatar)
 
Please add 7 and 4 and type the answer here: