SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
BDD – CUCUMBER
        Behavior Driven Development
  Introduction avec Cucumber & Cucumber-
                    nagios




Hervé Leclerc                  Septembre 2011
BDD
 TDD
 DDD
CQCB ?
TDD – BDD – DDD
●   Méthodes de développement Agile
●   TDD : Test Driven Development
●   BDD : Behavior Driven Development
●   DDD : Domain Driven Design
DDD
●   Méthode de conception logiciel pilotée par le
    domaine, le métier
●   L'approche est reconnue mais peu connue
●   Focus sur les aspect métiers
●   Lignes directrices concernant pratiques et
    organisation du code pour obtenir un code
    reflet fidèle au métier qu'il couvre et ayant une
    meilleure résistance au changement.
TDD
●   Wikipédia :
●   Écrire un premier test
●   Vérifier qu'il échoue (car le code qu'il teste n'existe
    pas), afin de vérifier que le test est valide
●   Écrire juste le code suffisant pour passer le test
●   Vérifier que le test passe ;
●   Puis re factoriser le code, c'est-à-dire l'améliorer tout
    en gardant les mêmes fonctionnalités.
LE TDD C'EST BIEN MAIS...
●   Ça sert à quoi d’écrire les tests en premier ?
●   Ok, j’écris les tests en premier mais quel est le
    premier test que j’écris ?
●   Je dois tout tester ou seulement certaines
    choses ?
TDD

      BDD
DDD
BDD
●   2003 Dan North en défini le concept
●   Principes :
    ●   "Tout est comportement", où le pôle commercial et
        technologique doivent se référer à des
        comportements identiques et parler le même
        langage.
    ●   "Où le business compte", c’est à dire que chaque
        système doit apporter un retour sur le business
    ●   "EnoughIsEnough", faire ce qu’il faut pour atteindre
        son but fixé, ni plus, ni moins
BDD : Scénario
●   On écrit des scénarios (story)
●   Tous les scénarios suivent le même modèle :
    ●   Un contexte
    ●   Une demande de fonctionnalité
    ●   La récupération d'un bénéfice (ou pas)
●   Parfaitement adaptée à Scrum
●   Permet à tout le monde (CP,DEV,COM,CLI...) d'exprimer des
    besoins dans même langage
●   Les scénarios servent de critères d'acceptations → une fois
    acceptés on est sûr que l'application se comporte comme ce
    qui a été défini dans les scénarios
BDD → cucumber

Story :
As a [rôle]
I want to (some action)
So that (business value)


                                           Feature
                           Scenario: Title
                           Given [some context]
                           And [Additionnal context]
                           When [Event]
                           Then [outcome]
cucumber
●   Gem permettant d’exécuter des fonctionnalités
    écrites sous forme de fichiers texte afin de
    réaliser des tests automatisés
●   Chaque Feature peut contenir plusieurs
    scénarios
●   La facilité d'écriture des scénario permet à des
    non informaticiens d'écrire les fonctionnalité
●   Le développeurs développeront le code pour
    réaliser les fonctions scénario
Exemple de scénario
Feature: www.alterway.fr
 It should be up
 And I should be able to search for things


 Scenario: Look Host www.alterway.fr
  When I lookup "www.alterway.fr"
  Then the name should resolve to "XXX.XXX.XXX.XXX"


 Scenario: Searching for things
  When I go to "http://www.alterway.fr"
  And I fill in "search_block_form" with "industrialisation"
  And I press "Recherche"
  Then I should see "Industrialisation Php"
Gherkin est i18n so...
# language: fr
Fonctionnalité: www.alterway.fr
 Il devrait être en ligne
 Et Il devrait être capable de chercher des trucs


 Scénario: Chercher des trucs
  Etant donné Je suis sur un HTTP authentifié avec les crédences suivantes:
  | username | password |
  |an-user | a-password |
  Quand Je vais sur "http://www.example.fr/"
  Et Je remplis "search_block_form" avec "industrialisation"
  Et Je clique sur "Recherche"
  Alors Je devrais voir "Industrialisation Php"
  Quand Je suis "Industrialisation Php"
  Alors Je devrais voir "Le constat est clair"
En Action !



an-user   a-password
cucumber-nagios
●   Permet de faire du BDD sur de l'infra
Demain
DEMO

Weitere ähnliche Inhalte

Was ist angesagt?

Tdd en action - refactoring
Tdd en action - refactoringTdd en action - refactoring
Tdd en action - refactoring
Eric Mignot
 
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
 

Was ist angesagt? (20)

to Test or not to Test?
to Test or not to Test?to Test or not to Test?
to Test or not to Test?
 
[Agile Testing Day] Techniques avancées de tests
[Agile Testing Day] Techniques avancées de tests[Agile Testing Day] Techniques avancées de tests
[Agile Testing Day] Techniques avancées de tests
 
Tdd en action - refactoring
Tdd en action - refactoringTdd en action - refactoring
Tdd en action - refactoring
 
Human Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDHuman Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDD
 
C'est quoi, du bon code ?
C'est quoi, du bon code ?C'est quoi, du bon code ?
C'est quoi, du bon code ?
 
[Agile Testing Day] Test Driven Development (TDD)
[Agile Testing Day] Test Driven Development (TDD)[Agile Testing Day] Test Driven Development (TDD)
[Agile Testing Day] Test Driven Development (TDD)
 
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAgile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
 
Clean code en pratique
Clean code en pratiqueClean code en pratique
Clean code en pratique
 
Remettons les tests au coeur des projets
Remettons les tests au coeur des projetsRemettons les tests au coeur des projets
Remettons les tests au coeur des projets
 
Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Introduction aux spécifications exécutables (dit aussi atdd, bdd)Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Introduction aux spécifications exécutables (dit aussi atdd, bdd)
 
201001 TDD
201001 TDD201001 TDD
201001 TDD
 
AT Marseille 2011 - Réduisons les gaspillages
AT Marseille 2011 - Réduisons les gaspillagesAT Marseille 2011 - Réduisons les gaspillages
AT Marseille 2011 - Réduisons les gaspillages
 
C'est quoi le Software Craftsmanship ?
C'est quoi le Software Craftsmanship ?C'est quoi le Software Craftsmanship ?
C'est quoi le Software Craftsmanship ?
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratif
 
Sortir de l’ère des héros - HumanTalks Paris Mars 2017
Sortir de l’ère des héros - HumanTalks Paris Mars 2017Sortir de l’ère des héros - HumanTalks Paris Mars 2017
Sortir de l’ère des héros - HumanTalks Paris Mars 2017
 
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
 
Tester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techTester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue tech
 
Mockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilMockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice Duteil
 
Développement piloté par les tests - DDD
Développement piloté par les tests - DDDDéveloppement piloté par les tests - DDD
Développement piloté par les tests - DDD
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - Puppet
 

Andere mochten auch

Spécification par l'exemple & Tests d'Acceptance Agile avec cucumber
Spécification par l'exemple & Tests d'Acceptance Agile  avec cucumberSpécification par l'exemple & Tests d'Acceptance Agile  avec cucumber
Spécification par l'exemple & Tests d'Acceptance Agile avec cucumber
Jean-Michel Garnier
 
Présentation sur Maven 2 et petit retour d'expérience
Présentation sur Maven 2 et petit retour d'expériencePrésentation sur Maven 2 et petit retour d'expérience
Présentation sur Maven 2 et petit retour d'expérience
Khanh Maudoux
 
Behavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberBehavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using Cucumber
KMS Technology
 
Behavior Driven Development with Cucumber
Behavior Driven Development with CucumberBehavior Driven Development with Cucumber
Behavior Driven Development with Cucumber
Brandon Keepers
 
GTD Modèles papiers couleur à imprimer (hPDA)
GTD Modèles papiers couleur à imprimer (hPDA)GTD Modèles papiers couleur à imprimer (hPDA)
GTD Modèles papiers couleur à imprimer (hPDA)
Nicolas Stampf
 
Spécifications exécutables : Une pratique au cœur du développement Agile - Al...
Spécifications exécutables : Une pratique au cœur du développement Agile - Al...Spécifications exécutables : Une pratique au cœur du développement Agile - Al...
Spécifications exécutables : Une pratique au cœur du développement Agile - Al...
Agile Montréal
 

Andere mochten auch (20)

"Spécification par l'exemple" par l'exemple : le BDD démystifié
"Spécification par l'exemple" par l'exemple : le BDD démystifié"Spécification par l'exemple" par l'exemple : le BDD démystifié
"Spécification par l'exemple" par l'exemple : le BDD démystifié
 
Spécification par l'exemple & Tests d'Acceptance Agile avec cucumber
Spécification par l'exemple & Tests d'Acceptance Agile  avec cucumberSpécification par l'exemple & Tests d'Acceptance Agile  avec cucumber
Spécification par l'exemple & Tests d'Acceptance Agile avec cucumber
 
QA Fest 2014. Анна Гаврилюк. Cool as сucumber
QA Fest 2014. Анна Гаврилюк. Cool as сucumberQA Fest 2014. Анна Гаврилюк. Cool as сucumber
QA Fest 2014. Анна Гаврилюк. Cool as сucumber
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5
 
Dot Net Core
Dot Net CoreDot Net Core
Dot Net Core
 
Aumentando reaproveitamento de código com MvvmCross
Aumentando reaproveitamento de código com MvvmCrossAumentando reaproveitamento de código com MvvmCross
Aumentando reaproveitamento de código com MvvmCross
 
.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais
 
Decouvrir CQRS (sans Event sourcing) par la pratique
Decouvrir CQRS (sans Event sourcing) par la pratiqueDecouvrir CQRS (sans Event sourcing) par la pratique
Decouvrir CQRS (sans Event sourcing) par la pratique
 
Présentation sur Maven 2 et petit retour d'expérience
Présentation sur Maven 2 et petit retour d'expériencePrésentation sur Maven 2 et petit retour d'expérience
Présentation sur Maven 2 et petit retour d'expérience
 
Introduction to c#
Introduction to c#Introduction to c#
Introduction to c#
 
Test acceptance
Test acceptanceTest acceptance
Test acceptance
 
Behavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberBehavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using Cucumber
 
ASP.NET Core 1.0 Overview
ASP.NET Core 1.0 OverviewASP.NET Core 1.0 Overview
ASP.NET Core 1.0 Overview
 
Visual studio 2015 and .net core 5 – get ready to rumble
Visual studio 2015 and .net core 5  – get ready to rumbleVisual studio 2015 and .net core 5  – get ready to rumble
Visual studio 2015 and .net core 5 – get ready to rumble
 
Behavior Driven Development with Cucumber
Behavior Driven Development with CucumberBehavior Driven Development with Cucumber
Behavior Driven Development with Cucumber
 
GTD Modèles papiers couleur à imprimer (hPDA)
GTD Modèles papiers couleur à imprimer (hPDA)GTD Modèles papiers couleur à imprimer (hPDA)
GTD Modèles papiers couleur à imprimer (hPDA)
 
BDD in Action - building software that matters
BDD in Action - building software that mattersBDD in Action - building software that matters
BDD in Action - building software that matters
 
Keynote .NET 2015 : une nouvelle ère
Keynote .NET 2015 : une nouvelle èreKeynote .NET 2015 : une nouvelle ère
Keynote .NET 2015 : une nouvelle ère
 
Tdd cara nov2010
Tdd cara nov2010Tdd cara nov2010
Tdd cara nov2010
 
Spécifications exécutables : Une pratique au cœur du développement Agile - Al...
Spécifications exécutables : Une pratique au cœur du développement Agile - Al...Spécifications exécutables : Une pratique au cœur du développement Agile - Al...
Spécifications exécutables : Une pratique au cœur du développement Agile - Al...
 

Ähnlich wie Pizza party 30-09-2011 bdd-cucumber

Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
SEO CAMP
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
boulonvert
 

Ähnlich wie Pizza party 30-09-2011 bdd-cucumber (20)

10 ans de Code (Agile Bordeaux 2019).pptx
10 ans de Code (Agile Bordeaux 2019).pptx10 ans de Code (Agile Bordeaux 2019).pptx
10 ans de Code (Agile Bordeaux 2019).pptx
 
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualifeSoirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
 
Native script
Native scriptNative script
Native script
 
Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)
 
Agile Methodologies
Agile MethodologiesAgile Methodologies
Agile Methodologies
 
AgileTour Strasbourg 2011 BDD with jBehave
AgileTour Strasbourg 2011 BDD with jBehaveAgileTour Strasbourg 2011 BDD with jBehave
AgileTour Strasbourg 2011 BDD with jBehave
 
Agile - Les stories INVEST, 3C et SMART
Agile - Les stories INVEST, 3C et SMARTAgile - Les stories INVEST, 3C et SMART
Agile - Les stories INVEST, 3C et SMART
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
DDD session BrownBagLunch (FR)
DDD session BrownBagLunch (FR)DDD session BrownBagLunch (FR)
DDD session BrownBagLunch (FR)
 
La Rochelle workshop 2016
La Rochelle workshop 2016La Rochelle workshop 2016
La Rochelle workshop 2016
 
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
 
Synergies entre DEV et SEO (SeoCampus 2019)
Synergies entre DEV et SEO (SeoCampus 2019)Synergies entre DEV et SEO (SeoCampus 2019)
Synergies entre DEV et SEO (SeoCampus 2019)
 
Domain Driven Design - Agile France 2010
Domain Driven Design - Agile France 2010Domain Driven Design - Agile France 2010
Domain Driven Design - Agile France 2010
 
Gérer l'inconnu avec peu de moyens par le développement itératif - L'agili...
Gérer l'inconnu avec peu de moyens par le développement itératif - L'agili...Gérer l'inconnu avec peu de moyens par le développement itératif - L'agili...
Gérer l'inconnu avec peu de moyens par le développement itératif - L'agili...
 
DDD Introduction
DDD IntroductionDDD Introduction
DDD Introduction
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8
 
Behavior Driven Development - agile testing day
Behavior Driven Development - agile testing dayBehavior Driven Development - agile testing day
Behavior Driven Development - agile testing day
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
Toutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDBToutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDB
 
Agilité et SharePoint: Incompatible? On gage que non!
Agilité et SharePoint: Incompatible? On gage que non!Agilité et SharePoint: Incompatible? On gage que non!
Agilité et SharePoint: Incompatible? On gage que non!
 

Mehr von Hervé Leclerc (8)

Octo talk : docker multi-host networking
Octo talk : docker multi-host networking Octo talk : docker multi-host networking
Octo talk : docker multi-host networking
 
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
 
Alter Way Petit Dejeuner Drupal7
Alter Way Petit Dejeuner Drupal7Alter Way Petit Dejeuner Drupal7
Alter Way Petit Dejeuner Drupal7
 
SSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLSSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQL
 
Ecl J2ee Igc2
Ecl J2ee Igc2Ecl J2ee Igc2
Ecl J2ee Igc2
 
Mobile Cloud Computing
Mobile Cloud ComputingMobile Cloud Computing
Mobile Cloud Computing
 
Expertise Alterway Au Service Des Projets Drupal 0.6
Expertise Alterway Au Service Des Projets Drupal   0.6Expertise Alterway Au Service Des Projets Drupal   0.6
Expertise Alterway Au Service Des Projets Drupal 0.6
 
Expertise Alterway Au Service Des Projets Talend
Expertise Alterway Au Service Des Projets TalendExpertise Alterway Au Service Des Projets Talend
Expertise Alterway Au Service Des Projets Talend
 

Pizza party 30-09-2011 bdd-cucumber

  • 1. BDD – CUCUMBER Behavior Driven Development Introduction avec Cucumber & Cucumber- nagios Hervé Leclerc Septembre 2011
  • 3. TDD – BDD – DDD ● Méthodes de développement Agile ● TDD : Test Driven Development ● BDD : Behavior Driven Development ● DDD : Domain Driven Design
  • 4. DDD ● Méthode de conception logiciel pilotée par le domaine, le métier ● L'approche est reconnue mais peu connue ● Focus sur les aspect métiers ● Lignes directrices concernant pratiques et organisation du code pour obtenir un code reflet fidèle au métier qu'il couvre et ayant une meilleure résistance au changement.
  • 5. TDD ● Wikipédia : ● Écrire un premier test ● Vérifier qu'il échoue (car le code qu'il teste n'existe pas), afin de vérifier que le test est valide ● Écrire juste le code suffisant pour passer le test ● Vérifier que le test passe ; ● Puis re factoriser le code, c'est-à-dire l'améliorer tout en gardant les mêmes fonctionnalités.
  • 6. LE TDD C'EST BIEN MAIS... ● Ça sert à quoi d’écrire les tests en premier ? ● Ok, j’écris les tests en premier mais quel est le premier test que j’écris ? ● Je dois tout tester ou seulement certaines choses ?
  • 7. TDD BDD DDD
  • 8. BDD ● 2003 Dan North en défini le concept ● Principes : ● "Tout est comportement", où le pôle commercial et technologique doivent se référer à des comportements identiques et parler le même langage. ● "Où le business compte", c’est à dire que chaque système doit apporter un retour sur le business ● "EnoughIsEnough", faire ce qu’il faut pour atteindre son but fixé, ni plus, ni moins
  • 9. BDD : Scénario ● On écrit des scénarios (story) ● Tous les scénarios suivent le même modèle : ● Un contexte ● Une demande de fonctionnalité ● La récupération d'un bénéfice (ou pas) ● Parfaitement adaptée à Scrum ● Permet à tout le monde (CP,DEV,COM,CLI...) d'exprimer des besoins dans même langage ● Les scénarios servent de critères d'acceptations → une fois acceptés on est sûr que l'application se comporte comme ce qui a été défini dans les scénarios
  • 10. BDD → cucumber Story : As a [rôle] I want to (some action) So that (business value) Feature Scenario: Title Given [some context] And [Additionnal context] When [Event] Then [outcome]
  • 11. cucumber ● Gem permettant d’exécuter des fonctionnalités écrites sous forme de fichiers texte afin de réaliser des tests automatisés ● Chaque Feature peut contenir plusieurs scénarios ● La facilité d'écriture des scénario permet à des non informaticiens d'écrire les fonctionnalité ● Le développeurs développeront le code pour réaliser les fonctions scénario
  • 12. Exemple de scénario Feature: www.alterway.fr It should be up And I should be able to search for things Scenario: Look Host www.alterway.fr When I lookup "www.alterway.fr" Then the name should resolve to "XXX.XXX.XXX.XXX" Scenario: Searching for things When I go to "http://www.alterway.fr" And I fill in "search_block_form" with "industrialisation" And I press "Recherche" Then I should see "Industrialisation Php"
  • 13. Gherkin est i18n so... # language: fr Fonctionnalité: www.alterway.fr Il devrait être en ligne Et Il devrait être capable de chercher des trucs Scénario: Chercher des trucs Etant donné Je suis sur un HTTP authentifié avec les crédences suivantes: | username | password | |an-user | a-password | Quand Je vais sur "http://www.example.fr/" Et Je remplis "search_block_form" avec "industrialisation" Et Je clique sur "Recherche" Alors Je devrais voir "Industrialisation Php" Quand Je suis "Industrialisation Php" Alors Je devrais voir "Le constat est clair"
  • 14. En Action ! an-user a-password
  • 15.
  • 16. cucumber-nagios ● Permet de faire du BDD sur de l'infra
  • 18. DEMO