BDD vs TDD vs ATDD: différences clés
Ce guide vise à décrire différentes méthodes ou pratiques de test comme le développement piloté par le comportement (BDD), le développement piloté par les tests (TDD ), Développement piloté par les tests dacceptation (TDD). Cela aidera également à clarifier les principales différences entre ces techniques. À la fin de cet article, on sattend à ce que lon comprenne comment chaque méthode fonctionne, les différences clés et leurs rôles particuliers dans le processus de développement.
Commençons par le développement piloté par les tests.
Quest-ce que le développement piloté par les tests (TDD)?
Le développement piloté par les tests est une méthodologie de test ou une pratique de programmation implémentée du point de vue dun développeur. Dans cette technique, un ingénieur QA commence à concevoir et à écrire des cas de test pour chaque petite fonctionnalité dune application. Cette technique tente de répondre à une question simple – Le code est-il valide? Lintention principale de cette technique est de modifier ou décrire un nouveau code uniquement lorsque le test échoue. Par conséquent, il en résulte une moindre duplication des scripts de test. Cette technique est largement populaire dans les écosystèmes de développement agile. Dans une approche TDD, les scripts de test automatisés sont écrits avant les morceaux de code fonctionnels. La méthodologie TDD implique les étapes suivantes:
- Sur la base des exigences spécifiées dans les documents, un développeur écrit un cas de test automatisé
- Ces tests sont exécutés, et dans certains cas , ils échouent car ils sont développés avant le développement dune fonctionnalité réelle
- Léquipe de développement re-factorise ensuite le code pour que le test réussisse
Re-factorisation fait référence au processus de modification du code sans changer sa fonctionnalité ou son comportement principal.
Avantages du développement piloté par les tests:
- Aide à réduire le temps requis pour les retouches
- Aide à explorer les bogues ou les erreurs très rapidement
- Aide à obtenir des commentaires plus rapidement
- Encourage le développement de conceptions plus propres et de meilleure qualité
- Améliore la productivité du programmeur
- Permet à tout membre de léquipe de commencer à travailler sur le code en labsence dun membre spécifique de léquipe. Cela encourage le partage des connaissances et la collaboration
- Donne au programmeur la confiance nécessaire pour changer facilement la grande architecture dune application
- Résultats dans la création dun code complet, flexible et facile à maintenir
Maintenant, comprenons tout sur le développement axé sur le comportement.
Quest-ce que le développement axé sur le comportement (BDD)?
Le développement axé sur les affaires (BDD) est une approche de test dérivée de la méthodologie Test-Driven Development (TDD). Dans BDD, les tests sont principalement basés sur le comportement des systèmes. Cette approche définit différentes manières de développer une fonctionnalité en fonction de son comportement. Dans la plupart des cas, lapproche Donnée-Quand-Alors est utilisée pour écrire des cas de test. Prenons un exemple pour une meilleure compréhension:
- Étant donné que lutilisateur a saisi des informations de connexion valides
- Lorsquun utilisateur clique sur le bouton de connexion
- Puis afficher le message de validation réussi
Comme indiqué ci-dessus, le comportement est illustré dans une langue anglaise très simple, également appelée langue partagée. Cela aide tous les membres de léquipe responsable du développement à comprendre le comportement des fonctionnalités.
Par exemple, vous pouvez essayer dexécuter un test multi-navigateurs simple basé sur un ensemble dinstructions pour tester sur plusieurs appareils, comme indiqué dans le vidéo.
Essayez gratuitement les tests de navigateur sur Real Device Cloud
Principaux avantages de Behavioral-Driven Approche de développement:
- Aide à atteindre un public plus large en utilisant un langage non technique
- Se concentre sur la façon dont le système doit se comporter du point de vue du client et du développeur
- BDD est une technique rentable
- Réduit les efforts nécessaires pour vérifier tout défaut post-déploiement
Limage ci-dessous illustre une opération BDD typique:
Source de limage: Tutorialspoint
Comment BDD aide-t-il dans SDLC?
Déboguer les erreurs dans les dernières étapes du cycle de vie du développement savère souvent très coûteux ive. Dans la majorité des cas, lambiguïté dans la compréhension des exigences en est la cause profonde. Il faut sassurer que tous les efforts de développement restent alignés sur la satisfaction dexigences prédéterminées. BDD permet aux développeurs de faire ce qui précède:
- Permettant de définir les exigences dans une approche standard en utilisant un anglais simple
- Fournissant plusieurs façons dillustrer des scénarios du monde réel pour la compréhension exigences
- Fournir une plate-forme qui permet aux équipes techniques et non techniques de collaborer et de comprendre les exigences
Quest-ce que le développement basé sur les tests dacceptation?
Dans la technique de développement piloté par les tests dacceptation (ATDD), un seul test dacceptation est rédigé du point de vue de lutilisateur.Il se concentre principalement sur la satisfaction du comportement fonctionnel du système. Cette technique tente de répondre à la question – Le code fonctionne-t-il comme prévu?
Cette technique améliore la collaboration entre les développeurs, les utilisateurs et les services dassurance qualité avec un objectif commun sur la définition des critères dacceptation. Voici quelques-unes des pratiques clés dATDD:
- Analyser et discuter des scénarios du monde réel
- Décider des critères dacceptation pour ces scénarios
- Automatiser les cas de test dacceptation
- Se concentrer sur le développement de ces cas dexigences
Avantages dATDD
- Les exigences sont très clairement analysées sans toute ambiguïté
- Encourage la collaboration entre les membres de plusieurs équipes
- Le test dacceptation sert de guide pour lensemble du processus de développement
Différences clés: TDD vs BDD vs ATDD
Paramètres | TDD | BDD | ATDD |
Définition | TDD est une technique de développement qui se concentre davantage sur limplémentation dune fonctionnalité | BDD est une technique de développement qui se concentre sur le comportement du système | ATDD est une technique similaire à BDD se concentrant davantage sur la capture des exigences |
Participants | Développeur | Développeurs, client, QA | Développeurs, clients, QA |
Langue utilisée | Écrit dans un langage similaire à celui utilisé pour le développement de fonctionnalités (ex. Java, Python, etc.) | Anglais simple, (Gherkin) | Anglais simple, Gherkin |
Objectif principal | Tests unitaires | Comprendre les exigences | Rédaction de tests dacceptation |
Outils utilisés | JDave, concombre , JBehave, Spec Flow, BeanSpec, Gherkin Concordian, FitNesse | Gherkin, Dave, Cucumber, JBehave, Spec Flow, BeanSpec, Concordian | TestNG, FitNesse, EasyB, Spectacular, Concordian, Thucydides |
Comprendre le fonctionnement de ces méthodes peut aider les développeurs et autres personnes impliquées dans les logiciels développement déterminer quelle stratégie fonctionne le mieux pour atteindre leur objectif. Selon le type de projet et les résultats quil vise à atteindre, la bonne méthode (ou même une combinaison de méthodes) peut être déployée pour répondre à des exigences spécifiques de la manière la plus efficace.