Test driven development: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m salto redirect
Riga 30:
L'applicazione del TDD porta in generale allo sviluppo di un numero maggiore di test, e a una maggiore copertura di test del software prodotto, rispetto alla pratica tradizionale di sviluppare i test dopo l'implementazione.<ref>[http://nparc.cisti-icist.nrc-cnrc.gc.ca/npsi/ctrl?action=shwart&index=an&req=5763742&lang=en H. Erdogmus, ''On the Effectiveness of Test-first Approach to Programming'']</ref> In parte, questo è dovuto al fatto che in contesti non TDD il management tende a spingere i programmatori a passare all'implementazione di nuove funzionalità a scapito del completamento dei test. I programmatori che usano il TDD su progetti nuovi hanno, in genere, meno necessità di usare il [[debugger]], essendo in grado di risolvere più efficacemente eventuali errori annullando immediatamente le modifiche che li hanno causati.<ref>[http://gamesfromwithin.com/stepping-through-the-looking-glass-test-driven-game-development-part-1 ''Stepping Through the Looking Glass: Test-Driven Game Development'']</ref>
 
Scrivendo i test prima del codice, si utilizza il [[programma (informatica)|programma]] prima ancora che venga realizzato. Ci si assicura, inoltre, che il codice prodotto èsia testabile singolarmente. È dunque obbligatorio avere una visione precisa del modo in cui verrà utilizzato il programma prima ancora d'essere implementato. Così facendo si evitano errori concettuali durante la realizzazione dell'implementazione, senza che si siano definiti gli obiettivi. Inoltre, i test consentono agli sviluppatori di avere maggior confidenza durante il refactoring del codice, in quanto già sanno che i test funzioneranno quando richiesto; pertanto, possono permettersi di effettuare cambiamenti radicali di design, stando certi che alla fine otterranno un programma che si comporterà sempre alla stessa maniera (essendo i test sempre verificati).
 
L'uso del Test Driven Development permette non solo di costruire il programma assieme ad una serie di test di regressione automatizzabili, ma anche di stimare in maniera più precisa lo stato d'avanzamento dello sviluppo di un progetto.