BeHat vous connaissez ? (BDD en 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.

(http://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 (http://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 ! 😉

Partager cet article:

Ecrit par André De Sousa

Je suis un coach Agile ayant plus de 7 années d'expérience. J'ai coaché/mentoré/aidé plus d'une vingtaine d'équipes faisant du Scrum, XP ou du Kanban depuis mes débuts en agilité ainsi que des organisations en pleine transformation agile. Enfin, avec une "fail startup" à mon actif, j'aide les entrepreneurs qui se lancent pour leur éviter de reproduire mes propres erreurs. Actuellement Coach Agile / Formateur / Scrum Master / Hackathon Organizer chez Valtech France.

3 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 à […]

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...