Test-Driven Development is about writing tests to define the program specifications
Non scrivi test per definire le specifiche, le descrizioni dei test, le user story e le descrizioni delle caratteristiche sono le specifiche, nel senso di "dead trees".
Per verificare, il processo TDD in breve è:
- definisce un progetto in termini di funzionalità
- descrive lo stakeholder, il comportamento e l'obiettivo di ogni funzione utilizzando le storie degli utenti
- specifica i dati previsti, attivando eventi / condizioni e comportamenti / risultati associati a una storia utente utilizzando le descrizioni dei test [e questo completa la 'specifica']
- seleziona un set di funzionalità per ogni iterazione; le iterazioni dovrebbero essere brevi [sto omettendo le fasi di pianificazione e stima per brevità]
- codifica un test per una funzionalità (non funzionerà, ma devi prendere decisioni API per codificare il test)
- implementa un numero sufficiente di funzionalità in modo che il test passi
- rifatta 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
quanto il design, l'architettura, la documentazione di supporto, e così via, non fanno parte di TDD. Esistono alcune "best practice" pratiche che puoi leggere, ma tieni presente che quelle sono le migliori pratiche nel workshop di qualcun altro , non nel tuo.
Si noti che il punto è che il cliente e lo sviluppatore escogano le caratteristiche e scrivano le storie e le descrizioni dei test insieme , per comprensione reciproca
così, con quella fuorimano, la domanda originale era:
what is the role of a software architect in TDD?
E la risposta breve è:
Same as it ever was, same as it ever was.
--David Byrne
EDIT: La risposta lunga è: l'architetto svolge i soliti ruoli visionario / investigatore / irritante / supporto / antiritorno durante l'intero processo, se necessario.
EDIT 2: scusa ho perso il punto delle sotto-domande! Tutti è responsabile della stesura delle specifiche; tutti gli sviluppatori incluso l'architetto se / quando appropriato più il cliente . Gli sviluppatori anche codificano i test.