pizza party 30-09-2011 bdd-cucumber

18
BDD – CUCUMBER Behavior Driven Development Introduction avec Cucumber & Cucumber- nagios Septembre 2011 Septembre 2011 Hervé Leclerc Hervé Leclerc

Upload: herve-leclerc

Post on 27-Jun-2015

479 views

Category:

Technology


0 download

DESCRIPTION

Pizza Party 30 sep 2011. Industrialisation. BDD

TRANSCRIPT

Page 1: Pizza party 30-09-2011 bdd-cucumber

BDD – CUCUMBER

Behavior Driven DevelopmentIntroduction avec Cucumber & Cucumber-

nagios

Septembre 2011Septembre 2011Hervé LeclercHervé Leclerc

Page 2: Pizza party 30-09-2011 bdd-cucumber

BDDTDDDDD

CQCB ?

Page 3: Pizza party 30-09-2011 bdd-cucumber

TDD – BDD – DDD ● Méthodes de développement Agile● TDD : Test Driven Development● BDD : Behavior Driven Development● DDD : Domain Driven Design

Page 4: Pizza party 30-09-2011 bdd-cucumber

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.

Page 5: Pizza party 30-09-2011 bdd-cucumber

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.

Page 6: Pizza party 30-09-2011 bdd-cucumber

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 ?

Page 7: Pizza party 30-09-2011 bdd-cucumber

TDDTDD

DDDDDD

BDDBDD

Page 8: Pizza party 30-09-2011 bdd-cucumber

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

Page 9: Pizza party 30-09-2011 bdd-cucumber

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

Page 10: Pizza party 30-09-2011 bdd-cucumber

BDD → cucumber

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

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

Scenario: TitleGiven [some context]And [Additionnal context]When [Event]Then [outcome]

Scenario: TitleGiven [some context]And [Additionnal context]When [Event]Then [outcome]

FeatureFeature

Page 11: Pizza party 30-09-2011 bdd-cucumber

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

Page 12: Pizza party 30-09-2011 bdd-cucumber

Exemple de scénarioFeature: 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"

Page 13: Pizza party 30-09-2011 bdd-cucumber

Gherkin est i18n so...# language: frFonctionnalité: 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"

Page 14: Pizza party 30-09-2011 bdd-cucumber

En Action !

an-useran-user a-passworda-password

Page 15: Pizza party 30-09-2011 bdd-cucumber
Page 16: Pizza party 30-09-2011 bdd-cucumber

cucumber-nagios● Permet de faire du BDD sur de l'infra

Page 17: Pizza party 30-09-2011 bdd-cucumber

Demain

Page 18: Pizza party 30-09-2011 bdd-cucumber

DEMO