SlideShare uma empresa Scribd logo
1 de 52
Baixar para ler offline
Behavior Driven
                        Development
                          Yannick Quenec’hdu
                            novembre 2011




lundi 21 novembre 11
Les types de tests

                                  Les tests structurels
                       (TDD aussi appelé test des boîtes blanches)

                               Les tests fonctionnels
                       (ATTD aussi appelé test des boîtes noires)

                        Les tests d’interfaces, ce sont les tests de
                               l’interface homme-machine


lundi 21 novembre 11
IL ÉTAIT UNE FOIS...
                        Je n’ai rien    Tu devrais
                       à dire sur le   en parler sur
                           sujet         ton blog




                            les tests fonctionnels

lundi 21 novembre 11
Les différents tests fonctionnels


                       Approche centrée sur l’IHM
                       Spécifications exécutables
                       Behavior Driven Develpment




lundi 21 novembre 11
Approche centrée sur l’IHM
       Ceux qui pilotent un navigateur et reproduisent les
       interactions de l’utilisateur.




                                                  IHM
       Outil de TF d’IHM       Navigateur                Application




lundi 21 novembre 11
Approche centrée sur l’IHM
           Il existe aussi des outils, de type robots HTTP, qui eux
           se substituent au navigateur




                                           IHM
                       Outil de TF d’IHM          Application




lundi 21 novembre 11
Approche centrée sur l’IHM

                  Avantage

                  Le test fonctionnel d’IHM permet de
                  reproduire en intégralité les scénarios
                  d’une application (vue de l’utilisateur)




lundi 21 novembre 11
Approche centrée sur l’IHM
               Inconvénients
               Les tests sont décrits dans un formalisme technique.

               Certains outils peuvent pallier à cette contrainte, mais
               on perd la démarche du développement piloté par les
               tests

               Ces tests semblent exhaustifs, mais ne le sont pas.

               Par exemple toute la partie batch des applications est
               exclue et de manière générale des pans entiers des
               applications

lundi 21 novembre 11
Outils test IHM
                Selenium - Licence OpenSource
                Selenium est un ensemble de différents outils
                pour l'automatisation des tests d’IHM
                Watir - Licence OpenSource
                Watir est un projet similaire à celui de
                Selenium, il permet d’enregistrer et de rejouer
                des tests avec différents navigateurs


lundi 21 novembre 11
Spécifications exécutables
             Une autre approche est celle des spécifications
             exécutables


                         Outil de




                                            Fixtures
                       spécifications                   Application
                        exécutables




              Permet à des utilisateurs fonctionnels de décrire au sein
                        d’un wiki le comportement métier

lundi 21 novembre 11
Spécifications exécutables
            On remarque que l'IHM n'est pas testée. Une couche
            de fixture s'y substitue.
            Avantages
            Le formalisme des spécifications est compréhensible
            par des populations fonctionnelles.
            Il est possible, au sein même des tests, d’écrire de la
            documentation fonctionnelle dans un wiki.
            Les pages de wiki sont des vraies spécifications
            exécutables


lundi 21 novembre 11
Spécifications exécutables
          Il est possible de compléter l’outil en l’intégrant avec des
          tests de l’IHM.



          Outil de
                            Fixtures




                                                           IHM
        spécifications                  Outil de TF d’IHM         Application
         exécutables




lundi 21 novembre 11
La réalité




lundi 21 novembre 11
Spécifications exécutables
         Inconvénients
            Un coût important de mise en oeuvre en terme de
             formation aux outils et d’intégration des fixtures

            La sémantique du wiki est très spécifique aux outils
             (tables de décision, query, etc)

            Un wiki qui mélange les noms de classe, méthode et texte
             statiques




lundi 21 novembre 11
Behavior Driven Devlopment
                  C’est une pratique qui encourage la collaboration entre
                     les développeurs, les testeurs et le Product Owner

                   BDD est un langage naturel qui en met en avant les
                                 interactions du logiciel

                        Il limite la traduction entre le langage technique
                        (développeurs) et le langage métier (l’entreprise)

                       Permet d’automatiser les tests unitaires et de non-
                                          régression

                                 Il se situe entre TDD et ATDD

lundi 21 novembre 11
Outils de BDD


                          Plus d’une trentaine d’outils en
                          OpenSource pour l’ensemble des
                       langages informatique (Java, PHP, Ruby,
                                 Net, Javascript, etc.)




lundi 21 novembre 11
Les tests BDD




lundi 21 novembre 11
Les tests avec BDD

         Les tests user stories sont formalisés de manière
              à ajouter des critères d’acceptation


                  BDD permet d’enrichir les user stories en
                  proposant des spécifications du comportement
                                de la user stories
                       Ce ne sont pas des critères d’acceptation


lundi 21 novembre 11
User stories
                 Une user story est une façon de “spécifier” un
                   besoin fonctionnel. C’est une surtout une
                méthode de communication au sein d’une équipe
                                     Agile
                       Une user story est exprimée selon la matrice
                                      rôle / fonction

             En tant que “rôle”, je veux “faire une action”,
                    afin d’ “atteindre un objectif”

lundi 21 novembre 11
ATDD


                L’approche ATDD ou Acceptance Test Driven
                Development implique de préciser le besoin
                 par la définition des critères de contrôles
                               (d’acceptation)




lundi 21 novembre 11
Exemple

          “En tant qu’utilisateur, je veux me connecter à Google
               afin d’accéder à tous mes services en lignes”


                 Imaginons les critères suivants :
                  •	

L’utilisateur peut se connecter
                  •	

La barre de menu Google présente les services
                    disponibles
                  •	

L’utilisateur peut accéder à tous ces services
                  •	

Google présente la liste des nouvelles fonctionnalités
                    disponibles

lundi 21 novembre 11
Les critères d’acceptation

                       Un critère d’acceptation doit être :



                             Une vision utilisateur
                          Ne pas proposer de solution
                         Ne pas être interne à la fonction




lundi 21 novembre 11
BDD

           le langage Gherkin défini pour le BDD ou Behavior
           Driven Developement

           Aussi connu dans le monde Agile sous la pratique de
           Given / When / Then (And).

           Cette méthode est aussi appelée TDR pour Test
           Driven Requirement ou exigences pilotées par les
           tests.


lundi 21 novembre 11
BDD

                 BDD est bien plus qu’une pratique de test, c’est
                 une évolution dans la rédaction des Users
                 stories
                 En tant que testeurs vous êtes limité dans les
                 tests des users stories, parce qu’il n’y a pas de
                 contexte, de règle métier ou séquences
                 d’événements



lundi 21 novembre 11
Une user stories “Je suis... Je veux... Afin de...”
              laisse la place à des interprétations erronées
                   La cause et l’effet ne sont pas décrits dans
                                 les users stories




lundi 21 novembre 11
Contrairement aux users stories, le
                  “comportement” suggéré par le BDD apporte
                       le contexte (Etant donné que),
                   l’événement (Lorsque), et le résultat
                                   (Alors)




lundi 21 novembre 11
Le contexte, l’événement et le résultat sont
                  identifiés pour chaque action de l’utilisateur ou
                                     du système
                          BDD fonctionne comme une
                       spécification pour le comportement
                                   du produit




lundi 21 novembre 11
Avantage
                Permet aux développeurs et aux testeurs de
                comprendre les actions à réaliser et comment le
                système va répondre
                Réduit les ambiguïtés dans les users stories
                Fournit des spécifications simples et réduis les
                aller-retour sur les users stories
                BDD permet de se poser les bonnes questions
                durant l’analyse de la user stories
                L’activité de réflexion est mieux répartie au sein de
                l’équipe
lundi 21 novembre 11
Résultat


                         10% du temps projet consacré au BDD
                       engendre 30% de déchets en moins durant le
                                 cycle de vie du projet
                                    BDD c’est LEAN




lundi 21 novembre 11
BDD en action




lundi 21 novembre 11
Une user stories à un
                         comportement
             “En tant qu’utilisa
                                teur anonyme, je
         connecter sur le                        veux me
                          site afin d'accéder
                                             aux informations
                          de mon compte“




lundi 21 novembre 11
Les critères d’acceptations
          La page d’accueil doit afficher une boîte de connexion
          Le système doit valider les identifiants et les mots de passe
          L’identifiant doit être au format email
          Le mot de passe doit être avec un minimum de 6 caractères et
          1chiffre
          Le système doit afficher le tableau de bord si l’authentification
          est valide
          Le système doit afficher une erreur en cas d’authentification
          incorrecte


lundi 21 novembre 11
Résultat


                       Le testeur indique vrai ou faux, le résultat
                       des tests d’acceptation
                       Aucune description des événements, ni des
                       actions de l’utilisateur
                       La cause et l’effet sont absents
                       Où est l’histoire derrière la user stories ?



lundi 21 novembre 11
BDD permet de raconter une histoire




lundi 21 novembre 11
La matrice GWT
                       La matrice Given - When - then est le format
                       utilisé pour la rédaction en BDD
                       Given (Etant donné que) : Le contexte
                       When (Lorsque) : L’action
                       Then (Alors) : Le résultat
                       And (Et) : Les autres résultats



lundi 21 novembre 11
“Scénario compte valide”
         Étant donnée que je suis un utilisateur anonyme qui sait
         précédemment enregistrer et qui se trouve sur l’espace de
         connexion de la page d’accueil
         Lorsque l’utilisateur saisit son identifiant et son mot de passe
         dans la boîte de connexion et clique sur le bouton “connexion”
         ou frappe sur la touche “Entrer”
         Alors le système doit valider le nom de l’utilisateur et le mot de
         passe et rediriger l’utilisateur vers le tableau de bord si le
         compte est valide
         Et il devra afficher l’identifiant de l’utilisateur en haut de la page
         Et il devra actualiser la date de dernière connexion de
         l’utilisateur sur la page

lundi 21 novembre 11
“Scénario compte invalide”
         Étant donné que je suis un utilisateur anonyme qui sait
         précédemment enregistré et qui se trouve sur l’espace de
         connexion de la page d’accueil
         Lorsque l’utilisateur saisi son identifiant et son mot de passe
         dans la boîte de connexion et clique sur le bouton “connexion”
         ou frappe sur la touche “Entrer”
         Alors le système doit valider le nom de l’utilisateur et le mot de
         passe
         et si l’identifiant est invalide il doit afficher un message d’erreur
         sur la page d’accueil “Identifiant invalide”
         et si le mot de passe est invalide il doit afficher un message
         d’erreur sur la page d’accueil “mot de passe invalide”

lundi 21 novembre 11
Dinosaure




     Le cycle de vie BDD
lundi 21 novembre 11
Les acteurs                   Le testeur
                       Le PO




                                Développeurs
lundi 21 novembre 11
Le client exprime son besoin




lundi 21 novembre 11
Durant un atelier client....




lundi 21 novembre 11
Le Product Owner traduit ce besoin




                          User stories et
                             critères
                          d’acceptation



lundi 21 novembre 11
Le testeur rédige les tests en BDD...




lundi 21 novembre 11
avec les développeurs et le PO




lundi 21 novembre 11
les développeurs intègrent les tests



                       Scénario BDD




                                      test BDD




lundi 21 novembre 11
le testeur réalise les tests BDD




lundi 21 novembre 11
et obtiens le résultat




lundi 21 novembre 11
Conclusion
lundi 21 novembre 11
Un produit
            sans test




lundi 21 novembre 11
Un produit avec
         des tests




lundi 21 novembre 11
Blog :
  www.openagile.net



             Contact :
       yquenechdu@gmail.com



   Remerciement :Erwan Le Gall
lundi 21 novembre 11
lundi 21 novembre 11

Mais conteúdo relacionado

Mais procurados

Tdd en action - refactoring
Tdd en action - refactoringTdd en action - refactoring
Tdd en action - refactoring
Eric Mignot
 
Anatomie du test
Anatomie du testAnatomie du test
Anatomie du test
Frederic Hardy
 
Présentation Alt.net - Tests unitaires automatisés
Présentation Alt.net - Tests unitaires automatisésPrésentation Alt.net - Tests unitaires automatisés
Présentation Alt.net - Tests unitaires automatisés
Djamel Zouaoui
 

Mais procurados (20)

201001 TDD
201001 TDD201001 TDD
201001 TDD
 
Tdd en action - refactoring
Tdd en action - refactoringTdd en action - refactoring
Tdd en action - refactoring
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)
 
Method XP
Method XP Method XP
Method XP
 
Xtreme Programming
Xtreme ProgrammingXtreme Programming
Xtreme Programming
 
Deux ans de développement Agile, erreurs et succès
Deux ans de développement Agile, erreurs et succèsDeux ans de développement Agile, erreurs et succès
Deux ans de développement Agile, erreurs et succès
 
Automatiser la qualite
Automatiser la qualiteAutomatiser la qualite
Automatiser la qualite
 
eXtreme Programming [fr]
eXtreme Programming [fr]eXtreme Programming [fr]
eXtreme Programming [fr]
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Anatomie du test
Anatomie du testAnatomie du test
Anatomie du test
 
Agile Methodologies
Agile MethodologiesAgile Methodologies
Agile Methodologies
 
Présentation Alt.net - Tests unitaires automatisés
Présentation Alt.net - Tests unitaires automatisésPrésentation Alt.net - Tests unitaires automatisés
Présentation Alt.net - Tests unitaires automatisés
 
Essential skills for the agile developer
Essential skills for the agile developerEssential skills for the agile developer
Essential skills for the agile developer
 
Et si on jouait au tdd 20131017
Et si on jouait au tdd 20131017Et si on jouait au tdd 20131017
Et si on jouait au tdd 20131017
 
Agilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationAgilité, Tests Et Industrialisation
Agilité, Tests Et Industrialisation
 
Mockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilMockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice Duteil
 
Clean code en pratique
Clean code en pratiqueClean code en pratique
Clean code en pratique
 
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineLa qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
 
Tester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techTester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue tech
 
Test driven development v0.2 20121221
Test driven development v0.2 20121221Test driven development v0.2 20121221
Test driven development v0.2 20121221
 

Destaque

Destaque (20)

Sprint0
Sprint0Sprint0
Sprint0
 
Scrum night kanban chez Google
Scrum night kanban chez GoogleScrum night kanban chez Google
Scrum night kanban chez Google
 
Conférence Lean Kanban France 2013
Conférence Lean Kanban France 2013Conférence Lean Kanban France 2013
Conférence Lean Kanban France 2013
 
Modèle de santé des équipes Agile
Modèle de santé des équipes AgileModèle de santé des équipes Agile
Modèle de santé des équipes Agile
 
Scrumday 2012 - De V vers Agile
Scrumday 2012 - De V vers AgileScrumday 2012 - De V vers Agile
Scrumday 2012 - De V vers Agile
 
Formation au métier de Product owner
Formation au métier de Product ownerFormation au métier de Product owner
Formation au métier de Product owner
 
Alice in Agile Land
Alice in Agile LandAlice in Agile Land
Alice in Agile Land
 
Comment apprendre a coder
Comment apprendre a coderComment apprendre a coder
Comment apprendre a coder
 
Story point
Story pointStory point
Story point
 
Stop to start
Stop to startStop to start
Stop to start
 
Order to cash Agile
Order to cash AgileOrder to cash Agile
Order to cash Agile
 
Intro 3 Tiny Habits with Dr. BJ Fogg
Intro 3 Tiny Habits with Dr. BJ FoggIntro 3 Tiny Habits with Dr. BJ Fogg
Intro 3 Tiny Habits with Dr. BJ Fogg
 
Open xke kanban à grande échelle
Open xke kanban à grande échelleOpen xke kanban à grande échelle
Open xke kanban à grande échelle
 
Redmine présentation sug 2012
Redmine présentation sug 2012Redmine présentation sug 2012
Redmine présentation sug 2012
 
La transformation agile d'une grande entreprise... Comment faire ?
La transformation agile d'une grande entreprise... Comment faire ?La transformation agile d'une grande entreprise... Comment faire ?
La transformation agile d'une grande entreprise... Comment faire ?
 
L'agilité en quelques slides
L'agilité en quelques slidesL'agilité en quelques slides
L'agilité en quelques slides
 
Agile shock therapy
Agile shock therapyAgile shock therapy
Agile shock therapy
 
Kanban Key Performance indicator
Kanban Key Performance indicatorKanban Key Performance indicator
Kanban Key Performance indicator
 
Guide scrum
Guide scrumGuide scrum
Guide scrum
 
La Gestion de Projet Agile
La Gestion de Projet AgileLa Gestion de Projet Agile
La Gestion de Projet Agile
 

Semelhante a Behavior driven Development

AgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFSAgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFS
Agile Toulouse
 
Cycles de vie d'un logiciel
Cycles de vie d'un logicielCycles de vie d'un logiciel
Cycles de vie d'un logiciel
Rabia AZIZA
 

Semelhante a Behavior driven Development (20)

AgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFSAgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFS
 
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ?
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ? TFS 2012 : un pas vers l'agilité... en avant ou en arrière ?
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ?
 
Les nouveautés de Visual Studio 11
Les nouveautés de Visual Studio 11Les nouveautés de Visual Studio 11
Les nouveautés de Visual Studio 11
 
Initiation à l'agile
Initiation à l'agileInitiation à l'agile
Initiation à l'agile
 
Petit DéJeuner Industrialisation 13 10 2011 Eurosites
Petit DéJeuner Industrialisation 13 10 2011 EurositesPetit DéJeuner Industrialisation 13 10 2011 Eurosites
Petit DéJeuner Industrialisation 13 10 2011 Eurosites
 
Industrialiser PHP - Open World Forum 2011
Industrialiser PHP - Open World Forum 2011Industrialiser PHP - Open World Forum 2011
Industrialiser PHP - Open World Forum 2011
 
Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010
 
NightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous DeliveryNightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous Delivery
 
Analyse et cahier des charges
Analyse et cahier des chargesAnalyse et cahier des charges
Analyse et cahier des charges
 
comment rédiger une expression de besoins
comment rédiger une expression de besoinscomment rédiger une expression de besoins
comment rédiger une expression de besoins
 
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
 
Cycles de vie d'un logiciel
Cycles de vie d'un logicielCycles de vie d'un logiciel
Cycles de vie d'un logiciel
 
Chp2 - Cahier des Charges
Chp2 - Cahier des ChargesChp2 - Cahier des Charges
Chp2 - Cahier des Charges
 
Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !
 
Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !
 
Agile Tour 2012 Paris - Nouveaux Outils Agile MS
Agile Tour 2012 Paris - Nouveaux Outils Agile MS Agile Tour 2012 Paris - Nouveaux Outils Agile MS
Agile Tour 2012 Paris - Nouveaux Outils Agile MS
 
Methodes de gestion de projets - introduction au processus unifié
Methodes de gestion de projets - introduction au processus unifiéMethodes de gestion de projets - introduction au processus unifié
Methodes de gestion de projets - introduction au processus unifié
 
#3 etapes projet
#3 etapes projet#3 etapes projet
#3 etapes projet
 
201001 Agilité
201001 Agilité201001 Agilité
201001 Agilité
 
presentation Zest au JFTL 2014
presentation Zest au JFTL 2014presentation Zest au JFTL 2014
presentation Zest au JFTL 2014
 

Mais de Yannick Quenec'hdu (8)

Rédiger des User Stories
Rédiger des User StoriesRédiger des User Stories
Rédiger des User Stories
 
kanban, un outil de production
kanban, un outil de productionkanban, un outil de production
kanban, un outil de production
 
Managment visuel
Managment visuelManagment visuel
Managment visuel
 
Pomodoro
PomodoroPomodoro
Pomodoro
 
Les bases de Scrum
Les bases de ScrumLes bases de Scrum
Les bases de Scrum
 
Test acceptance
Test acceptanceTest acceptance
Test acceptance
 
User stories
User storiesUser stories
User stories
 
Estimation et planification Agile
Estimation et planification AgileEstimation et planification Agile
Estimation et planification Agile
 

Behavior driven Development

  • 1. Behavior Driven Development Yannick Quenec’hdu novembre 2011 lundi 21 novembre 11
  • 2. Les types de tests Les tests structurels (TDD aussi appelé test des boîtes blanches) Les tests fonctionnels (ATTD aussi appelé test des boîtes noires) Les tests d’interfaces, ce sont les tests de l’interface homme-machine lundi 21 novembre 11
  • 3. IL ÉTAIT UNE FOIS... Je n’ai rien Tu devrais à dire sur le en parler sur sujet ton blog les tests fonctionnels lundi 21 novembre 11
  • 4. Les différents tests fonctionnels Approche centrée sur l’IHM Spécifications exécutables Behavior Driven Develpment lundi 21 novembre 11
  • 5. Approche centrée sur l’IHM Ceux qui pilotent un navigateur et reproduisent les interactions de l’utilisateur. IHM Outil de TF d’IHM Navigateur Application lundi 21 novembre 11
  • 6. Approche centrée sur l’IHM Il existe aussi des outils, de type robots HTTP, qui eux se substituent au navigateur IHM Outil de TF d’IHM Application lundi 21 novembre 11
  • 7. Approche centrée sur l’IHM Avantage Le test fonctionnel d’IHM permet de reproduire en intégralité les scénarios d’une application (vue de l’utilisateur) lundi 21 novembre 11
  • 8. Approche centrée sur l’IHM Inconvénients Les tests sont décrits dans un formalisme technique. Certains outils peuvent pallier à cette contrainte, mais on perd la démarche du développement piloté par les tests Ces tests semblent exhaustifs, mais ne le sont pas. Par exemple toute la partie batch des applications est exclue et de manière générale des pans entiers des applications lundi 21 novembre 11
  • 9. Outils test IHM Selenium - Licence OpenSource Selenium est un ensemble de différents outils pour l'automatisation des tests d’IHM Watir - Licence OpenSource Watir est un projet similaire à celui de Selenium, il permet d’enregistrer et de rejouer des tests avec différents navigateurs lundi 21 novembre 11
  • 10. Spécifications exécutables Une autre approche est celle des spécifications exécutables Outil de Fixtures spécifications Application exécutables Permet à des utilisateurs fonctionnels de décrire au sein d’un wiki le comportement métier lundi 21 novembre 11
  • 11. Spécifications exécutables On remarque que l'IHM n'est pas testée. Une couche de fixture s'y substitue. Avantages Le formalisme des spécifications est compréhensible par des populations fonctionnelles. Il est possible, au sein même des tests, d’écrire de la documentation fonctionnelle dans un wiki. Les pages de wiki sont des vraies spécifications exécutables lundi 21 novembre 11
  • 12. Spécifications exécutables Il est possible de compléter l’outil en l’intégrant avec des tests de l’IHM. Outil de Fixtures IHM spécifications Outil de TF d’IHM Application exécutables lundi 21 novembre 11
  • 13. La réalité lundi 21 novembre 11
  • 14. Spécifications exécutables Inconvénients Un coût important de mise en oeuvre en terme de formation aux outils et d’intégration des fixtures La sémantique du wiki est très spécifique aux outils (tables de décision, query, etc) Un wiki qui mélange les noms de classe, méthode et texte statiques lundi 21 novembre 11
  • 15. Behavior Driven Devlopment C’est une pratique qui encourage la collaboration entre les développeurs, les testeurs et le Product Owner BDD est un langage naturel qui en met en avant les interactions du logiciel Il limite la traduction entre le langage technique (développeurs) et le langage métier (l’entreprise) Permet d’automatiser les tests unitaires et de non- régression Il se situe entre TDD et ATDD lundi 21 novembre 11
  • 16. Outils de BDD Plus d’une trentaine d’outils en OpenSource pour l’ensemble des langages informatique (Java, PHP, Ruby, Net, Javascript, etc.) lundi 21 novembre 11
  • 17. Les tests BDD lundi 21 novembre 11
  • 18. Les tests avec BDD Les tests user stories sont formalisés de manière à ajouter des critères d’acceptation BDD permet d’enrichir les user stories en proposant des spécifications du comportement de la user stories Ce ne sont pas des critères d’acceptation lundi 21 novembre 11
  • 19. User stories Une user story est une façon de “spécifier” un besoin fonctionnel. C’est une surtout une méthode de communication au sein d’une équipe Agile Une user story est exprimée selon la matrice rôle / fonction En tant que “rôle”, je veux “faire une action”, afin d’ “atteindre un objectif” lundi 21 novembre 11
  • 20. ATDD L’approche ATDD ou Acceptance Test Driven Development implique de préciser le besoin par la définition des critères de contrôles (d’acceptation) lundi 21 novembre 11
  • 21. Exemple “En tant qu’utilisateur, je veux me connecter à Google afin d’accéder à tous mes services en lignes” Imaginons les critères suivants : • L’utilisateur peut se connecter • La barre de menu Google présente les services disponibles • L’utilisateur peut accéder à tous ces services • Google présente la liste des nouvelles fonctionnalités disponibles lundi 21 novembre 11
  • 22. Les critères d’acceptation Un critère d’acceptation doit être : Une vision utilisateur Ne pas proposer de solution Ne pas être interne à la fonction lundi 21 novembre 11
  • 23. BDD le langage Gherkin défini pour le BDD ou Behavior Driven Developement Aussi connu dans le monde Agile sous la pratique de Given / When / Then (And). Cette méthode est aussi appelée TDR pour Test Driven Requirement ou exigences pilotées par les tests. lundi 21 novembre 11
  • 24. BDD BDD est bien plus qu’une pratique de test, c’est une évolution dans la rédaction des Users stories En tant que testeurs vous êtes limité dans les tests des users stories, parce qu’il n’y a pas de contexte, de règle métier ou séquences d’événements lundi 21 novembre 11
  • 25. Une user stories “Je suis... Je veux... Afin de...” laisse la place à des interprétations erronées La cause et l’effet ne sont pas décrits dans les users stories lundi 21 novembre 11
  • 26. Contrairement aux users stories, le “comportement” suggéré par le BDD apporte le contexte (Etant donné que), l’événement (Lorsque), et le résultat (Alors) lundi 21 novembre 11
  • 27. Le contexte, l’événement et le résultat sont identifiés pour chaque action de l’utilisateur ou du système BDD fonctionne comme une spécification pour le comportement du produit lundi 21 novembre 11
  • 28. Avantage Permet aux développeurs et aux testeurs de comprendre les actions à réaliser et comment le système va répondre Réduit les ambiguïtés dans les users stories Fournit des spécifications simples et réduis les aller-retour sur les users stories BDD permet de se poser les bonnes questions durant l’analyse de la user stories L’activité de réflexion est mieux répartie au sein de l’équipe lundi 21 novembre 11
  • 29. Résultat 10% du temps projet consacré au BDD engendre 30% de déchets en moins durant le cycle de vie du projet BDD c’est LEAN lundi 21 novembre 11
  • 30. BDD en action lundi 21 novembre 11
  • 31. Une user stories à un comportement “En tant qu’utilisa teur anonyme, je connecter sur le veux me site afin d'accéder aux informations de mon compte“ lundi 21 novembre 11
  • 32. Les critères d’acceptations La page d’accueil doit afficher une boîte de connexion Le système doit valider les identifiants et les mots de passe L’identifiant doit être au format email Le mot de passe doit être avec un minimum de 6 caractères et 1chiffre Le système doit afficher le tableau de bord si l’authentification est valide Le système doit afficher une erreur en cas d’authentification incorrecte lundi 21 novembre 11
  • 33. Résultat Le testeur indique vrai ou faux, le résultat des tests d’acceptation Aucune description des événements, ni des actions de l’utilisateur La cause et l’effet sont absents Où est l’histoire derrière la user stories ? lundi 21 novembre 11
  • 34. BDD permet de raconter une histoire lundi 21 novembre 11
  • 35. La matrice GWT La matrice Given - When - then est le format utilisé pour la rédaction en BDD Given (Etant donné que) : Le contexte When (Lorsque) : L’action Then (Alors) : Le résultat And (Et) : Les autres résultats lundi 21 novembre 11
  • 36. “Scénario compte valide” Étant donnée que je suis un utilisateur anonyme qui sait précédemment enregistrer et qui se trouve sur l’espace de connexion de la page d’accueil Lorsque l’utilisateur saisit son identifiant et son mot de passe dans la boîte de connexion et clique sur le bouton “connexion” ou frappe sur la touche “Entrer” Alors le système doit valider le nom de l’utilisateur et le mot de passe et rediriger l’utilisateur vers le tableau de bord si le compte est valide Et il devra afficher l’identifiant de l’utilisateur en haut de la page Et il devra actualiser la date de dernière connexion de l’utilisateur sur la page lundi 21 novembre 11
  • 37. “Scénario compte invalide” Étant donné que je suis un utilisateur anonyme qui sait précédemment enregistré et qui se trouve sur l’espace de connexion de la page d’accueil Lorsque l’utilisateur saisi son identifiant et son mot de passe dans la boîte de connexion et clique sur le bouton “connexion” ou frappe sur la touche “Entrer” Alors le système doit valider le nom de l’utilisateur et le mot de passe et si l’identifiant est invalide il doit afficher un message d’erreur sur la page d’accueil “Identifiant invalide” et si le mot de passe est invalide il doit afficher un message d’erreur sur la page d’accueil “mot de passe invalide” lundi 21 novembre 11
  • 38. Dinosaure Le cycle de vie BDD lundi 21 novembre 11
  • 39. Les acteurs Le testeur Le PO Développeurs lundi 21 novembre 11
  • 40. Le client exprime son besoin lundi 21 novembre 11
  • 41. Durant un atelier client.... lundi 21 novembre 11
  • 42. Le Product Owner traduit ce besoin User stories et critères d’acceptation lundi 21 novembre 11
  • 43. Le testeur rédige les tests en BDD... lundi 21 novembre 11
  • 44. avec les développeurs et le PO lundi 21 novembre 11
  • 45. les développeurs intègrent les tests Scénario BDD test BDD lundi 21 novembre 11
  • 46. le testeur réalise les tests BDD lundi 21 novembre 11
  • 47. et obtiens le résultat lundi 21 novembre 11
  • 49. Un produit sans test lundi 21 novembre 11
  • 50. Un produit avec des tests lundi 21 novembre 11
  • 51. Blog : www.openagile.net Contact : yquenechdu@gmail.com Remerciement :Erwan Le Gall lundi 21 novembre 11