Publicité
Publicité

Contenu connexe

Similaire à Introduction au développement piloté par le comportement avec Behat(20)

Publicité

Introduction au développement piloté par le comportement avec Behat

  1. Communiquer en informatique Le développement piloté par le comportement avec Behat
  2. 2 En face de vous ● Jean-François Lépine ● Consultant PHP chez Alter Way ● Secrétaire de l'AFUP (association française des utilisateur de PHP) ● @Halleck45 ● http://blog.lepine.pro ● http://industrialisation-php.com
  3. 3 Jeu concours : qui a déjà entendu ... “Techniquement et fonctionnellement, c'est super ! En plus on est largement dans les temps” “Génial ! C'est exactement ce à quoi je pensais, il n'y a rien à reprendre” “Ah oui, je me souviens bien : c'est en page 8 de l'annexe 2 des spécifications fonctionnelles détaillées”
  4. 4 Il était une fois... ● “J'ai besoin d'une voiture pour des petits trajets, aller au travail et transporter ma famille” Le client n'a pas eu ce qu'il voulait Et en plus il a perdu de l'argent
  5. 5 La vision du Produit ● Est fournie par le Product Owner ● Sert une philosophie ● (souvent mercantile) ● Est le Guide suprême du Projet
  6. 6 La Vision GMail Vision Permettre à chacun de communiquer et s'exprimer Produit ● webmail ● Babel ● Hangouts ● app. android ● like ● ... ● Google+ ● gTalk ● api
  7. 7 Une langue commune ● Eviter les ambiguïtés ● Est élaborée en commun ● Est parlée par tous ● Glossaire du projet “Ubiquitous Language”
  8. 8 La fonctionnalité ● Est unique ● Se distingue des autres fonctionnalités ● Peut appartenir à un lot fonctionnel ● Est fournie par le Product Owner ● Est exprimable
  9. 9 La fonctionnalité Un titre explicite : Un acteur : Une interaction : Un bénéfice fonctionnel : Fonctionnalité: Titre clair et simple En tant que rôle de l'utilisateur Je peux réaliser quelque chose Afin de obtenir un super bénéfice
  10. 10 La fonctionnalité Fonctionnalité: acheter un chiot   En tant que client du magasin   Je peux acheter un chiot   Afin de avoir un compagnon     tout mignon (ou pas ^^)
  11. 11 Le scénario ● Doit être établi en commun ● Doit (vraiment) être établi en commun ● Représente les différents comportements possibles de l'utilisateur avec le Produit ● Se distingue clairement et facilement
  12. 12 Le scénario Un titre: ● Un contexte Un déclencheur : Un résultat attendu : Étant donné que un contexte initial Quand je fais quelque chose Alors j'obtiens un résultat Scénario: titre clair et explicite
  13. 13 Le scénario Fonctionnalité: acheter un chiot   (…)   Scénario: acheter un chiot trop jeune        Etant donné qu'un chiot est trop jeune pour être vendu     Quand j'essaye de l'acheter     Alors je suis informé que c'est impossible
  14. 14 ATDD is not BDD ! ● On devait communiquer, pas fournir des critères d'acceptation Fonctionnalité: acheter un chiot   (…)   Scénario: acheter un chiot trop jeune        Etant donné que Médor a 2 mois       Et qu'un chiot ne peut être vendu avant qu'il        n'ait 5 mois     Quand j'essaye d'acheter Médor     Alors je suis informé que «Médor est encore trop        jeune pour être vendu»
  15. 15 Des assistants visuels
  16. Bonus Automatisez !
  17. 17 Le test applicatif Contrat Qui Avec Code source / Information fonction PHPUnit, atoum Objets / objets classes, paquets Interfaces, PHPSpec Utilisateur / UI Interface graphique Selenium Utilisateur / Produit Produit délivré Behat
  18. 18 Behat ● Outil PHP ● Réalisé par @everzet ● Portage de Cucumber ● Génial ! Permet d'automatiser la recette fonctionnelle
  19. 19 Installation ● Très simple : $ vim composer.json ­­­­ {      "require": {          "behat/behat": "2.4.*@stable"      },      "config": {          "bin­dir": "bin/"      } } ­­­­ $ curl http://getcomposer.org/installer | php $ php composer.phar install ­­prefer­source
  20. 20 Utilisation ● Encore plus simple : ● Il suffit de créer le fichier features/acheter-un-chiot.feature : $ ./vendor/bin/behat Fonctionnalité: acheter un chiot   (…)   Scénario: acheter un chiot trop jeune        (…)
  21. 21 Utilisation ● À vous de traduire, en PHP, chaque étape :
  22. 22 Traduction ● Fichiers PHP de ”Contexte” L'expression régulière fait le lien entre l'expression et le code PHP
  23. 23 Succès ! ● Tout s'est bien passé
  24. 24 Dans la vraie vie ● On peut exécuter des tests dans un vrai navigateur ● Chrome, Firefox... ● Goutte, Sahi, Selenium... ● Grâce à l'extension Mink  {      "require": {              (...)              "behat/mink": "1.4@stable"      } }
  25. 25 Retours d'expérience ● Behat est très riche (extensions, communautés...) ● Behat n'est qu'un outil ● Il est facile de partir dans la mauvaise direction : ● Il faut un Product Owner ● Behat ne se substitue pas aux tests unitaires
  26. 26 Retours d'expérience ● Relativement rapide à maîtriser ● temps d'investissement moyen ● nécessite un peu de motivation ● Extrêmement bénéfique pour la communication de l'équipe ● Très bénéfique pour les recettes ● Change la vie !
  27. 27 Questions ● @Halleck45 ● http://blog.lepine.pro (série de billets sur Behat) ● http://behat.org
Publicité