• Contenu
  • Bas de page
logo ouidoulogo ouidoulogo ouidoulogo ouidou
  • Qui sommes-nous ?
  • Offres
    • 💻 Applications métier
    • 🤝 Collaboration des équipes
    • 🛡️ Sécurisation et optimisation du système d’information
    • 🔗 Transformation numérique
  • Expertises
    • 🖥️ Développement logiciel
    • ♾️ DevSecOps
    • ⚙️ Intégration de logiciels et négoce de licences
      • Atlassian : Jira, Confluence, Bitbucket…
      • Plateforme monday.com
      • GitLab
      • SonarQube
    • 📚​ Logiciel de CRM et de gestion
    • 🎨 UX/UI design
    • 🌐 Accessibilité Numérique
    • 🗂️​ Démarches simplifiées
    • 📝 Formations Atlassian
  • Références
  • Carrières
    • 🧐 Pourquoi rejoindre Ouidou ?
    • ✍🏻 Nous rejoindre
    • 👨‍💻 Rencontrer nos collaborateurs
    • 🚀 Grandir chez Ouidou
  • RSE
  • Ressources
    • 🗞️ Actualités
    • 🔍 Articles techniques
    • 📖 Livres blancs
    • 🎙️ Interviews Clients
Nous contacter
✕
Des regex qui ont la classe !
Des regex qui ont la classe !
12 novembre 2021
La Programmation Réactive
La Programmation Réactive
15 novembre 2021
Ressources > Articles techniques > Développement piloté par les tests et comportement (BDD et TDD)

Développement piloté par les tests et comportement (BDD et TDD)

Écrit par Abdourahmane Sow

schéma BDD

Avant de commencer à entrer dans le vif du sujet, je vais vous donner quelques raisons pour lesquelles il est important d’écrire des tests.

  1. Rédiger un meilleur code.
  2. Débogage plus facile.
  3. Minimiser les régressions.
  4. Refactoriser en toute confiance.
  5. Gagner plus de temps.

Le TDD c’est quoi ?

Le développement piloté par les tests (TDD) est une approche du développement logiciel dans laquelle vous écrivez d’abord des tests, puis utilisez ces tests pour piloter la conception et le développement de votre application logicielle.

Ce cycle est aussi connu sous le nom de Rouge Vert et Refactor

schéma TDD

Cycle Rouge-Vert-Refactor

L’approche du rouge, vert et refactorisation aide les développeurs à compartimenter leur attention en trois phases :

Rouge : Pensez à ce que vous voulez développer.

Vert : Réfléchissez à la façon de réussir vos tests.

Refactoriser : Réfléchir à la façon d’améliorer votre implémentation existante.

Processus de TDD

Il y a 5 étapes dans le flux TDD :

  1. Lisez, comprenez et traitez la demande de fonctionnalité.
  2. Traduisez l’exigence en écrivant un test unitaire. Si vous le lancez, le test unitaire s’exécutera et échouera car aucun code n’est encore implémenté.
  3. Rédigez et implémentez le code qui répond à l’exigence. Exécutez tous les tests et ils devraient réussir, sinon répétez cette étape.
  4. Nettoyez votre code en le refactorisant.
  5. Rincez, faire mousser et répéter.
schéma TDD

Les frameworks pour faire du TDD

Il existe beaucoup de framework pour faire du TDD. Je vais vous en citer quelques une :

JUnit : un framework de test de pour le langage JAVA.

PhpUnit : un framework de test pour Php

Selenium : un framework de test pour Python

Testing : un framework de test pour JAVA

Karma : un framework de test pour Javascript

BDD (Behavior Driven Development)

Le BDD est une approche de test dérivée de la méthodologie Test-Driven Development (TDD). Dans BDD, les tests décrivent le comportement du système. Dans la plupart des cas, l’ approche Given-When-Then est utilisée pour écrire des cas de test.

Pourquoi faire du BDD :

Le BDD a de nombreux avantages :

  • Encourager la collaboration entre les rôles pour construire une compréhension partagée du problème à résoudre.
  • Augmenter la rétroaction et le flux de valeur.
  • Produire une documentation système qui est automatiquement vérifiée par rapport au comportement du système.

Pour ce faire, il faut concentrer le travail collaboratif sur des exemples concrets et réels qui illustrent la façon dont nous voulons que le système se comporte. Nous utilisons ces exemples pour nous guider du concept à la mise en œuvre, dans un processus de collaboration continue.

BDD et agile

Le BDD ne remplace pas votre processus agile existant, il l’améliore.

Le BDD est comme un ensemble de plug-ins pour le processus existant. Il rendra l’équipe plus à même de tenir les promesses de l’agilité : des versions rapides et fiables de logiciels fonctionnels qui répondent aux besoins évolutifs de l’organisation, nécessitant des efforts de maintenance et de la discipline.

BDD en trois (3) pratiques

Essentiellement, le BDD est un processus itératif en trois étapes :

  1. Tout d’abord, prenez un petit changement à venir dans le système une User Story et parlez d’exemples concrets de la nouvelle fonctionnalité pour explorer, découvrir et convenir des détails de ce qui doit être fait.
  2. Ensuite, documentez ces exemples d’une manière qui peut être automatisée et vérifiez leur accord.
  3. Enfin, implémentez le comportement décrit par chaque exemple documenté, en commençant par un test automatisé pour guider le développement du code.

L’idée est de rendre chaque changement petit et d’itérer rapidement, en remontant d’un niveau chaque fois que vous avez besoin de plus d’informations. Chaque fois que vous automatisez et implémentez un nouvel exemple, vous ajoutez quelque chose de précieux à votre système et vous êtes prêt à répondre aux commentaires.

Nous appelons ces pratiques Découverte, Formulation et Automatisation.

Principes du framework BDD

Définissez les choses à tester

Exemple : Imaginons que l’on souhaite ajouter une fonctionnalité de commentaire pour l’application interne de Ouidou StarOuids pour permettre aux collaborateurs de Ouidou de laisser des avis.

Les fonctionnalités que nous pourrions tester :

  • la taille limite.
  • un commentaire vide.
  • si tout le monde a le droit de commenter.
  • etc.
schéma test

La syntaxe BDD

Les syntaxes seront souvent en anglais :Étant donné : Given
Quand : When
Alors : Then
Et : And

Exemple :

Vos scénarios doivent décrire le comportement prévu du système, pas la mise en œuvre. En d’autres termes, il doit décrire le quoi, pas comment.

Par exemple, pour un scénario d’authentification, vous devez écrire :

Étant donné que je visite "/login"
Quand j'entre "Abdou" dans le champ "nom d'utilisateur"
Et j'entre "testeur" dans le champ "mot de passe"
Et j'appuie sur le bouton "connexion"
Alors, je devrais voir la page "Accueil"

Envisagez un style plus déclaratif :

Une façon de rendre les scénarios plus faciles à maintenir est d’utiliser un style déclaratif. Le style déclaratif décrit le comportement de l’application, plutôt que les détails de l’implémentation. Les scénarios déclaratifs se lisent mieux. Un style déclaratif vous aide à vous concentrer sur la valeur que le client veut obtenir, plutôt que sur les frappes qu’il utilisera.

Les tests impératifs communiquent des détails et, dans certains contextes, ce style de test est approprié. D’autre part, parce qu’ils sont si étroitement liés à la mécanique de l’interface utilisateur actuelle, leur maintenance nécessite souvent plus de travail. Chaque fois que la mise en œuvre change, les tests doivent également être mis à jour.

Voici un exemple de fonctionnalité dans un style impératif :

Fonctionnalité : Gestion des droits dans l'application starOuids
 
Scénario : Les collaborateurs n'ayant pas les droits Étant donné qu'un utilisateur a un compte ouidou
Et qu'il se connecte avec ses identifiants valides
Et qu'il n'a pas un rôle admin
Alors il doit juste pouvoir consulter. Scénario : Les collaborateurs ayant les droits admins Étant donné qu'un utilisateur a un compte ouidou
Et qu'il se connecte avec ses identifiants valides
Et qu'il a un rôle admin
Alors il doit pouvoir créer, consulter , modifier , supprimer 

Faire du BDD et du TDD avec JIRA :

Il est possible de faire du BDD avec JIRA grâce aux plugins Xray ou AssertThat.

  1. Écrire des scénarios BDD dans Jira pour une collaboration facile :

Avec AssertThat au cœur du processus BDD, vous pouvez écrire les comportements pour une compréhension commune des users stories.

BDD TDD Jira

2. Intégration avec les frameworks d’automatisation des tests :

Accélérez l’automatisation des tests pour un retour rapide, avec les plugins, les API client et les intégrations (Jenkins, Gradle, Maven, Karate Framework et bien d’autres).

BDD TDD Jira

3. Suivre et analyser les résultats de l’automatisation des tests dans Jira

Pas besoin d’outils de reporting séparés, vos résultats de test sont réimportés dans Jira. Analysez facilement les tests ayant échoué, reliez les défauts et identifiez les tendances dans les résultats des tests automatisés pour une gestion des tests très efficace.

BDD TDD Jira

Différence entre TDD et BDD

J’ai essayé de résumer dans un tableau 5 différences clé en TDD et BDD

différence entre TDD BDD
BDD vs TDD

Conclusion

TDD et BDD sont deux méthodes qui peuvent parfaitement se combiner ensemble. Avec BDD, vous avez la possibilité de décrire le comportement de l’application et le TDD permettra de les transformer en des tests unitaires.

Pour aller plus loin

L’importance d’écrire les tests en amont :

Myth: “code must be tested by someone else”
… and thus, by dedicated testers

jp-lambert.me

Les différents outils de rédactions de spécifications exécutables :

Comparatif outils de rédaction de spécifications exécutables
Pour les démarches type ATDD, BDD, SpecByExample

jp-lambert.me

Source :
TDD vs BDD vs ATDD : Key Differences | BrowserStack
This guidepost aims to describe different testing methods or practices like Behavioral Driven Development (BDD)…

www.browserstack.com

BDD vs TDD – My Agile Partner Scrum
Quelle est la différence entre le TDD et la BDD (BDD vs TDD) ? Vous êtes nombreux à me poser cette question donc je…

blog.myagilepartner.fr

À lire aussi

Fresque numérique miniature image
16 avril 2025

Fresque du Numérique

Lire la suite

intelligence artificielle Ouicommit miniature image
17 mars 2025

Ouicommit – L’intelligence artificielle en entreprise, on y est ! 

Lire la suite

Image miniature Hackathon Women in Tech
13 mars 2025

Hackathon Women in Tech :  un engagement pour une tech plus inclusive 

Lire la suite

image miniature les nouveautés Atlassian
26 février 2025

Les nouveautés Atlassian en 2025

Lire la suite

Articles associés

Fresque numérique miniature image
16 avril 2025

Fresque du Numérique


Lire la suite
intelligence artificielle Ouicommit miniature image
17 mars 2025

Ouicommit – L’intelligence artificielle en entreprise, on y est ! 


Lire la suite
Image miniature Hackathon Women in Tech
13 mars 2025

Hackathon Women in Tech :  un engagement pour une tech plus inclusive 


Lire la suite

À propos

  • Qui sommes-nous ?
  • Références
  • RSE
  • Ressources

Offres

  • Applications métier
  • Collaboration des équipes
  • Sécurisation et optimisation du système d’information
  • Transformation numérique

Expertises

  • Développement logiciel
  • DevSecOps
  • Intégration de logiciels et négoce de licences
  • Logiciel de CRM et de gestion
  • UX/UI design
  • Accessibilité Numérique
  • Démarches simplifiées
  • Formations Atlassian

Carrières

  • Pourquoi rejoindre Ouidou ?
  • Nous rejoindre
  • Rencontrer nos collaborateurs
  • Grandir chez Ouidou

SIEGE SOCIAL
70-74 boulevard Garibaldi, 75015 Paris

Ouidou Nord
165 Avenue de Bretagne, 59000 Lille

Ouidou Rhône-Alpes
4 place Amédée Bonnet, 69002 Lyon

Ouidou Grand-Ouest
2 rue Crucy, 44000 Nantes

Ouidou Grand-Est
7 cour des Cigarières, 67000 Strasbourg

  • Linkedin Ouidou
  • GitHub Ouidou
  • Youtube Ouidou
© 2024 Ouidou | Tous droits réservés | Plan du site | Mentions légales | Déclaration d'accessibilité
    Nous contacter