Quali sono le migliori risorse per l'apprendimento del TDD? [chiuso]


27

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?


1
Potresti essere interessato alla mia pagina di risorse per l'apprendimento del TDD .
xpmatteo,

9
Mi piace questa domanda Se non dovresti fare questa domanda qui, dove puoi porre domande sulla programmazione dei consigli sui libri?
Guettli,

Risposte:


18

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:

  • Scrivere il test prima del codice, ti fa pensare in anticipo a come invocherai il tuo codice e otterrai il risultato. Questo significa che si progetta l'API prima in base a come si intende utilizzare. Ciò si traduce spesso in un'API migliore.
  • Il tuo stile di codifica cambierà perché avrai BISOGNO di pensare in modo più modulare, per essere in grado di testare parti del codice invece di tutto.
  • Arriverete anche a un punto in cui sarete in grado di estrarre con sicurezza un grosso pezzo e inserire un nuovo pezzo invece di comportarsi allo stesso modo, perché il test ha superato. L'ho fatto di recente con una libreria di analisi della data, poiché l'originale era troppo indulgente.

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.


8

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


Vai avanti e aggiungi il link di presentazione di Google. Penso che il rappresentante di Eric non permetta ancora di commentare.
ocodo,

+1 @Slomojo: Vero, quindi vota la domanda ... per spingerlo oltre i 15 ripetitori se lo ricordo correttamente. Mi guarderò intorno per il video.
errori del

1
@blunders ... L'ho portato a 11!
ocodo

+1 @Slomojo: per votare, ho trovato e aggiunto il collegamento a Google Tech Talk nella mia risposta. Saluti!
errori del

8

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.


Penso che questo sia il mio libro preferito e quello che ha influenzato il modo in cui lavoro di più, non solo su TDD ma su Software Dev in generale. Devo anche ammettere che non ho letto molti libri di TDD, quindi forse non fidarti così tanto di me.
antonio.fornie il

4

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 #).


4

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.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.