Lo sviluppo guidato dai test riguarda la scrittura di test per definire le specifiche del programma
Non si scrivono test per definire le specifiche, le descrizioni dei test, le storie degli utenti e le descrizioni delle caratteristiche sono le specifiche, nel senso di "alberi morti".
Per rivedere, il processo TDD in breve è:
- definire un progetto in termini di funzionalità
- descrivere le parti interessate, il comportamento e l'obiettivo di ogni funzione utilizzando le storie degli utenti
- specificare i dati attesi, l'attivazione di eventi / condizioni e comportamenti / risultati associati a una user story utilizzando le descrizioni dei test [e questo completa la "specifica"]
- scegli una serie di funzionalità per ogni iterazione; le iterazioni dovrebbero essere brevi [sto omettendo le fasi di pianificazione e stima per brevità]
- codificare un test per una funzione (fallirà, ma è stato necessario prendere decisioni API per codificare il test)
- implementare abbastanza funzionalità in modo che il test passi
- refactoring il codice se necessario
- ripetere con il test successivo fino al completamento della funzione
- ripetere con la funzione successiva fino al completamento dell'iterazione
- ripetere con l'iterazione successiva fino al completamento del progetto
quanta progettazione, architettura, documentazione di supporto e così via si sceglie di fare non fa parte di TDD. Ci sono alcune "buone pratiche" pratiche di cui puoi leggere, ma tieni presente che quelle sono le "migliori" pratiche nel laboratorio di qualcun altro , non le tue.
si noti che il punto è che il cliente e lo sviluppatore devono elaborare le funzionalità e scrivere storie e testare le descrizioni insieme , per una comprensione reciproca
quindi, a parte questo, la domanda originale era:
qual è il ruolo di un architetto software in TDD?
E la risposta breve è:
Come sempre, come sempre. - David Byrne
EDIT: La risposta lunga è: l'architetto svolge i consueti ruoli visionario / investigatore / irritante / supporto / backstop durante l'intero processo, se necessario.
EDIT 2: mi dispiace di aver perso il punto delle domande secondarie! Ognuno è responsabile della stesura delle specifiche; tutti gli sviluppatori incluso l'architetto se / quando appropriato più il cliente . Gli sviluppatori codificano anche i test.