Pizza party 30-09-2011 bdd-cucumber

Post on 27-Jun-2015

479 views 0 download

Tags:

description

Pizza Party 30 sep 2011. Industrialisation. BDD

transcript

BDD – CUCUMBER

Behavior Driven DevelopmentIntroduction avec Cucumber & Cucumber-

nagios

Septembre 2011Septembre 2011Hervé LeclercHervé Leclerc

BDDTDDDDD

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 ?

TDDTDD

DDDDDD

BDDBDD

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)

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

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é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"

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"

En Action !

an-useran-user a-passworda-password

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

Demain

DEMO