J'ai donc fait des tests unitaires et j'ai de l'expérience dans l'écriture de tests, mais je n'ai pas complètement adopté TDD comme outil de conception.TDD: Où commencer le premier test?
Mon projet actuel consiste à retravailler un système existant qui génère des numéros de série dans le cadre du processus d'assemblage des entreprises. J'ai une compréhension du processus actuel et du flux de travail dû à l'examen du système existant. J'ai aussi une liste de nouvelles exigences et comment elles vont modifier le flux de travail. Je sens que je suis prêt à écrire le programme et j'ai décidé de me forcer à faire TDD du début à la fin.
Mais maintenant je n'ai aucune idée par où commencer. (Je me demande aussi si je triche le processus TDD en ayant déjà une idée du flux du programme pour l'utilisateur.)
Le flux utilisateur est vraiment en série et n'est qu'une série d'étapes. À titre d'exemple, serait la première étape:
-
utilisateur
- présente un numéro de commande de fabrication et reçoit une liste de références sérialisables de ce projet de loi de commandes de matériel
L'étape suivante est lancée lorsque l'utilisateur sélectionne l'un des numéros de pièce. Je pensais donc pouvoir utiliser cette première étape comme point de départ. Je sais que je veux un morceau de code qui prend un numéro de commande de fabrication et renvoie une liste de numéros de pièces. En lisant le livre d'exemples de Kent Becks, il parle de la sélection de petits tests. Cela semble être une assez grosse boîte noire. Cela va nécessiter un référentiel d'ordres mfg et je dois explorer une arborescence de structure de produit pour trouver tous les numéros de pièces applicables pour cette commande mfg et je n'ai même pas défini mon modèle de domaine dans le code.
Donc, d'une part, cela semble être un début de merde - une fonction très générale de haut niveau. D'un autre côté, j'ai l'impression que si je commence à un niveau inférieur, je ne fais que deviner ce dont j'ai besoin et qui semble anti-TDD.
En remarque ... est-ce que c'est comme ça que vous utiliseriez des histoires?
Comme un assembleur Je veux obtenir une liste des numéros de pièce sur un ordre Mfg Pour que je puisse choisir celui sérialiser
Pour être honnête, un assembleur ne dirait jamais que. Tout un assembleur veut est de terminer l'opération sur commande MFG:
Comme un assembleur Je veux marquer des pièces avec un numéro de série Afin que je puisse terminer l'opération de l'ordre de Mfg
Vous avez oublié la troisième partie de l'histoire, l'avantage. Vous avez également des détails de mise en œuvre là-dedans, qui n'apportent aucun avantage commercial (sérialisable). Je dirais qu'une meilleure histoire serait quelque chose comme "En tant qu'utilisateur, je veux soumettre un numéro de commande de fabrication et une liste de numéros de pièces de ces commandes afin que je puisse envoyer la liste au système d'inventaire". –
Serializable dans ce contexte n'est pas l'implémentation, c'est un terme de domaine qui indique quelles parties peuvent porter un numéro de série, donc c'est important (pour autant que je comprends les exigences). –
Si c'est le cas, vous avez raison. L'expertise du domaine est tout. –