Perché dovrei praticare il Test Driven Development e come dovrei iniziare?

StackOverflow https://stackoverflow.com/questions/4303

  •  08-06-2019
  •  | 
  •  

Domanda

Molte persone parlano di scrivere test per il proprio codice prima di iniziare a scriverlo.Questa pratica è generalmente nota come Test Driven Development o TDD in breve.Quali vantaggi ottengo scrivendo software in questo modo?Come posso iniziare con questa pratica?

È stato utile?

Soluzione

Ci sono molti vantaggi:

  • Ricevi un feedback immediato sul funzionamento del tuo codice, così puoi trovare i bug più velocemente
  • Vedendo il test passare dal rosso al verde, sai di avere sia un test di regressione che un codice funzionanti
  • Acquisisci sicurezza nel refactoring del codice esistente, il che significa che puoi ripulire il codice senza preoccuparti di cosa potrebbe rompersi
  • Alla fine hai una serie di test di regressione che possono essere eseguiti durante le build automatizzate per darti maggiore sicurezza che la tua base di codice sia solida

Il modo migliore per iniziare è semplicemente iniziare.C'è un grande libro di Kent Beck tutto sullo sviluppo basato sui test.Inizia con il nuovo codice, non preoccuparti del vecchio codice...ogni volta che ritieni di dover rifattorizzare del codice, scrivi un test per la funzionalità esistente, quindi rifattorizzalo e assicurati che i test rimangano verdi.Inoltre, leggi questo fantastico articolo.

Altri suggerimenti

La parte dei vantaggi ha stato recentemente coperto, per quanto riguarda da dove cominciare....su un sistema di piccole imprese dove non ci sono troppe incognite quindi i rischi sono bassi.Se non conosci già un framework di test (come NUnit), inizia imparandolo.Altrimenti inizia scrivendo il tuo primo test :)

Benefici

  1. Scopri come compartimentare il tuo codice
  2. Capisci esattamente cosa vuoi che faccia il tuo codice
  3. Sai come dovrebbe agire e, in futuro, se il refactoring rompe qualcosa
  4. Ti abitua ad assicurarti che il tuo codice sappia sempre cosa dovrebbe fare

Iniziare

Fallo e basta.Scrivi un test case per ciò che vuoi fare, quindi scrivi il codice che dovrebbe superare il test.Se superi il test, bene, puoi passare alla scrittura di casi in cui il tuo codice fallirà sempre (2+2 non dovrebbe essere uguale a 5, ad esempio).

Una volta superati tutti i test, scrivi la tua vera logica aziendale per fare quello che vuoi.

Se stai iniziando da zero assicurati di trovare una buona suite di test che sia facile da usare.Mi piace PHP quindi PHPUnit o SimpleTest funzionano bene.Quasi tutti i linguaggi più diffusi dispongono di una suite di test xUnit disponibile per aiutare a creare e automatizzare i test.

Secondo me, la cosa più bella è che ti permette chiaramente di vedere se il tuo codice fa quello che dovrebbe.Questo può sembrare ovvio, ma è facilissimo smarrire i tuoi obiettivi originali, come ho scoperto in passato: p

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top