Voglio imparare (e padroneggiare) TDD. Quali sono i migliori:
- libri
- siti web
- video
- elenco di esercizi
- parole personali di saggezza
per l'apprendimento, l'apprezzamento e l'uso del TDD?
Voglio imparare (e padroneggiare) TDD. Quali sono i migliori:
per l'apprendimento, l'apprezzamento e l'uso del TDD?
Risposte:
Personalmente ho scoperto che leggere un saggio di JUnit o due sottolineando che "scrivi il test prima del codice" è stato sufficiente per iniziare.
La parte più importante nell'apprendimento di questa tecnologia è scrivere MOLTO codice basato su test , perché è necessario modificare alcuni dei modi più elementari che si pensa di scrivere codice. Cose come:
Il posto migliore per iniziare in piccolo, è con le tue routine di utilità. La prossima volta che ne hai bisogno, devi solo progettare che con i test prima, scrivi un sacco di test che coprono tutti i tuoi casi d'uso ufficiali (incluso ciò che dovrebbe accadere con valori null passati ecc.), E quando tutti i casi d'uso saranno implementati dovresti essere in grado di usare direttamente nel tuo codice e assicurati che funzioni come previsto.
È anche la mia esperienza che buoni test possono fare un lavoro aggiuntivo come documentazione, perché hai un sacco di codice molto conciso che dice esattamente come si comporta il codice in varie situazioni, che può essere facilmente dimostrato di essere corretto (barra verde). Con commenti accurati non lo ottieni molto meglio di così.
Per Java jUnit la versione 4 è davvero bella.
A mio avviso, TDD si occupa più di rendere testabile il codice, che di scrivere test.
Sicuramente puoi scrivere un test prima della codifica, ma la ragione principale per cui il test è stato scritto è che puoi scrivere codice, il che non ti impedirà di scrivere codice difficile da testare.
Dai un'occhiata a questo per capire meglio cosa intendo: My Unified Theory of Bugs
Se sei interessato al concetto e vuoi saperne di più, commenta e ti indirizzerò verso una presentazione registrata sull'argomento di Google.
AGGIORNARE:
Come scrivere codice pulito e testabile
Miško Hevery Presenting (di GoogleTechTalks ) A Google a New York e sponsorizzato dal gruppo di produttività tecnica di Google
Oltre ad alcuni dei libri già citati, posso consigliare un software in crescita orientato agli oggetti guidato da test . Non ho ancora finito di leggerlo, ma è una lettura degna, inclusa la storia di un intero progetto TDD realistico, non solo esempi di codice semplificati.
Ho letto due libri:
Test Driven Development: Esempio di Kent Beck e
Frame test unitari di Paul Hamil
Il libro di Beck è ben considerato, ma non ho iniziato con i test unitari fino a quando non ho letto "Unit Test Frameworks". Faccio un po 'di TDD, ma aggiungo anche test al codice più vecchio che devo mantenere (quando posso).
Modifica: Inoltre, una volta che hai capito bene, ti consiglio di usarlo subito su un progetto corrente. Per me è stato allora che si è verificato il vero apprendimento e penso che il libro "Unit Test Framework" sia stato un libro di riferimento migliore per questo scopo. (Stavo usando nunit con C #).
Sebbene non riguardi principalmente il TDD (anche se lo tocca, oltre a progettare per la testabilità), The Art of Unit Testing è un libro che consiglierei perché ti insegna come scrivere buoni test.
Più specificamente, insegna come creare test affidabili, mantenibili e leggibili. Penso che questa sia la sezione più importante del libro, al di fuori forse delle basi sui test unitari e sui framework di isolamento. È ovvio che se i test unitari diventano un punto dolente o aggiungono attrito al lavoro di uno sviluppatore, qualsiasi successo o beneficio da essi sarà limitato. Se uno investe il tempo e gli sforzi per creare i test, allora dovrebbe essere in grado di ottenere il massimo profitto da tale investimento.