BigThink

Test Driven Development: prima i test, poi il codice

Un metodo non tradizionale e agile per lo sviluppo e il design del software è il Test Driven Development (TDD): sviluppo guidato dai test. E’ un’alternativa al solito metodo a cascata (waterfall), secondo il quale, dopo un’adeguata analisi e progettazione, si inizia a scrivere il codice e solo alla fine si passa al testing e al debug.

Il TDD, invece, (previa analisi e progettazione, ovviamente) consiste nello scrivere il proprio codice ripetendo ciclicamente questi passi:

- scrivo il test prima ancora che esista il codice da testare
- il test (ovviamente) fallisce
- scrivo il codice minimo che faccia passare il test
- il test passa
- eseguo il refactoring del codice

Ma cos’è un test? Un test è formato da una serie di asserzioni che determinano il comportamento di una piccola porzione di codice (si dicono infatti Unit Test) e determinano se una certa funzionalità (feature) è soddisfatta o meno.

In questo modo ogni minima parte del mio programma è costantemente monitorata: funzioni, metodi, classi, input, output… tutto deve essere coperto da test. Dopo ogni piccola modifica che eseguo, posso devo eseguire tutti i test che coprono la parte su cui sto lavorando e controllare se il sistema funziona, ottenendo un feedback immediato.

Un altro vantaggio è che mi ritroverò a scrivere solamente il codice strettamente necessario a far passare i test, evitando codice inutile o superfluo.

Inoltre, ogni Unit Test fornisce una documentazione viva e chiara del codice, del suo sviluppo e del suo uso.

Questa metodologia di sviluppo, che fa parte dei concetti dell’Extreme Programming, è applicabile a moltissimi linguaggi di programmazione che supportino lo unit testing. Ad esempio Java che utilizza JUnit, piuttosto che Ruby, .NET o addirittura PHP, grazie a PHPUnit.

Dopo questa piccola ed incompleta introduzione, giusto per stuzzicare la vostra curiosità di programmatori, per informazioni e documentazioni più specifiche, vi rimando alle seguenti risorse:
- Introduzione all’Extreme Programming
- Introduzione al TDD
- Agile Movement
- Manifesto for Agile Software Development

Per avere un’idea più chiara di come funzioni il Test Driven Development, date un’occhiata anche a questi esempi passo-passo, così vi renderete conto delle potenzialità di questa metodologia:
- Java: Fibonacci
- C#: metodo che, dato un numero in cifra, lo restituisce in parola
- Ruby: Fibonacci

Concludo, segnalandovi il miglior libro per imparare il TDD: Test-Driven Development By Example, che tra l’altro potete scaricare (anche se non so quanto legalmente) da qui.

Articolo scritto da Ghido

Fondatore di BigThink.it, si occupa dello sviluppo e del coordinamento dei progetti tecnologici. Specializzato nel Marketing su Facebook e nello sviluppo di Applicazioni Social, fa consulenza e formazione ad aziende ed agenzie.

Leggi anche...

Creare un database di testo in PHP

Creare un database di testo in PHP

Spesso potremmo aver necessità di utilizzare un database. Tuttavia, se si tratta di un piccolo script che non useremo spesso, invece di andare a creare tabelle su MySQL, possiamo utilizzare un semplice file di testo e andare a scrivere e leggere delle stringhe. E' chiaro che le limitazioni sono molte: deve trattarsi di una mole ...
Risorse per creare un'applicazione Facebook in PHP

Risorse per creare un’applicazione Facebook in PHP

Facebook è ormai un fenomeno di massa, perchè non approfittarne? Da bravi programmatori PHP quali siamo, ci sarà pur venuta la curiosità di creare una nostra applicazione Facebook, giusto per sperimentare qualcosa di nuovo o magari per promuovere il nostro sito o blog. E' giunto allora il momento di buttarci ed iniziare a studiare ...
PasteQuestion.com: aiuto gratis dagli esperti di programmazione

PasteQuestion.com: aiuto gratis dagli esperti di programmazione

Quante volte vi siete trovati in difficoltà, programmando un'applicazione o un sito web, e siete andati alla disperata ricerca della soluzione su Google? Quante volte vi siete fiondati sui forum di programmazione, sperando in un aiuto dai più esperti? Quante volte siete approdati su BigThink, chiedendomi aiuto per sistemare il vostro template o plugin WordPress ...
PHP: validare un form con le eccezioni

PHP: validare un form con le eccezioni

E' da tempo che programmo in PHP e ho avuto modo di apprezzare la programmazione OO, rispetto all'approccio procedurale, in particolare grazie al maggior supporto agli oggetti di PHP5. Vedremo in questo articolo come validare i campi di un form, utilizzando la gestione delle eccezioni, disponibili solo dalla versione 5, appunto. Darò per scontato che ...
PHP: manipolare immagini con tre righe di codice

PHP: manipolare immagini con tre righe di codice

Oggi vi presento una classe PHP per manipolare in tutta facilità le immagini: si tratta di SmartImage del buon Alessandro Coscia di CodiceFacile. Con poche righe di codice potremo ridimensionare, croppare, convertire, ottimizzare, ruotare le immagini ed aggiungervi un watermark. Il tutto compatibile sia con PHP 4 che 5. Per prima cosa, scarichiamo SmartImage, ...

Lascia un commento

3 Citazioni