Si je comprends bien, le développement piloté par les tests consiste à écrire des tests pour définir les spécifications du programme (vous pouvez me corriger si je me trompe).
S'il y a quelqu'un responsable de la rédaction des spécifications (y compris une API publique) pour le logiciel (appelons-le l'architecte logiciel), cela signifie-t-il que l'architecte logiciel doit écrire tous les tests?
Ou l'architecte logiciel écrit-il les spécifications, puis les remet-il aux développeurs pour qu'ils écrivent les tests?
Ou autorisez-vous les spécifications à croître de manière organique en permettant à tous les développeurs d'écrire leurs propres tests et d'oublier d'avoir un architecte logiciel?
architecture
tdd
Robert Harvey
la source
la source
Réponses:
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:
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:
Et la réponse courte est:
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.
la source
L'architecte logiciel n'écrit pas tous les tests. Ce serait mettre trop sur les épaules d'une personne à mon avis.
L'architecte logiciel doit être capable de dessiner un formulaire initial pour l'API que les développeurs écrivent ensuite des tests pour cela et puis construire l'API. Cependant, l'architecte logiciel peut avoir diverses normes de code qui ne sont pas nécessairement testables, par exemple la documentation ou les conventions de dénomination. Il est également possible que l'API initiale manque certains appels. Au fur et à mesure de la mise en œuvre, de nouveaux appels sont ajoutés à l'API. Ainsi, l'API connaîtra une croissance organique à mesure que la base de code se développera, mais le rôle de l'architecte est de fournir des directives de haut niveau et de s'assurer qu'elles sont suivies.
Il peut certainement y avoir des cas où une équipe peut décider de ne pas avoir d'architecte logiciel, mais en fonction de l'échelle de l'API et de la société impliquée, cela peut ou non être une bonne idée.
la source