Introduction au développement piloté par le comportement avec Behat
-
Upload
halleck45 -
Category
Technology
-
view
342 -
download
7
Transcript of Introduction au développement piloté par le comportement avec Behat
![Page 1: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/1.jpg)
Communiquer en informatique
Le développement piloté par le comportement avec Behat
![Page 2: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/2.jpg)
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
![Page 3: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/3.jpg)
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”
![Page 4: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/4.jpg)
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
![Page 5: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/5.jpg)
5
La vision du Produit
● Est fournie par le Product Owner
● Sert une philosophie● (souvent mercantile)
● Est le Guide suprême du Projet
![Page 6: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/6.jpg)
6
La Vision GMail
Vision
Permettre à chacun de communiquer et s'exprimer
Produit
● webmail● Babel● Hangouts
● app. android● like ● ...
● Google+● gTalk● api
![Page 7: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/7.jpg)
7
Une langue commune
● Eviter les ambiguïtés
● Est élaborée en commun
● Est parlée par tous
● Glossaire du projet
“Ubiquitous Language”
![Page 8: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/8.jpg)
8
La fonctionnalité
● Est unique● Se distingue des autres fonctionnalités● Peut appartenir à un lot fonctionnel● Est fournie par le Product Owner
● Est exprimable
![Page 9: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/9.jpg)
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
![Page 10: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/10.jpg)
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 ^^)
![Page 11: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/11.jpg)
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
![Page 12: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/12.jpg)
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
![Page 13: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/13.jpg)
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
![Page 14: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/14.jpg)
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»
![Page 15: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/15.jpg)
15
Des assistants visuels
![Page 16: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/16.jpg)
Bonus
Automatisez !
![Page 17: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/17.jpg)
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
![Page 18: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/18.jpg)
18
Behat
● Outil PHP● Réalisé par @everzet● Portage de Cucumber● Génial !
Permet d'automatiser la recette fonctionnelle
![Page 19: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/19.jpg)
19
Installation
● Très simple :
$ vim composer.json{
"require": { "behat/behat": "2.4.*@stable" }, "config": { "bindir": "bin/" }
}
$ curl http://getcomposer.org/installer | php$ php composer.phar install prefersource
![Page 20: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/20.jpg)
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 (…)
![Page 21: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/21.jpg)
21
Utilisation
● À vous de traduire, en PHP, chaque étape :
![Page 22: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/22.jpg)
22
Traduction
● Fichiers PHP de ”Contexte”
L'expression régulière fait le lien entre l'expression et le code PHP
![Page 23: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/23.jpg)
23
Succès !
● Tout s'est bien passé
![Page 24: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/24.jpg)
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" }}
![Page 25: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/25.jpg)
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
![Page 26: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/26.jpg)
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 !
![Page 27: Introduction au développement piloté par le comportement avec Behat](https://reader033.fdocuments.net/reader033/viewer/2022052622/559817e91a28ab6e1d8b483d/html5/thumbnails/27.jpg)
27
Questions
● @Halleck45● http://blog.lepine.pro (série de billets sur Behat)● http://behat.org