« Introduction à TDD et BDD » : différence entre les versions

De Wiki Agile
Aucun résumé des modifications
Ligne 47 : Ligne 47 :
Le premier niveau est d'amener les développeurs, les testeurs et les gens du métier à se parler entre eux. C'est l'origine du BDD. Tous ceux qui pensent "nous faisons du BDD parce que nous utilisons "Given", "When", "Then" n'ont (souvent) pas compris. "Given", "When", "Then"  n'a rien à voir avec BDD. BDD signifie Behaviour-Driven Development (''développement piloté par le comportement'') et l'intention réelle est d'essayer de déterminer ce que votre client ou votre métier/entreprise attend du logiciel avant de commencer à travailler sur celui-ci. La première façon d'y parvenir est de réellement '''collaborer''' avec ces personnes.<br/>
Le premier niveau est d'amener les développeurs, les testeurs et les gens du métier à se parler entre eux. C'est l'origine du BDD. Tous ceux qui pensent "nous faisons du BDD parce que nous utilisons "Given", "When", "Then" n'ont (souvent) pas compris. "Given", "When", "Then"  n'a rien à voir avec BDD. BDD signifie Behaviour-Driven Development (''développement piloté par le comportement'') et l'intention réelle est d'essayer de déterminer ce que votre client ou votre métier/entreprise attend du logiciel avant de commencer à travailler sur celui-ci. La première façon d'y parvenir est de réellement '''collaborer''' avec ces personnes.<br/>
<br/>
<br/>
Le deuxième niveau, une fois que nous avons obtenu cette collaboration, c'est de la '''documenter''' d'une façon qui soit significative pour tous ceux qui l'examinent, qui pourraient y jeter un coup d'oeil plus tard et qui voudraient peut-être y apporter des commentaires. Généralement, cela se fait en utilisant un langage universel. Les gens utilisent souvent les mots "Given" (''étant donné''), "When" (''lorsque''), "Then" (''alors''), mais ce n'est pas nécessaire. L'idée est que nous avons collaboré et qu'il s'agit d'une compréhension partagée. Cela nous a permis de nous assurer qu'il y a un objectif de collaboration que nous essayons d'atteindre, et une fois que nous avons réussi à collaborer, cela vaut la peine d'essayer de le documenter de telle façon que personne n'ait besoin d'être dans la salle au même moment, pour que l'apprentissage partagé puisse être diffusé. Enfin, si cela convient à nos équipes et à nos projets, nous ''automatisons'' nos tests pour piloter le comportement.<br/>
Le deuxième niveau, une fois que nous avons obtenu cette collaboration, c'est de la '''documenter''' d'une façon qui soit significative pour tous ceux qui l'examinent, qui pourraient y jeter un coup d'oeil plus tard et qui voudraient peut-être y apporter des commentaires. Généralement, cela se fait en utilisant un langage universel. Les gens utilisent souvent les mots "Given" (''étant donné''), "When" (''lorsque''), "Then" (''alors''), mais ce n'est pas nécessaire. L'idée est que nous avons collaboré et qu'il s'agit d'une compréhension partagée. Cela nous a permis de nous assurer qu'il y a un objectif de collaboration que nous essayons d'atteindre, et une fois que nous avons réussi à collaborer, cela vaut la peine d'essayer de le documenter de telle façon que personne n'ait besoin d'être dans la salle au même moment, pour que l'apprentissage partagé puisse être diffusé. Enfin, si cela convient à nos équipes et à nos projets, nous '''automatisons''' nos tests pour piloter le comportement.<br/>
<br/>
<br/>
  ''Nous collaborons, nous documentons cette collaboration sous une forme de spécification, puis nous automatisons cette spécification pour faire piloter l'implémentation.''
  ''Nous collaborons, nous documentons cette collaboration sous une forme de spécification, puis nous automatisons cette spécification pour faire piloter l'implémentation.''