Quando ho iniziato a fare TDD intorno al 2000, mi sono sentito molto innaturale. Poi è arrivata la prima versione di .net e la porta JUnit di NUnit, e ho iniziato a praticare TDD al livello Shu (di Shu-Ha-Ri), il che significava testare (prima) tutto, con le stesse domande del tuo.
Pochi anni dopo, in un altro luogo di lavoro, insieme a uno sviluppatore senior molto competente e competente, abbiamo intrapreso i passi necessari per raggiungere il livello Ha. Ciò significava, ad esempio, che il report sulla copertura non fosse ciecamente protagonista, ma la domanda "è davvero utile per questo tipo di test e aggiunge più valore di quanto costi?".
Ora, in un altro luogo di lavoro, insieme a un altro grande collega, sento che stiamo facendo i primi passi verso il livello Ri. Per noi ciò significa attualmente un grande interesse per le storie BDD/eseguibili. Con quelli che stanno verificando i requisiti a un livello superiore, mi sento più produttivo, dal momento che non ho bisogno di (ri) scrivere una serie di test unitari ogni volta che un'interfaccia pubblica di classe deve cambiare, sostituire una chiamata statica con un metodo di estensione e così via.
Non fraintendetemi, i soliti test di classe TDD vengono ancora utilizzati e rappresentano un grande valore per noi. È difficile esprimere a parole, ma siamo semplicemente molto più bravi nel "sentire" e "percepire" quali test hanno senso e come progettare il nostro software, di quanto non ne fossi capace dieci anni fa.
fonte
2009-12-10 22:09:49
È fantastico se in realtà hai una squadra. Come faresti a mantenere una mentalità di "primo test" se sei l'unico sviluppatore di un progetto? –
Se sono in solitario, scrivo il test e l'implementazione in giorni diversi. Il sonno aiuta a eliminare la spazzatura nella mia mente. –
Ho fatto TDD per circa 10 anni. Sto ancora imparando ogni giorno. Migliorare la programmazione orientata agli oggetti mi ha aiutato, in particolare la scuola di pensiero del "design responsabile della responsabilità". – daf