Riflessioni sull'arte del testare #1

Sto pensando allo sviluppo test-driven e a quello test-first...

tutto sommato il primo ingloba il secondo ma la differenza è sostanziale.

Infatti nello sviluppo test-driven NON scriviamo analisi dettagliata sulla carta, bensì scriviamo test sottoforma di codice sorgente e USIAMO i test per orientare al meglio la progettazione e il disegno del software. I test ci guidano nel disegno e nell'implementazione.

Questi sono gli steps e le regole da seguire (vi ricordo che l'eXtreme Programming prevede sviluppo iterativo - un pò come RUP - quindi i passi seguenti vanno iterati "n" volte):

 - scriviamo test code che si riferisca a piccole unità funzionali e testiamo qualsiasi cosa possa sollevare una exception;

 - siccome non abbiamo ancora scritto la funzionalità il nostro test code DEVE fallire;

 - scriviamo il code affinchè passi il test;

 - usiamo il refactoring e assicuriamoci che le nostre classi siano disegnate il meglio possible;

 - assicuriamoci che tutti i test vengano eseguiti con successo al 100% ogni volta.

Nello sviluppo test-first, al contrario, non scriveremo mai codice di produzione prima di aver passato tutti i test cases perchè l'obiettivo è quello di scrivere prima tutti i test, poi sviluppare le funzionalità e infine testarle.

Voi che ne pensate?

«settembre»
domlunmarmergiovensab
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789