BDD avec Behat, PhpSpec et Symfony2

617 vues

Publié le

Événement Symfony TN, 17-04-2015 Conférence sur « BDD & Symfony »
http://symfony-tunisia.com/

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
617
Sur SlideShare
0
Issues des intégrations
0
Intégrations
9
Actions
Partages
0
Téléchargements
9
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

BDD avec Behat, PhpSpec et Symfony2

  1. 1. BDD SYMFONY TN rmed19 SLIDE 1 1 BDD  &    SYMFONY
  2. 2. BDD SYMFONY TN rmed19 SLIDE 2 2 Mohammed Rhamnia • • • • Symfonien depuis 7 ans Consultant Symfony @rmed19 http://medrhamnia.workpress.com
  3. 3. BDD SYMFONY TN rmed19 SLIDE 3 3 DEFINE BDD Introduction au Behaviour Driven Development
  4. 4. BDD SYMFONY TN rmed19 SLIDE 4 4 ÉCHECD'UN PROJET • • • • • • Retard de livraison Coûts de finalisation élevés Application ne répond pas au besoin Instabilité après déploiement Non respect des règles Code non réutilisable
  5. 5. BDD SYMFONY TN rmed19 SLIDE 5 5 • • • • • Répondre au besoin S'adapter au changement de priorité Diminuer le coût de changement Se focaliser sur les fonctionnalités à forte valeur ajoutée S'adapter au feedback RÉUSSITE D'UN PROJET
  6. 6. BDD SYMFONY TN rmed19 SLIDE 6 6 AUCOMMENCEMENT ÉTAITLETDD,ETLETDD ÉTAITAVECEXP
  7. 7. BDD SYMFONY TN rmed19 SLIDE 7 7 Test Driven Development
  8. 8. BDD SYMFONY TN rmed19 SLIDE 8 8 • • • • Complexité supplémentaire Impact de la conception Optimisation continue Investissement en temps énormeINCONVENIENTDELATDD
  9. 9. BDD SYMFONY TN rmed19 SLIDE 9 9 Behaviour-driven development is about implementing an application by describing its behaviour from the perspective of its stakeholders DAN     NORTH
  10. 10. BDD SYMFONY TN rmed19 SLIDE 10 10 BDD est un méthode agile qui encourage la collaboration entre les développeurs, les responsables qualités, les intervenants non- techniques et les entreprises participant à un projet de logiciel. BDD est motivée par la valeur commerciale, c'est un avantage pour l'entreprise qui revient une fois que l'application est en production. WIKIPEDIA
  11. 11. BDD SYMFONY TN rmed19 SLIDE 11 11 PROCESSUS BDD • • • Le code créé est à l’image de la demande de l’utilisateur. La fonctionnalité est à l’image de la demande de l’utilisateur. Une grande qualité de production. • • • On utilise des phrases, dans la langue du projet. On parle de besoin et non de solution, dans un langage non technique. On utilise des termes provenant du langage omniprésent partagé par tous.
  12. 12. BDD SYMFONY TN rmed19 SLIDE 12 12   Fonctionnalité 2   Fonctionnalité 1                                                                           Scénario 2-1   Scénario 2-2   Scénario 1-1   Scénario 1-2   Scénario 1-3   BDD ça ressemble à quoi ?
  13. 13. BDD SYMFONY TN rmed19 SLIDE 13 13 BDD ça ressemble à quoi ? Feature : Title As a (En tant que) Contexte I want (Je souhaite) Fonctionnalité In order (Pour) Finalité Scenario : Title (^(can|can not)) Given (Je mets en place un contexte) When (Je procède à l’action, un événement, …) Then (Je vérifie) GHERKIN
  14. 14. BDD SYMFONY TN rmed19 SLIDE 14 14 BDD ça ressemble à quoi ? Feature : Managing Blog Posts As a webmaster I want I need to be able to create, view, edit or delete a post In order to manage my blog content Scenario : I can see all posts Given I go to "/admin/post" page Then I should see "Post List" And I should see "Add Post"
  15. 15. BDD SYMFONY TN rmed19 SLIDE 15 15 CONCLUANT • • • • • Évolution et non une Révolution. Tout le monde communique. Réflexion approfondie. Documentation testable. Time is Money.
  16. 16. BDD SYMFONY TN rmed19 SLIDE 16 16 EXECUTE  BDD Passons à l'action
  17. 17. BDD SYMFONY TN rmed19 SLIDE 17 17 OUTILS BEHAT MINK PHSPEC
  18. 18. BDD SYMFONY TN rmed19 SLIDE 18 18 CONFIGURATION "require-dev": {  "sensio/generator-bundle": "~2.3",  "phpspec/phpspec": "~2.0",  "behat/behat": "2.4.*@stable",  "behat/mink": "1.4.*@stable",  "behat/mink-extension": "*", "behat/symfony2-extension": "*", "behat/mink-browserkit-driver": "*", "behat/mink-selenium2-driver": "*"  },
  19. 19. BDD SYMFONY TN rmed19 SLIDE 19 19 CONFIGURATION #behat.yml default: paths:  features: features  bootstrap: %behat.paths.features%/bootstrap extensions:  BehatMinkExtensionExtension:  base_url: 'http://sftn.dev/app_dev.php' default_session: 'symfony2' BehatSymfony2ExtensionExtension: mink_driver: true
  20. 20. BDD SYMFONY TN rmed19 SLIDE 20 20 CONFIGURATION
  21. 21. BDD SYMFONY TN rmed19 SLIDE 21 21 STORYDDFeature: Managing Blog Posts In order to manage blog posts As a blog administrator I need to be able to create, view, edit or delete posts Scenario: Listing Blog Posts Given I go to "/post" Then I should see "Post List" And I should see "Add Post"
  22. 22. BDD SYMFONY TN rmed19 SLIDE 22 22 SPECDD
  23. 23. BDD SYMFONY TN rmed19 SLIDE 23 23 SPECDD
  24. 24. BDD SYMFONY TN rmed19 SLIDE 24 24 SPECDD
  25. 25. BDD SYMFONY TN rmed19 SLIDE 25 25 THEEND

×