Je suis un peu un ardent défenseur de la méthodologie de développement conduit par le comportement (alias BDD). J'applique BDD depuis quelques années maintenant, et j'ai adopté StoryQ comme cadre de choix lors du développement d'applications DotNet. Même si je fais des tests unitaires depuis de nombreuses années et que je suis passé auparavant à une approche de test d'abord, j'ai constaté que j'obtiens beaucoup plus de valeur en utilisant un cadre BDD, car mes tests capturent l'intention des exigences de manière relativement l'anglais clair dans mon code, et parce que mes tests peuvent exécuter plusieurs assertions sans terminer le test à mi-chemin - ce qui signifie que je peux voir quelles assertions spécifiques passent / échouent en un coup d'œil sans déboguer pour le prouver.
Cela a vraiment été la pointe de l'iceberg pour moi, car j'ai également remarqué que je suis en mesure de déboguer le code de test et de mise en œuvre de manière plus ciblée, avec pour résultat que ma productivité a considérablement augmenté et que je peux plus déterminer facilement où un échec se produit si un problème survient pour se rendre à la génération d'intégration en raison de la sortie qui fait son chemin dans les journaux de génération. De plus, l'API StoryQ a une belle syntaxe fluide qui est facile à apprendre et qui peut être appliquée d'un nombre extraordinaire de façons, ne nécessitant aucune dépendance externe pour l'utiliser.
Donc, avec tous ces avantages, vous penseriez qu'il est facile de présenter le concept au reste de l'équipe. Malheureusement, les autres membres de l'équipe hésitent même à regarder StoryQ pour l'évaluer correctement (sans parler de l'idée d'appliquer BDD), et se sont convaincus mutuellement d'essayer de supprimer un certain nombre d'éléments StoryQ de notre propre cadre de test de base, même bien qu'ils aient initialement pris en charge l'utilisation de StoryQ, et même si le code qu'ils souhaitent supprimer n'affecte aucune autre partie de notre système de test. Cela finirait par augmenter considérablement ma charge de travail dans l'ensemble et va vraiment à contre-courant, car je suis convaincu par l'expérience pratique que c'est une meilleure façon de travailler en testant d'abord dans notre environnement de travail particulier, et ne peut que conduire à une plus grande améliorations de la qualité de nos logiciels, étant donné que je ' ai trouvé plus facile de s'en tenir au test en utilisant d'abord BDD. Pour clarifier davantage, la majorité des tests unitaires que nous avons tendance à être assez fragiles et difficiles à maintenir, un résidu d'années de tests mal appliqués où une réticence à s'en tenir à un processus piloté par les tests a vu les développeurs se replier sur leurs vieilles habitudes et faire tous leurs tests à la fin du projet (ces mêmes personnes se disent Agiles!).
La question se résume donc vraiment à ce qui suit:
- Quels arguments puis-je utiliser pour vraiment faire comprendre qu'il serait préférable pour cette équipe d'utiliser StoryQ, ou tout au moins d'adopter la méthodologie BDD?
- Pouvez-vous me signaler des preuves anecdotiques que je peux utiliser pour étayer mon argument en faveur de l'adoption du BDD comme méthode de choix standard?
- Quels contre-arguments pouvez-vous penser qui pourraient suggérer que mon souhait d'encourager l'équipe à adopter le BDD pourrait être une erreur? Oui, je suis heureux d'avoir tort, à condition que l'argument soit valable.
REMARQUE : je ne préconise pas que nous réécrivions nos tests dans leur intégralité, mais plutôt de simplement commencer à travailler d'une manière différente pour tous les futurs travaux de test, et de préférence de la manière dont nous engageons nos clients.
Et pour ceux d'entre vous qui souhaitent en savoir plus sur BDD, les liens suivants peuvent être utiles:
- http://dannorth.net/introducing-bdd/
- http://en.wikipedia.org/wiki/Behaviour_driven_development
- http://behaviour-driven.org/Introduction
Pour ceux intéressés par plus de détails, nous sommes une petite équipe de 4 travaillant sur environ 5 grands projets. L '"essai pilote" pour le BDD a duré environ 2 mois au départ, suivi d'une autre période d'environ 4 mois. L'équipe a accepté que je continue de travailler de cette façon et devait faire ses propres essais. Je fais du BDD depuis environ 2 ans maintenant depuis la fin du procès, tandis que les autres sont devenus très bons pour esquiver le problème. Plutôt que de forcer une "confrontation" sur la question, je cherche des moyens de persuader doucement l'équipe de sortir de son derrière collectif et de prendre le temps de faire sa part.