Test driven development: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
→Fase rossa: correggo |
Archive.today ___domain not accessible from Italy (x1)) #IABot (v2.0.9.5) (GreenC bot |
||
(5 versioni intermedie di 4 utenti non mostrate) | |||
Riga 3:
Più in dettaglio, il TDD prevede la ripetizione di un breve ciclo di sviluppo in tre fasi, detto "ciclo TDD". Nella prima fase (detta "fase rossa"), il [[programmatore]] scrive un test automatico per la nuova funzione da sviluppare, che deve ''fallire'' in quanto la funzione non è stata ancora realizzata. Nella seconda fase (detta "fase verde"), il programmatore sviluppa la quantità ''minima'' di [[codice sorgente|codice]] necessaria per passare il test. Nella terza fase (detta "fase grigia" o di [[refactoring]]), il programmatore esegue il refactoring del codice per adeguarlo a determinati standard di qualità.<ref>[[Kent Beck|K. Beck]], ''Test-Driven Development by Example'', Addison Wesley 2003</ref>
L'invenzione del metodo (o la sua riscoperta<ref>[https://www.quora.com/Why-does-Kent-Beck-refer-to-the-rediscovery-of-test-driven-development ''Why does Kent Beck refer to the "rediscovery" of test-driven development?'']</ref>) si deve a [[Kent Beck]], uno dei padri dell'[[extreme programming]] (XP) e delle [[metodologie agili]]. Il TDD è una delle 12 regole base dell'XP, ma viene anche usato indipendentemente da questa metodologia;<ref>Newkirk, JW and Vorontsov, AA. ''Test-Driven Development in Microsoft .NET'', Microsoft Press 2004</ref> la sua applicazione è anche parte fondamentale dello sviluppo agile del software.<ref>
== I cicli TDD ==
Riga 13:
=== Fase verde ===
Nella fase successiva, il programmatore deve scrivere la quantità minima di codice necessaria per passare il test che fallisce. Non è richiesto che il codice scritto sia di buona qualità, elegante, o generale; l'unico obiettivo esplicito è che
=== Refactoring o fase grigia===
{{Vedi anche|refactoring}}
Quando il software passa tutti i test, il programmatore dedica una certa quantità di tempo a farne ''refactoring'', ovvero a migliorarne la struttura attraverso un procedimento basato su piccole modifiche controllate volte a eliminare o ridurre difetti oggettivamente riconoscibili nella struttura interna del codice. Esempi tipici di azioni di refactoring includono la scelta di identificatori più espressivi, eliminazione di codice duplicato, semplificazione e razionalizzazione dell'architettura del sorgente (p.es. in termini della sua organizzazione in classi), e così via. La letteratura sul TDD fornisce numerose linee guida sia specifiche che generali sul modo corretto di fare refactoring<ref>K. Beck, ''XP Explained'', Addison-Wesley 1999</ref><ref>Robert C. Martin, ''Clean Code''</ref> In ogni caso, l'obiettivo del refactoring non è quello di ottenere del codice "perfetto", ma solo di ''migliorarne'' la struttura, secondo la cosiddetta "regola dei Boy Scout"<ref>Garry Shutler, ''The Boy Scout Rule''</ref>: "lascia l'area dove ti sei accampato più pulita di come l'hai trovata". Dopo ciascuna azione di refactoring, i test automatici vengono nuovamente eseguiti per accertarsi che le modifiche eseguite non abbiano introdotto errori.
|