Behavior driven Development

Click here to load reader

  • date post

    30-Jun-2015
  • Category

    Technology

  • view

    1.382
  • download

    0

Embed Size (px)

description

Présentation de la pratique de BDD (Behavior driven Development)

Transcript of Behavior driven Development

  • 1. Behavior DrivenDevelopmentYannick Quenechdunovembre 2011lundi 21 novembre 11

2. Les types de testsLes tests structurels (TDD aussi appel test des botes blanches) Les tests fonctionnels (ATTD aussi appel test des botes noires)Les tests dinterfaces, ce sont les tests de linterface homme-machinelundi 21 novembre 11 3. IL TAIT UNE FOIS...Je nai rienTu devrais dire sur le en parler sur sujet ton blogles tests fonctionnelslundi 21 novembre 11 4. Les dirents tests fonctionnels Approche centre sur lIHM Spcifications excutables Behavior Driven Develpmentlundi 21 novembre 11 5. Approche centre sur lIHM Ceux qui pilotent un navigateur et reproduisent les interactions de lutilisateur.IHM Outil de TF dIHM NavigateurApplicationlundi 21 novembre 11 6. Approche centre sur lIHM Il existe aussi des outils, de type robots HTTP, qui eux se substituent au navigateur IHM Outil de TF dIHMApplicationlundi 21 novembre 11 7. Approche centre sur lIHMAvantageLe test fonctionnel dIHM permet dereproduire en intgralit les scnariosdune application (vue de lutilisateur)lundi 21 novembre 11 8. Approche centre sur lIHM Inconvnients Les tests sont dcrits dans un formalisme technique. Certains outils peuvent pallier cette contrainte, mais on perd la dmarche du dveloppement 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 manire gnrale des pans entiers des applicationslundi 21 novembre 11 9. Outils test IHMSelenium - Licence OpenSourceSelenium est un ensemble de diffrents outilspour lautomatisation des tests dIHMWatir - Licence OpenSourceWatir est un projet similaire celui deSelenium, il permet denregistrer et de rejouerdes tests avec diffrents navigateurslundi 21 novembre 11 10. Spcifications excutables Une autre approche est celle des spcifications excutables Outil deFixtures spcications ApplicationexcutablesPermet des utilisateurs fonctionnels de dcrire au seindun wiki le comportement mtierlundi 21 novembre 11 11. Spcifications excutablesOn remarque que lIHM nest pas teste. Une couchede fixture sy substitue.AvantagesLe formalisme des spcifications est comprhensiblepar des populations fonctionnelles.Il est possible, au sein mme des tests, dcrire de ladocumentation fonctionnelle dans un wiki.Les pages de wiki sont des vraies spcificationsexcutableslundi 21 novembre 11 12. Spcifications excutablesIl est possible de complter loutil en lintgrant avec destests de lIHM.Outil deFixtures IHMspcicationsOutil de TF dIHM Application excutableslundi 21 novembre 11 13. La ralitlundi 21 novembre 11 14. Spcifications excutables InconvnientsUn cot important de mise en oeuvre en terme de formation aux outils et dintgration des fixturesLa smantique du wiki est trs spcifique aux outils (tables de dcision, query, etc)Un wiki qui mlange les noms de classe, mthode et texte statiqueslundi 21 novembre 11 15. Behavior Driven DevlopmentCest une pratique qui encourage la collaboration entre les dveloppeurs, les testeurs et le Product Owner BDD est un langage naturel qui en met en avant les interactions du logicielIl limite la traduction entre le langage technique(dveloppeurs) et le langage mtier (lentreprise) Permet dautomatiser les tests unitaires et de non-rgression Il se situe entre TDD et ATDDlundi 21 novembre 11 16. Outils de BDDPlus dune trentaine doutils enOpenSource pour lensemble des langages informatique (Java, PHP, Ruby, Net, Javascript, etc.)lundi 21 novembre 11 17. Les tests BDDlundi 21 novembre 11 18. Les tests avec BDD Les tests user stories sont formaliss de manire ajouter des critres dacceptationBDD permet denrichir les user stories enproposant des spcifications du comportementde la user stories Ce ne sont pas des critres dacceptationlundi 21 novembre 11 19. User stories Une user story est une faon de spcifier un besoin fonctionnel. Cest une surtout unemthode de communication au sein dune quipe Agile Une user story est exprime selon la matricerle / fonction En tant que rle, je veux faire une action,afin d atteindre un objectiflundi 21 novembre 11 20. ATDDLapproche ATDD ou Acceptance Test DrivenDevelopment implique de prciser le besoin par la dfinition des critres de contrles (dacceptation)lundi 21 novembre 11 21. ExempleEn tant quutilisateur, je veux me connecter Google afin daccder tous mes services en lignes Imaginons les critres suivants :Lutilisateur peut se connecterLa barre de menu Google prsente les servicesdisponiblesLutilisateur peut accder tous ces servicesGoogle prsente la liste des nouvelles fonctionnalitsdisponibleslundi 21 novembre 11 22. Les critres dacceptation Un critre dacceptation doit tre : Une vision utilisateurNe pas proposer de solution Ne pas tre interne la fonctionlundi 21 novembre 11 23. BDD le langage Gherkin dfini pour le BDD ou Behavior Driven Developement Aussi connu dans le monde Agile sous la pratique de Given / When / Then (And). Cette mthode est aussi appele TDR pour Test Driven Requirement ou exigences pilotes par les tests.lundi 21 novembre 11 24. BDD BDD est bien plus quune pratique de test, cest une volution dans la rdaction des Users stories En tant que testeurs vous tes limit dans les tests des users stories, parce quil ny a pas de contexte, de rgle mtier ou squences dvnementslundi 21 novembre 11 25. Une user stories Je suis... Je veux... An de...laisse la place des interprtations errones La cause et leffet ne sont pas dcrits dans les users storieslundi 21 novembre 11 26. Contrairement aux users stories, lecomportement suggr par le BDD apporte le contexte (Etant donn que), lvnement (Lorsque), et le rsultat (Alors)lundi 21 novembre 11 27. Le contexte, lvnement et le rsultat sontidentis pour chaque action de lutilisateur ou du systmeBDD fonctionne comme une spcication pour le comportement du produitlundi 21 novembre 11 28. AvantagePermet aux dveloppeurs et aux testeurs decomprendre les actions raliser et comment lesystme va rpondreRduit les ambiguts dans les users storiesFournit des spcications simples et rduis lesaller-retour sur les users storiesBDD permet de se poser les bonnes questionsdurant lanalyse de la user storiesLactivit de rexion est mieux rpartie au sein delquipelundi 21 novembre 11 29. Rsultat 10% du temps projet consacr au BDD engendre 30% de dchets en moins durant le cycle de vie du projetBDD cest LEANlundi 21 novembre 11 30. BDD en actionlundi 21 novembre 11 31. Une user stories un comportement En tant quutilisateur anonyme, je connecter sur leveux mesite an daccder aux informationsde mon comptelundi 21 novembre 11 32. Les critres dacceptationsLa page daccueil doit afcher une bote de connexionLe systme doit valider les identiants et les mots de passeLidentiant doit tre au format emailLe mot de passe doit tre avec un minimum de 6 caractres et1chiffreLe systme doit afcher le tableau de bord si lauthenticationest valideLe systme doit afcher une erreur en cas dauthenticationincorrectelundi 21 novembre 11 33. Rsultat Le testeur indique vrai ou faux, le rsultat des tests dacceptation Aucune description des vnements, ni des actions de lutilisateur La cause et leffet sont absents O est lhistoire derrire la user stories ?lundi 21 novembre 11 34. BDD permet de raconter une histoirelundi 21 novembre 11 35. La matrice GWT La matrice Given - When - then est le format utilis pour la rdaction en BDD Given (Etant donn que) : Le contexte When (Lorsque) : Laction Then (Alors) : Le rsultat And (Et) : Les autres rsultatslundi 21 novembre 11 36. Scnario compte valide tant donne que je suis un utilisateur anonyme qui sait prcdemment enregistrer et qui se trouve sur lespace de connexion de la page daccueil Lorsque lutilisateur saisit son identiant et son mot de passe dans la bote de connexion et clique sur le bouton connexion ou frappe sur la touche Entrer Alors le systme doit valider le nom de lutilisateur et le mot de passe et rediriger lutilisateur vers le tableau de bord si le compte est valide Et il devra afcher lidentiant de lutilisateur en haut de la page Et il devra actualiser la date de dernire connexion de lutilisateur sur la pagelundi 21 novembre 11 37. Scnario compte invalide tant donn que je suis un utilisateur anonyme qui sait prcdemment enregistr et qui se trouve sur lespace de connexion de la page daccueil Lorsque lutilisateur saisi son identiant et son mot de passe dans la bote de connexion et clique sur le bouton connexion ou frappe sur la touche Entrer Alors le systme doit valider le nom de lutilisateur et le mot de passe et si lidentiant est invalide il doit afcher un message derreur sur la page daccueil Identiant invalide et si le mot de passe est invalide il doit afcher un message derreur sur la page daccueil mot de passe invalidelundi 21 novembre 11 38. Dinosaure Le cycle de vie BDDlundi 21 novembre 11 39. Les acteurs Le testeur Le PODveloppeurslundi 21 novembre 11 40. Le client exprime son besoinlundi 21 novembre 11 41. Durant un atelier client....lundi 21 novembre 11 42. Le Product Owner traduit ce besoinUser stories et critresdacceptationlundi 21 novembre 11 43. Le testeur rdige les tests en BDD...lundi 21 novembre 11 44. avec les dveloppeurs et le POlundi 21 novembre 11 45. les dveloppeurs intgrent les tests Scnario BDDtest BDDlundi 21 novembre 11 46. le testeur ralise les tests BDDlundi 21 novembre 11 47. et obtiens le rsultatlundi 21 novembre 11 48. Conclusionlundi 21 novembre 11 49. Un produitsans testlundi 21 novembre 11 50. Un produit avec des testslundi 21 novembre 11 51. Blog :www.openagile.net Contact : yquenechdu@gmail.com Remerciement :Erwan Le Galllundi 21 novembre 11 52. lundi 21 novembre 11