Développement axé sur le comportement - Introduction

Le développement piloté par le comportement (BDD) est un processus de développement logiciel issu à l'origine du développement piloté par les tests (TDD).

Selon Dan North, qui est responsable de l'évolution de BDD, «BDD utilise des exemples à plusieurs niveaux pour créer une compréhension commune et faire apparaître l'incertitude pour fournir des logiciels qui comptent.»

BDD utilise des exemples pour illustrer le comportement du système qui sont écrits dans un langage lisible et compréhensible pour toutes les personnes impliquées dans le développement. Ces exemples comprennent -

  • Converti en spécifications exécutables.

  • Utilisé comme tests d'acceptation.

BDD - Principales caractéristiques

Le développement axé sur le comportement se concentre sur -

  • Fournir un processus partagé et des outils partagés favorisant la communication aux développeurs de logiciels, aux analystes commerciaux et aux parties prenantes pour collaborer au développement de logiciels, dans le but de fournir un produit à valeur commerciale.

  • Ce qu'un système doit faire et non la manière dont il doit être mis en œuvre.

  • Fournit une meilleure lisibilité et visibilité.

  • Vérifier non seulement le fonctionnement du logiciel mais aussi qu'il répond aux attentes du client.

Origine du BDD

Le coût de réparation d'un défaut est multiplié par plusieurs si le défaut n'est pas détecté au bon moment et corrigé au fur et à mesure de sa détection. Prenons l'exemple suivant.

Cela montre que si les exigences ne sont pas satisfaites correctement, il serait coûteux de corriger les défauts résultant d'une mauvaise compréhension des exigences à un stade ultérieur. De plus, le produit final peut ne pas répondre aux attentes du client.

Le besoin de l'heure est une approche de développement qui -

  • Est basé sur les exigences.

  • Se concentre sur les exigences tout au long du développement.

  • S'assure que les exigences sont respectées.

BDD est une approche de développement capable de répondre aux exigences susmentionnées. Ainsi, le développement axé sur le comportement -

  • Dérive des exemples de différents comportements attendus du système.

  • Permet d'écrire les exemples dans un langage utilisant les termes du domaine métier pour assurer une compréhension facile par toutes les personnes impliquées dans le développement, y compris les clients.

  • Obtient les exemples ratifiés avec le client de temps en temps au moyen de conversations.

  • Se concentre sur les exigences du client (exemples) tout au long du développement.

  • Utilise des exemples comme tests d'acceptation.

Pratiques BDD

Les deux principales pratiques de BDD sont -

  • Spécification par l'exemple (SbE)

  • Développement piloté par les tests (TDD)

Spécification par exemple

La spécification par l'exemple (SbE) utilise des exemples dans les conversations pour illustrer les règles métier et le comportement du logiciel à construire.

La spécification par l'exemple permet aux propriétaires de produits, aux analystes commerciaux, aux testeurs et aux développeurs d'éliminer les malentendus courants concernant les exigences de l'entreprise.

Développement piloté par les tests

Le développement piloté par les tests, dans le contexte de BDD, transforme les exemples en spécifications exécutables et lisibles par l'homme.

Les développeurs utilisent ces spécifications comme guide pour implémenter des incréments de nouvelles fonctionnalités. Cela se traduit par une base de code allégée et une suite de tests de régression automatisés qui maintiennent les coûts de maintenance bas tout au long de la durée de vie du logiciel.

BDD agile

Dans le développement de logiciels Agile, la méthode BDD est utilisée pour parvenir à une compréhension commune des spécifications en attente.

Les étapes suivantes sont exécutées dans Agile BDD -

  • Les développeurs et le propriétaire du produit écrivent en collaboration les spécifications en attente dans un éditeur de texte brut.

  • Le propriétaire du produit spécifie les comportements qu'il attend du système.

  • Les développeurs

    • Remplissez les spécifications avec ces détails de comportement.

    • Posez des questions en fonction de leur compréhension du système.

  • Les comportements actuels du système sont pris en compte pour voir si la nouvelle fonctionnalité cassera l'une des fonctionnalités existantes.

Manifeste Agile et BDD

Le Manifeste Agile déclare ce qui suit -

Nous découvrons de meilleures façons de développer des logiciels en le faisant et en aidant les autres à le faire. Grâce à ce travail, nous en sommes venus à valoriser -

  • Individuals and interactions - sur les processus et les outils

  • Working software - sur une documentation complète

  • Customer collaboration - sur la négociation de contrat

  • Responding to change - sur Suivre un plan

Autrement dit, bien qu'il y ait de la valeur dans les éléments de droite, nous valorisons davantage les éléments de gauche.

BDD s'aligne sur le manifeste Agile comme suit -

Manifeste Agile Alignement BDD
Les individus et les interactions sur les processus et les outils. BDD consiste à avoir des conversations.
Logiciel de travail sur une documentation complète. BDD s'efforce de faciliter la création de logiciels à valeur commerciale.
Collaboration client sur négociation de contrat. BDD se concentre sur des scénarios basés sur des idées avec une communication continue avec le client à mesure que le développement progresse. Il ne repose sur aucune promesse.
Répondre au changement au sujet d'un plan. BDD se concentre sur la communication et la collaboration continues qui facilitent l'absorption des changements.