Quindi sono nuovo di agile, ma non sviluppo basato sui test . I miei professori al college erano tutti sull'idea di test, poi codice e test. Non sono sicuro di aver capito perché. Dal mio punto di vista sono molti i costi iniziali che molto probabilmente cambieranno man mano che il codice si evolverà.
Ecco come immagino TDD e perché mi confonde. Se dovessi costruire una casa come un appaltatore TDD.
-
Dammi tutte le tue specifiche (storie).
-
Ottieni l'approvazione sulle specifiche.
-
Analizza tutte le specifiche in ispezione penso che mi servirà (vedi nel futuro).
-
Chiama un ispettore per vedere quei punti e dimmi subito che sto fallendo l'ispezione (grazie).
-
Inizia a costruire la casa.
-
Chiama l'ispettore di nuovo fuori ogni giorno (passando 2/100).
-
Oh sparare, c'era un problema con la mia comprensione e ora ho bisogno di aggiungere altri 9 controlli e di modificarne 27.
-
Call inspector che passa 1/109.
-
Accidenti. Perché l'ispettore non piace questo ... oh ho aggiornato il nome del metodo ...
-
Costruisci ancora.
-
UGGGGHHHH ALTRE MODIFICHE fammi aggiornare il maledetto ispettore. Oh sto fallendo no s ** t.
-
Ho ancora finito?
Ok, potrebbe sembrare strano, ma non vedo come dovrei conoscere tutti i miei metodi e come funzioneranno le cose fino a quando il mio codice non sarà presente. Il 99% delle volte devo tornare indietro e aggiornare un test unitario in qualsiasi modo e aggiungere altro mentre vado. Sembra solo all'indietro.
Ciò che sembra più appropriato è il DDT o test basati sullo sviluppo, cosa che la comunità ha quasi dimenticato di ciò sembra.
Da quanto ho capito, DDT per una casa sarebbe:
-
Dammi tutte le tue specifiche (storie).
-
Ottieni l'approvazione sulle specifiche e scomile.
-
Avvia un'unità (la base).
-
prendi appunti (commenti) di qualche logica complicata.
-
Alla fine, prima di iniziare, l'unità successiva ha l'ispezione (crea un test).
-
Correggi eventuali problemi rilevati e ispeziona di nuovo.
-
Approvato questa unità passa alla successiva.
Se siamo tutti onesti, non sembra più umano e incentrato sullo sviluppatore e sugli affari? Sembra che le modifiche possano essere apportate più velocemente e senza il sovraccarico che TDD sembra creare.