Question

J'ai récemment entendu parler de BDD et je l'ai trouvé très similaire au TDD.

Lequel de ces deux utilisez-vous (le cas échéant)?

et quels sont les avantages et les inconvénients de chacun?

Était-ce utile?

La solution

Je suis très bien du BDD = TDD fait correctement le camp. Si vous pratiquez le TDD tel que décrit à l'origine par Beck - et pratiqué par beaucoup -, il n'y a pratiquement aucune différence.

BDD apporte à la table quelques variantes intéressantes du langage utilisé pour décrire le processus. En utilisant une terminologie différente dans les descriptions du processus et des outils, les gens de BDD espèrent encourager de meilleures pratiques - un objectif louable.

Je fais du TDD depuis si longtemps maintenant, il m'est difficile de juger si cela aide réellement. Je pense (espère :-) que j'ai déjà appris bon nombre des leçons que les outils / langages de BDD encouragent, de sorte qu'elles ne semblent pas apporter beaucoup de valeur supplémentaire pour moi. Bien sûr, YMMV - et je n’ai pas fait tout un "monde réel". projet en utilisant des outils BDD - je risque donc de prendre mes expériences personnelles et d’extrapoler trop loin.

Je devrais deviner que les outils / langages de BDD pourraient être plus utiles aux personnes initiées à cette approche du développement, car elles évitent toute confusion avec "test". être utilisé dans le sens plus traditionnel. Je ne l'ai pas encore fait moi-même - et je serais intéressé si les gens d'ici avaient vécu une telle expérience.

Autres conseils

BDD est similaire à TDD mais avec un état d’esprit différent. Dans BDD, vous essayez de créer des spécifications exécutables au lieu de tests. Ceci est principalement accompli en utilisant un vocabulaire différent mais des mécanismes similaires à ceux du TDD.

BDD semble être une réaction à un grand nombre de cas dans lesquels des personnes ont prétendu faire du TDD mais écrivent des tests d’intégration au lieu de tests unitaires. Les gens de BDD pensaient que parler de tests était trompeur et les tests sont donc devenus des spécifications. Cela semble un peu métaphysique, mais il y a quelques bonnes idées derrière cela.

BDD s’appuie sur l’exécution des scénarios. Comme dans TDD, nous allons tester chaque scénario comme une histoire.

L’histoire sera expliquée par le client. Sur la base du scénario, les scénarios seront écrits. Des outils tels que CUCUMBER facilitent la rédaction de scénarios.

TDD et BDD sont à peu près les mêmes. La différence réside dans la manière dont nous l'expliquons et, par conséquent, dans quelle mesure les équipes réussissent à le faire fonctionner pour elles.

BDD s’appuie sur le TDD pour formaliser les bonnes habitudes des meilleurs praticiens du TDD. TDD est un outil ou un guide pour les développeurs permettant d’écrire un bon logiciel, et BDD est un bon outil pour aider les personnes extérieures au développement à participer davantage au développement des entreprises, car il est développé dans un langage omniprésent.

D'après mon expérience, BDD facilite la collaboration et l'utilisation de spécifications lisibles pour l'entreprise et exécutables permet de créer un langage partagé lorsque tous les membres de l'équipe participent à la rédaction d'une documentation décrivant les tâches que le système doit effectuer. Cela aide l’ensemble de l’équipe à apprendre ensemble la langue du domaine.

BDD, c’est ce qu’il faut pour réussir le TDD.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top