BeHat vous connaissez ? (BDD en php)

Behat Logo BDD ATDD Agile PHP

Aujourd’hui, je cherchais un peu de doc sur les tests d’acceptation que doivent écrire nos chers Product Owners pour chaque User Story et notamment le formalisme que doit prendre chaque test écrit par les Product Owners avant de les coder réellement.

C’est ce qu’on appelle une approche ATDD (acceptance tests driven development).

Je savais, de plus, que Claude Aubry préconisait un template d’écriture pour les Product Owners qui a fait ses preuves dans divers projets et qui est, si j’ai bien compris, dérivé d’un logiciel appelé Cucumber :

Etant donné la tâche Analyser dans le projet P, tâche qui est déjà prise, et le rôle Analyste joué par le participant Paulo sur P,
Quand Paulo prend la tâche Analyser…,
Alors la tâche Analyser ne lui est pas associée et un message lui explique qu’il ne peut pas prendre une tâche déjà prise.

(https://www.aubryconseil.com/post/2007/05/23/231-formaliser-les-criteres-d-acceptation)

En cherchant un peu je découvre que cette notation s’appelle le Gherkin et que cette approche se nomme le BDD (behavior driven development)

Maintenant, voici le plus intéressant, je savais que des outils étaient capables de transformer les tests écrit en Gherkin en langage python, ruby et autres langages tels que du PHP aussi, notamment à travers des outils appelé RobotFramework de façon générique, et Cucumber pour le Ruby par exemple (si vous arrivez à me suivre, vous vous dites normal, puisqu’on a dis plus haut que cette notation venait de ce logiciel ;)).

Ce que je ne savais alors pas c’est qu’il existe un nouvel outil dédié au BDD en PHP et qui s’appelle BeHat (https://behat.org/). Alors me direz-vous quel intérêt s’il en existe déjà d’autres tels que RobotFramework ? Eh bien c’est simple :

Behat est inspiré du projet Cucumber et notamment concernant le Gherkin. Il fonctionne comme Cucumber avec des fichiers d’entrée et des données de sorties sur la console, sauf que son core est développé en pure php sous framework Symfony2 ! Autant dire que pour tous les projets sous Symfony2 l’intégration est parfaite à travers un bundle existant et même sur Symfony 1.4, ils ont crée un plugin pour pouvoir l’utiliser.

Je vais effectuer quelques tests avec cet outil, et s’il est simple d’utilisation et ne comporte pas de difficultés d’écriture comme sous RobotFramework, je vais sans doute commencer à l’utiliser dans mes futurs projets et à le recommander dans les propales que j’écris !

Je vous tiens au courant, mais si vous avez déjà touché à cet outil, n’hésitez pas à m’en informer en commentaire. Tout les retours d’expérience sont bons à prendre.

A bientôt sur coffee-meeting ! 😉

Ecrit par André De Sousa

Coach Agile et Fondateur de The Valley, je me consacre aujourd'hui à accompagner les organisations et équipes dans leur transformation agile, tout en organisant des Learning Expeditions, et des Startups Bootcamps en Californie pour aider les étudiants entrepreneurs à passer de l'idée à l'action dans des environnements dynamiques et inspirants. Fort de plus de 15 ans d'expérience dans la tech, dont 14 dédiés à l'agilité, j'ai eu l'opportunité de coacher, mentoré et animé une vingtaine d'équipes adeptes de Scrum, XP ou Kanban, tout en soutenant des entreprises dans leurs défis de transformation. Mon expérience inclut également une "fail startup" avec Vivalur qui nourrit ma mission : guider les entrepreneurs pour éviter les erreurs communes et maximiser leurs chances de succès. Aujourd'hui, je combine mon expertise en agilité, innovation et entrepreneuriat pour aider les équipes et les étudiants entrepreneurs à réinventer leurs pratiques, bâtir des produits de valeur, et embrasser le changement avec confiance.

4 Commentaires

  1. Bonjour !

    J’utilise également Behat pour la gestion des tests de notre ERP. C’est un outil intéressant, mais pour ma part l’efficacité n’était pas au RDV lors de mes premiers scénarios ! Il y a je trouve beaucoup de pièges à éviter, car facilement les scénarios ne passent pas, même si aucun bug n’est présent (conditions de départ différentes, etc.).

    Bonne continuation dans la découverte et l’utilisation de cet outil si cela fait toujours partie de vos projets !

    Au plaisir de vous lire

    Frédéric

  2. Bonjour Frédéric,

    En-effet, L’utilisation de Behat fait toujours partie de mes projets, je prends note des informations que vous me livrez ici et je vous ferais un retour d’expérience lorsque j’aurais l’occasion de m’en servir de façon plus approfondie.

    Encore merci pour les données que vous nous faites parvenir.

Trackbacks

  1. […] d’acceptation, je vous en ai déjà parlé dans un précédent article, je compte utiliser Behat qui s’intègre très facilement à […]

  2. […] dans le développement logiciel de qualité !N’hésites pas à relire cette relique autour de Behat et l’ATDD en 2012 … mis à jour en 2016 💪 […]

Partager vos opinions ! Laisser un Commentaire

XHTML TAGS AUTORISES

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Vous avez aimé ? Vous aimerez aussi...