• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Introduction au développement piloté par le comportement avec Behat
 

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

on

  • 373 views

 

Statistics

Views

Total Views
373
Views on SlideShare
373
Embed Views
0

Actions

Likes
0
Downloads
3
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

    • Communiquer eninformatiqueLe développement piloté par le comportement avec Behat
    • 2En face de vous●Jean-François Lépine●Consultant PHP chez Alter Way●Secrétaire de lAFUP (association française des utilisateur de PHP)●@Halleck45●http://blog.lepine.pro●http://industrialisation-php.com
    • 3Jeu concours : qui a déjà entendu ...“Techniquement et fonctionnellement, cestsuper ! En plus on est largement dans lestemps”“Génial ! Cest exactement ce à quoi jepensais, il ny a rien à reprendre”“Ah oui, je me souviens bien : cest en page 8de lannexe 2 des spécificationsfonctionnelles détaillées”
    • 4Il était une fois...●“Jai besoin dune voiture pour des petits trajets, aller autravail et transporter ma famille”Le client na pas eu ce quil voulait Et en plus il a perdu de largent
    • 5La vision du Produit●Est fournie par le Product Owner●Sert une philosophie●(souvent mercantile)●Est le Guide suprême du Projet
    • 6La Vision GMailVisionPermettre à chacun de communiquer et sexprimerProduit●webmail●Babel●Hangouts●app. android●like●...●Google+●gTalk●api
    • 7Une langue commune●Eviter les ambiguïtés●Est élaborée en commun●Est parlée par tous●Glossaire du projet“Ubiquitous Language”
    • 8La fonctionnalité●Est unique●Se distingue des autres fonctionnalités●Peut appartenir à un lot fonctionnel●Est fournie par le Product Owner●Est exprimable
    • 9La fonctionnalitéUn titre explicite :Un acteur :Une interaction :Un bénéfice fonctionnel :Fonctionnalité: Titre clair et simpleEn tant que rôle de lutilisateurJe peux réaliser quelque choseAfin de obtenir un super bénéfice
    • 10La 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 ^^)
    • 11Le scénario●Doit être établi en commun●Doit (vraiment) être établi en commun●Représente les différents comportements possibles delutilisateur avec le Produit●Se distingue clairement et facilement
    • 12Le scénarioUn titre:●Un contexteUn déclencheur :Un résultat attendu :Étant donné que un contexte initialQuand je fais quelque choseAlors jobtiens un résultatScénario: titre clair et explicite
    • 13Le scénarioFonctionnalité: acheter un chiot  (…)  Scénario: acheter un chiot trop jeune      Etant donné quun chiot est trop jeune pour être vendu    Quand jessaye de lacheter    Alors je suis informé que cest impossible
    • 14ATDD is not BDD !●On devait communiquer, pas fournir des critèresdacceptationFonctionnalité: acheter un chiot  (…)  Scénario: acheter un chiot trop jeune      Etant donné que Médor a 2 mois      Et quun chiot ne peut être vendu avant quil       nait 5 mois    Quand jessaye dacheter Médor    Alors je suis informé que «Médor est encore trop       jeune pour être vendu»
    • 15Des assistants visuels
    • BonusAutomatisez !
    • 17Le test applicatifContrat Qui AvecCode source / Information fonction PHPUnit, atoumObjets / objets classes, paquets Interfaces, PHPSpecUtilisateur / UI Interface graphique SeleniumUtilisateur / Produit Produit délivré Behat
    • 18Behat●Outil PHP●Réalisé par @everzet●Portage de Cucumber●Génial !Permet dautomatiser la recette fonctionnelle
    • 19Installation●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
    • 20Utilisation●Encore plus simple :●Il suffit de créer le fichierfeatures/acheter-un-chiot.feature :$ ./vendor/bin/behatFonctionnalité: acheter un chiot  (…)  Scénario: acheter un chiot trop jeune      (…)
    • 21Utilisation●À vous de traduire, en PHP, chaque étape :
    • 22Traduction●Fichiers PHP de ”Contexte”Lexpression régulière fait le lienentre lexpression et le code PHP
    • 23Succès !●Tout sest bien passé
    • 24Dans la vraie vie●On peut exécuter des tests dans un vrai navigateur●Chrome, Firefox...●Goutte, Sahi, Selenium...●Grâce à lextension Mink {     "require": {             (...)             "behat/mink": "1.4@stable"     }}
    • 25Retours dexpérience●Behat est très riche (extensions, communautés...)●Behat nest quun outil●Il est facile de partir dans la mauvaise direction :●Il faut un Product Owner●Behat ne se substitue pas aux tests unitaires
    • 26Retours dexpérience●Relativement rapide à maîtriser●temps dinvestissement moyen●nécessite un peu de motivation●Extrêmement bénéfique pour la communication deléquipe●Très bénéfique pour les recettes●Change la vie !
    • 27Questions●@Halleck45●http://blog.lepine.pro (série de billets sur Behat)●http://behat.org