introduction au développement piloté par le comportement avec behat

27
Communiquer en informatique Le développement piloté par le comportement avec Behat

Upload: halleck45

Post on 05-Jul-2015

342 views

Category:

Technology


7 download

TRANSCRIPT

Page 1: Introduction au développement piloté par le comportement avec Behat

Communiquer en informatique

Le développement piloté par le comportement avec Behat

Page 2: Introduction au développement piloté par le comportement avec Behat

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

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

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

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

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

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

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

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

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

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

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

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

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

15

Des assistants visuels

Page 16: Introduction au développement piloté par le comportement avec Behat

Bonus

Automatisez !

Page 17: Introduction au développement piloté par le comportement avec Behat

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

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

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

Page 20: Introduction au développement piloté par le comportement avec Behat

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

21

Utilisation

● À vous de traduire, en PHP, chaque étape :

Page 22: Introduction au développement piloté par le comportement avec Behat

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

23

Succès !

● Tout s'est bien passé

Page 24: Introduction au développement piloté par le comportement avec Behat

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

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

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

27

Questions

● @Halleck45● http://blog.lepine.pro (série de billets sur Behat)● http://behat.org