Le développement piloté par les tests consiste à écrire des tests pour définir les spécifications du programme
Vous n'écrivez pas de tests pour définir la spécification, les descriptions de test, les user stories et les descriptions de fonctionnalités sont la spécification, dans le sens des «arbres morts».
En résumé, le processus TDD en bref est:
- définir un projet en termes de fonctionnalités
- décrire les parties prenantes, le comportement et l'objectif de chaque fonctionnalité à l'aide de user stories
- spécifier les données attendues, les événements / conditions de déclenchement et les comportements / résultats associés à une user story à l'aide de descriptions de test [et ceci complète la «spécification»]
- choisissez un ensemble de fonctionnalités pour chaque itération; les itérations doivent être courtes [j'omets les étapes de planification et d'estimation par souci de concision]
- coder un test pour une fonctionnalité (il échouera, mais vous deviez prendre des décisions d'API pour coder le test)
- implémenter suffisamment la fonctionnalité pour que le test réussisse
- refactoriser le code si nécessaire
- répéter avec le prochain test jusqu'à ce que la fonctionnalité soit terminée
- répéter avec la fonction suivante jusqu'à la fin de l'itération
- répéter avec l'itération suivante jusqu'à la fin du projet
la quantité de conception, d'architecture, de documentation de support, etc. que vous choisissez de faire ne fait pas partie de TDD. Il existe certaines «meilleures pratiques» pratiques sur lesquelles vous pouvez lire, mais gardez à l'esprit que ce sont les «meilleures» pratiques dans l'atelier de quelqu'un d'autre , pas la vôtre.
notez que le point est pour le client et le développeur de proposer les fonctionnalités et d'écrire les histoires et les descriptions de test ensemble , pour une compréhension mutuelle
donc, avec cela à l'écart, la question initiale était:
quel est le rôle d'un architecte logiciel dans TDD?
Et la réponse courte est:
La même chose que jamais, la même chose que jamais. - David Byrne
EDIT: La réponse longue est: l'architecte joue les rôles habituels de visionnaire / investigateur / irritant / support / backstop pendant tout le processus, si nécessaire.
EDIT 2: désolé d'avoir raté le point des sous-questions! Chacun est responsable de la rédaction des spécifications; tous les développeurs, y compris l'architecte, le cas échéant, plus le client . Les développeurs codent également les tests.