© JouveExpertise Logicielle02/07/2014 1
Agile LAVALBehaviour Driven Development
03/07/2014
Eudes ELIESerge HARDY
© JouveExpertise Logicielle02/07/2014 2
BDD@Laval
BIENVENUEÀCETTESESSIONSURLE
BEHAVIOUR-DRIVENDEVELOPMENT.
© JouveExpertise Logicielle02/07/2014 3
BDD@Laval
En tant que participant Je veux savoir qui me fait face
Afin d’écouter plus attentivement
Qui sommes-nous?
© JouveExpertise Logicielle02/07/2014 4
BDD@Laval
• Ingénieur test chez Jouve
depuis 2012• Expert Selenium• Expert test
Eudes ELIE
© JouveExpertise Logicielle02/07/2014 5
BDD@Laval
• Ingénieur développement
chez Jouve depuis 2011• Scrum Master certifié• Coaching agile• En charge de la plateforme de
développement PHP• Co-organisateur Agile Tour
Rennes 2014
Serge HARDY
© JouveExpertise Logicielle02/07/2014 6
Présentation
En tant qu’orateur Je veux connaître les attentes du public
Afin d’adapter la forme et le discours
du support de présentation
Vos attentes
© JouveExpertise Logicielle02/07/2014 7
Présentation
Icebreaker
Tri à bulle des participants à 2 niveaux: agilité + test
© JouveExpertise Logicielle02/07/2014 8
BDD@Laval
En tant que participant Je souhaite une vue
d’ensemble de la présentation
Afin de savoir où on veut m’emmener
© JouveExpertise Logicielle02/07/2014 9
BDD@Laval
Présentation
Pourquoi le BDD ?
L’ agilité chez Jouve ITS
Qu’est ce que le BDD ?
Démonstration
Retour d’expérience
Questions/Réponses
© JouveExpertise Logicielle02/07/2014 10
BDD@Laval
PourquoileBDD?
© JouveExpertise Logicielle02/07/2014 11
BDD@Laval
En tant que néophyteJe souhaite une rapide introduction aux tests
agiles
Afin de mieux cerner le sujet
© JouveExpertise Logicielle02/07/2014 12
BDD@Laval
Le manifesteagile dit:
« Workingsoftware…
overcomprehensivedocumentation »
© JouveExpertise Logicielle02/07/2014 13
BDD@Laval
On souhaite réaliser des fonctionnalités
• simples• indépendantes• faciles à valider• feedback rapide• changement possible
© JouveExpertise Logicielle02/07/2014 14
BDD@Laval
PDCA(Deming/Shewart)
Procédé simple pour établir un cercle vertueux de qualité incrémental.
Approche systémique basée sur l’expérimentation
© JouveExpertise Logicielle02/07/2014 15
BDD@Laval
TDD = PDCAdudéveloppeur(Kent Beck)
Plan : Ecrire un test unitaire
Do : Coder au plus simple (KISS)
Check : Faire passer les tests
Act : Remanier le code
Qualité interne : « Est-ce que mon produit est bien construit? »
© JouveExpertise Logicielle02/07/2014 16
BDD@Laval
BDD=PDCAduresponsableproduit(PO)(Dan North)
Plan : Décrire un critère d’acceptation Do : Implémenter
Check : Démontrer
Act : Ajuster selon le feedback
Qualité externe : « Est-ce que je construis le bon produit? »
© JouveExpertise Logicielle02/07/2014 17
Jouve ITS
AGILITÉ@JOUVE
© JouveExpertise Logicielle02/07/2014 18
Jouve ITS
En tant que participantJe souhaite connaître la petite histoire de l’
agilité chez Jouve
Afin de comprendre l’ adoption du BDD
© JouveExpertise Logicielle02/07/2014 19
Jouve ITS
Groupe centenaire fondé en 1903Siège social à Mayenne
2500 salariés
19 sites
© JouveExpertise Logicielle02/07/2014 20
Jouve ITS
Activités orientées contenu
ImpressionServices Editoriaux
Technologies de l’informationDématérialisation
© JouveExpertise Logicielle02/07/2014 21
Jouve ITS
Agilité:transitionentaméeen2009
Contexte:
société industrielle de productionhistorique culturel historique technique
Changement insufflé de manière incrémentale
© JouveExpertise Logicielle02/07/2014 22
Jouve ITS
PourquoileBDDchezJouve?
Situationantinomique
Equipes DEV: volonté de faire du TDD, d’intégrer les tests dans la définition de fini
Equipe TEST: équipe spécialisée, autonome en aval
Maisinitiativesen//
© JouveExpertise Logicielle02/07/2014 23
Jouve ITS
PriseenmaindusujetduTDDcotéDEV(2012) formation expérimentation TDD Java+ PHP
Résultats découverte du BDD le TDD a une courbe d’apprentissage non neutre - maitrise
nécessaire de l’injection de dépendance
© JouveExpertise Logicielle02/07/2014 24
Jouve ITS
PriseenmaindusujetduBDDcotéTEST(2013)Etude des technos ciblées
Créationd’ungroupedetravailcommun
Résultats raccrochement des wagons par intégration des testeurs dans les équipes BDD sert de liant entre équipes accessoirement moins de bugs ;-)
© JouveExpertise Logicielle02/07/2014 25
BDD@Laval
QU’EST-CEQUELEBDD ?
© JouveExpertise Logicielle02/07/2014 26
BDD@Laval
En tant que participantJe souhaite avoir un
exemple de processus BDD
Afin de pouvoir l’implémenter moi-
même
© JouveExpertise Logicielle02/07/2014 27
BDD@Laval
Le manifesteagile dit:
«Individualsandinteractions
overprocessesandtools»
© JouveExpertise Logicielle02/07/2014 28
Qu’est-ce que le BDD ?
LeBDDestunmodedecommunicationtransverse
Danslebutd’unifierl’interprétationquechacunsefaitparrapportàsonmétier
Pourquoi?SpécifierTesterPrioriserEstimer
Pourqui?Développeur
Testeur
Responsable produit
Opérateur
Ergonome
…
© JouveExpertise Logicielle02/07/2014 29
Qu’est-ce que le BDD ?
Exemple:préparationd’uneUserStory• Définition du besoin métier• LeResponsableproduitet l’équipe
déterminent le contour fonctionnel en fonction du rapport valeur/coût souhaité
• Définition des critères d’acceptation associés (=> tests)
• Syntaxe Gherkin:critères d’acceptation en langage naturel/métier.
© JouveExpertise Logicielle02/07/2014 30
BDD@Laval
• l’outil crée le squelette des tests relatifs aux CA
• implémentation des tests• implémentation• TDD si on veut
Enphasederéalisation
© JouveExpertise Logicielle02/07/2014 31
BDD@Laval
BDD + TDD
© JouveExpertise Logicielle02/07/2014 32
BDD@Laval
C’est l’heure de la démo !
BDD = Spécification par l’exemple
© JouveExpertise Logicielle02/07/2014 33
Retour d’expérience
Unpointessentiel
Définition d’une stratégie de test incrémentale.=> pas d’usine à gaz au sprint 0+!=> story estimées, priorisées…
Implémenter le BDD de manière incrémentale pour obtenir un feedback rapide
=> Premiers tests en Dev I=> IC Test=> IC Build=> IC Deploy=> …
© JouveExpertise Logicielle02/07/2014 34
Les +++
• Behat: puissant, fiable, extensible• Selenium• Synthétiser/factoriser les CA• Compromis techniques pour rapidité des tests
(backdoor)• Gherkin à la planification• Plusieurs niveaux de couverture de test - jobs hourly
+ nightly• Rapports transverses lisibles• Facilité de prise en main
© JouveExpertise Logicielle02/07/2014 35
A améliorer
• Rester vigilant sur la qualité du code de test qui devient une application à part entière (testsU?)
• Capitaliser sur les rapports de tests• Mieux sensibiliser sur les coûts relatifs (TestsU
vs TestsA)
© JouveExpertise Logicielle02/07/2014 36
A éviter
• Exhaustivité des cas de test• Ecriture des tests d’acceptation en aveugle (sans
interface)• Tests d’acceptation à la place des tests U => coût• Tests d’acceptation ‘fonctionnels’
© JouveExpertise Logicielle02/07/2014 37
La suite
Evangéliser le processPackager l’offre pour réponses commerciales
Behaviour Driven Monitoring/Infrastructure
© JouveExpertise Logicielle02/07/2014 38
BDD@Laval
Formations agilité (Scrum, Kanban)
@sergehardy
[email protected]@jouve.fr
Pour en savoir plus
© JouveExpertise Logicielle02/07/2014 39
BDD@Laval
© JouveExpertise Logicielle02/07/2014 40
BDD@Laval
En tant qu’orateurJe souhaite avoir un
feedback sur la présentation
Afin de faire mieux la prochaine fois
© JouveExpertise Logicielle02/07/2014 41
BDD@Laval
Merci de votre attention!