Test driven development

metodologia di sviluppo del software
Versione del 21 ott 2011 alle 21:16 di Mess (discussione | contributi) (Test Driven Development (nuova voce))
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Il Test Driven Development (TDD) è un processo di sviluppo del software in cui si creano i test prima del codice sorgente di un software. Obiettivo primario di questo processo è quindi la specificazione e non la validazione del codice.

Sviluppato e diffuso da Kent Beck, fa parte delle 12 regole alla base dell'Extreme Programming (XP). Si tenga conto che mentre XP è una metodologia agile, il Test Driven Development è una pratica agile.

Ciclo di sviluppo

Il Test Driven Development si articola in 5 fasi:

  1. scrittura del test;
  2. verifica del fallimento del test (poiché non esiste ancora il codice che deve testare);
  3. scrittura del codice per superare il test;
  4. verifica del superamento del test;
  5. refactoring del codice.

Vantaggi

Tali test permettono di individuare con precisione le specifiche del codice, e quindi il suo comportamento in base alle situazioni a cui sarà sottoposto. Ciò facilita la produzione di un codice funzionante in qualunque circostanza, più pulito e più affidabile.

Scrivendo i test prima del codice, si utilizza il programma prima ancora che venga realizzato. Ci si assicura, inoltre, che il codice prodotto è 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.

Voci correlate

Collegamenti esterni