Développement axé sur le comportement - Outils

Les équipes de développement ont souvent une idée fausse que BDD est un framework d'outils. En réalité, BDD est une approche de développement plutôt qu'un cadre d'outils. Cependant, comme dans le cas d'autres approches de développement, il existe également des outils pour le BDD.

Plusieurs BDD Tools sont utilisés pour différentes plates-formes et langages de programmation. Ils sont -

  • Concombre (cadre Ruby)

  • SpecFlow (cadre .NET)

  • Behave (cadre Python)

  • JBehave (framework Java)

  • JBehave Web (framework Java avec intégration Selenium)

  • Laitue (cadre Python)

  • Concordion (framework Java)

  • Behat (cadre PHP)

  • Kahlan (cadre PHP)

  • DaSpec (cadre JavaScript)

  • Jasmine (cadre JavaScript)

  • Cucumber-js (cadre JavaScript)

  • Squish GUI Tester (outil de test BDD GUI pour JavaScript, Python, Perl, Ruby et Tcl)

  • Spock (cadre Groovy)

  • Yadda (prise en charge du langage Gherkin pour des frameworks tels que Jasmine (framework JavaScript))

Concombre

Cucumber est un outil gratuit pour les spécifications exécutables utilisé dans le monde entier. Cucumber permet aux équipes de développement de logiciels de décrire comment le logiciel doit se comporter en texte brut. Le texte est rédigé dans un langage métier et spécifique au domaine et sert de documentation, de tests automatisés et d'aide au développement, le tout dans un seul format. Vous pouvez utiliser plus de quarante langues parlées différentes (anglais, chinois, etc.) avec le concombre.

Concombre - Principales caractéristiques

Les principales caractéristiques du concombre sont les suivantes -

  • Le concombre peut être utilisé pour les spécifications exécutables, l'automatisation des tests et la documentation vivante.

  • Cucumber fonctionne avec les applications Ruby, Java, NET, Flex ou Web écrites dans n'importe quelle langue.

  • Le concombre prend en charge des tests plus succincts dans les tableaux - similaires à ce que fait FIT.

  • Cucumber a révolutionné le cycle de vie du développement logiciel en fusionnant les exigences, les tests automatisés et la documentation en un seul cohérent: des spécifications exécutables en texte brut qui valident le logiciel.

SpecFlow

SpecFlow est un outil BDD pour la plate-forme .NET. SpecFlow est un projet open source. Le code source est hébergé sur GitHub.

SpecFlow utilise la syntaxe Gherkin pour les fonctionnalités. Le format Gherkin a été introduit par Cucumber et est également utilisé par d'autres outils. Le langage Gherkin est maintenu en tant que projet sur GitHub -https://github.com/cucumber/gherkin

Se comporter

Behave est utilisé pour le framework Python.

  • Behave fonctionne avec trois types de fichiers stockés dans un répertoire appelé «features» -

    • des fichiers de fonctionnalités contenant vos scénarios de comportement.

    • Répertoire «steps» avec les implémentations d'étapes Python pour les scénarios.

    • En option, certains contrôles environnementaux (code à exécuter avant et après les étapes, les scénarios, les fonctionnalités ou tout le match de tir).

  • Les fonctionnalités Behave sont écrites en utilisant Gherkin (avec quelques modifications) et sont nommées «name.feature».

  • Les balises attachées à une fonctionnalité et un scénario sont disponibles dans les fonctions d'environnement via l'objet «fonctionnalité» ou «scénario» qui leur est passé. Sur ces objets, il y a un attribut appelé «balises» qui est une liste des noms de balises attachés, dans l'ordre où ils se trouvent dans le fichier d'entités.

  • Modifications à la norme Gherkin -

    • Behave peut analyser les fichiers Gherkin standard et étend Gherkin pour autoriser les mots-clés d'étape en minuscules, car ils peuvent parfois permettre des spécifications de fonctionnalités plus lisibles

Salade

La laitue est un outil BDD très simple basé sur le concombre. Il peut exécuter des descriptions fonctionnelles en texte brut en tant que tests automatisés pour les projets Python. La laitue vise les tâches les plus courantes sur BDD.

Concordion

Concordion est un outil open source pour automatiser la spécification par exemple pour Java Framework.

Bien que les fonctionnalités de base soient simples, l' API du framework d'extension Powerful vous permet d'ajouter des fonctionnalités, telles que l'utilisation de feuilles de calcul Excel comme spécifications, l'ajout de captures d'écran à la sortie, l'affichage des informations de journalisation, etc.

Concordion vous permet d'écrire les spécifications dans un langage normal en utilisant des paragraphes, des tableaux et une ponctuation appropriée et le langage structuré utilisant Donné / Quand / Alors n'est pas nécessaire.

Concordion a été porté dans d'autres langues, notamment -

  • C # (Concordion.NET)

  • Python (PyConcordion)

  • Rubis (Rubis-Concordion)