SlideShare une entreprise Scribd logo
1
Développement d’un projet
billettique piloté par les
tests métiers (BDD)
2
3
Laurent Py
@py_laurent
laurent.py@hiptest.net
http://hiptest.net
Raphaël Citeau
rciteau@parkeon.com
http://www.parkeon.com
Plan
• Contexte projet
• Pourquoi avoir choisi l’approche BDD
• Le déploiement du BDD étape par étape
• Les pratiques clés
• Conclusion
4
Contexte projet
Le projet : Helsinki
• donneur d’ordre finlandais (HSL), Intégrateur système
Tieto (fournisseurs rang 1), plusieurs partenaires dont
Parkeon
• un planning sur 3 ans
• un projet d’intégration multi-culturel
• 4000 équipements connectés
• 360 millions de passagers par an
• une migration de système existant
5
Contexte projet
Les phases de projet:
• Analyse fonctionnelle (1 an)
• Architecture (6 mois en parallèle)
• Cycles de développement et release (de 3
mois à 2 semaines en mode BDD)
6
Contexte projet
Le système :
7
Validation - Contrôle
(Android)
Vente - Distribution
(Web service)
Paramétrage et supervision
(back office node JS)
Contexte projet
Organisation Parkeon:
Management
1 Directeur de Projet
5 Chefs de Projet
1 x Design Authority
2 Architectes
4 Product Owners
4 x Équipe de Développement :
1 Team Leader / Kanban Master
1 Testeur
5-6 Développeurs
2 x Équipe de test
5-6 Testeurs
8
Au fait c’est quoi BDD?
9
Behavior Driven Development en un
clin d’oeil
• Créer une compréhension partagée du
système avec des exemples
• Basé sur un langage métier commun
• Définition du stop
• Lorsque que les tests/exemples sont
automatisés, ils deviennent la spec vivante.
10
Story vue par le métier
11
Métier
Ce que je veux
Story vue par le développeur
12
MétierDéveloppeur
Ce que j’ai compris et développe
Story vue par le testeur
13
MétierDéveloppeurTesteur
Ce que j’ai compris et teste
Ce que l’on va réellement faire
14
MétierDéveloppeurTesteur
Un contrat basé sur des exemples
Une fois les exemples/tests exécutés
15
Spécification vivante
Pourquoi avoir choisi l’approche
BDD?
16
Enjeux de Management de projet
• Définir une méthode applicable à tous les
archétypes d’équipes
• Favoriser un découpage fonctionnel basé sur
la valeur et projetable sur un planning
• Maximiser l’automatisation des tests
17
Enjeux de Maintenance
• Assurer une qualité de service continue avec
une équipe (très) réduite
• Faciliter la transmission des connaissances
• Fournir un framework pour développer des
nouvelles fonctionnalités
18
Le déploiement du BDD étape par
étape
19
Test des sous systèmes de façon
autonome
20
Artefacts :
mockups
simulateurs
sondes
Difficultés:
uniformiser le dictionnaire de donnée (vocabulaire)
limiter le nombre de steps
limiter le nombre d’implémentations pour 1 step
ne pas perdre le fil avec l’exigence initiale (traçabilité et
sémantique)
• La Design Authority définit les comportements en relation avec le client
• Les PO et Développeurs les formalisent en BDD et développent ces comportements
• Les équipes de Testeurs implémentent les étapes de test et enrichissent la librairie
de l’automate
• Une fois implémentés, les tests sont planifiés dans l’intégration continue
Test d’intégration et de bout
en bout
21
• Les Développeurs réutilisent les étapes de test définies précédemment pour chaque
module afin de les intégrer 2 à 2 (avant livraison interne)
• Les équipes de test font de même, sur l’ensemble du système, pour réaliser une
intégration bout en bout (après livraison interne)
• Ces tests sont planifiés dans une intégration continue transverse
Artefacts :
simulateurs
sondes
robots
Difficultés:
limiter la dépendance avec un état initial du système
prendre en compte la volumétrie du système en production
Validation du système
22
• Les équipes de test et la DA définissent des scénarios qui vont mettre en jeu des
cycles de vie “métiers” (je suis administrateur, je suis conducteur, ...)
• Ces tests sont exécutés pour la plupart manuellement (mais rapidement)
• Les tests “voyageurs”, les plus critiques, sont néanmoins tous automatisés
• Cette base de tests sert aussi aux démo réalisées avec le client
Artefacts :
sondes
robots
Difficultés:
prouver la couverture des exigences
limiter la dépendance avec un état initial du système
interactions «physiques» avec le système
Synthèse
23
Toutes les équipes ont participé à la réalisation d’un objectif commun :
construire une bibliothèque et un automate de tests leur permettant
de valider l’ensemble du système
Le BDD a donné un cadre au contrat qui les liait
La démarche a été perçue avec enthousiasme par les équipes, sans
contrainte. Elle a l’avantage de mettre en avant la valeur humaine
et de favoriser les échanges.
Les pratiques clés
24
Langage commun spécifique au métier
Testeur
我希望我可
以混合颜色
function(c1, c2) {
if (c1==c2) { return c1;
}
else { … }
};
Expert métier Développeur
Given the color red
and the color green
when you mix the colors
then you obtain yellow
25
Syntaxe Gherkin
Given : Étant donné un état
When : Lorsqu’une action est effectuée
Then : Une conséquence est constatée
26
Exemple d’un comportement
27
Être consistant dans la terminologie
28
Autocomplete
Refactoring continu des tests
29
Détection des duplications pour créer un seul
point de maintenance
Refactoring continu des tests
30
Propagation automatique des modifications
sur le langage métier
Processus outillé
31
1- Détailler les stories
2 - Raffiner les cas de
tests
3 - Implémenter les
stories et tests
4 - Orchestrer les builds et
tests runs
5 - Exécuter les tests
Résultats
Automatisation et check (BDD)
32
1635 tests fonctionnels unitaires
990 tests d’intégration sous systèmes
475 tests d’intégration système
200 tests de validation métiers
Langage métier: 1690 steps
Conlusion
33
Investissement en test
34
Répartition des coûts de développement
Respect du calendrier
35
Cohésion du planning:
• Par rapport aux engagements pris, le plus gros
décalage de livraison a été d’une semaine
• Aucun déscopage fonctionnel n’a été réalisé pour
tenir le planning
• Environ 10% de fonctions (sur 800) ont pu être
modifiées/ajoutées en parallèle du développement
initial.
Répartition des défauts par phase
36
Gain sur la qualité du système délivré
Répartition des défauts par domaine
37
Facilité d’intégration du BDD et défauts Clients
● Équipements
○ Intégration compliquée
○ Fonctionne en mode produit pour
plusieurs projets.
○ Pas de testeur dans l’équipe
● Back Office
○ Adhésion forte
○ Mais 3 équipes différentes
○ et «out sourcées»
● Serveur de Vente
○ Adhésion très forte
○ 1 équipe locale
Questions ?
38
39
Laurent Py
@py_laurent
laurent.py@hiptest.net
http://hiptest.net
Raphaël Citeau
rciteau@parkeon.com
http://www.parkeon.com

Contenu connexe

Tendances

20090113 03 - Exigences et mise en oeuvre du processus mesure et analyse
20090113 03 - Exigences et mise en oeuvre du processus mesure et analyse20090113 03 - Exigences et mise en oeuvre du processus mesure et analyse
20090113 03 - Exigences et mise en oeuvre du processus mesure et analyse
LeClubQualiteLogicielle
 
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
LeClubQualiteLogicielle
 
DevOps vu par les ops
DevOps vu par les opsDevOps vu par les ops
DevOps vu par les ops
Michel HUBERT
 
Il était une fois le Continuous Delivery chez Meetic
Il était une fois le Continuous Delivery chez MeeticIl était une fois le Continuous Delivery chez Meetic
Il était une fois le Continuous Delivery chez Meetic
Joris Calabrese
 
20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps
LeClubQualiteLogicielle
 
Devops, ça change quoi pour moi développeur ?
Devops, ça change quoi pour moi développeur ?Devops, ça change quoi pour moi développeur ?
Devops, ça change quoi pour moi développeur ?
antony_guilloteau
 
Et si mon test était la spécification de mon application ? - JACOB - iWE - So...
Et si mon test était la spécification de mon application ? - JACOB - iWE - So...Et si mon test était la spécification de mon application ? - JACOB - iWE - So...
Et si mon test était la spécification de mon application ? - JACOB - iWE - So...
TelecomValley
 
Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)Fabian Piau
 
20140410 - Choisir et implanter un outil de test
20140410 - Choisir et implanter un outil de test20140410 - Choisir et implanter un outil de test
20140410 - Choisir et implanter un outil de test
LeClubQualiteLogicielle
 
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
LeClubQualiteLogicielle
 
A la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFE
A la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFEA la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFE
A la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFE
TelecomValley
 
20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?
LeClubQualiteLogicielle
 
Partie 1 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...
Partie 1 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...Partie 1 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...
Partie 1 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...
Bruno Flaven
 
Meilleures pratiques en gestion de projets agile [Webinaire]
Meilleures pratiques en gestion de projets agile [Webinaire]Meilleures pratiques en gestion de projets agile [Webinaire]
Meilleures pratiques en gestion de projets agile [Webinaire]
Technologia Formation
 
Agile Methodologies
Agile MethodologiesAgile Methodologies
Agile Methodologies
Jean-Philippe Jacoupy
 
DODMTL 2019 - Agile et DevOps chez Croesus
DODMTL 2019 - Agile et DevOps chez CroesusDODMTL 2019 - Agile et DevOps chez Croesus
DODMTL 2019 - Agile et DevOps chez Croesus
Martin Deslongchamps
 
Méthodes agile
Méthodes agileMéthodes agile
Méthodes agile
ISSAE Cnam Liban
 
Méthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiquesMéthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiquesSirine Barguaoui
 
Partie 2 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...
Partie 2 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...Partie 2 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...
Partie 2 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...
Bruno Flaven
 
Développement en méthode agile
Développement en méthode agileDéveloppement en méthode agile
Développement en méthode agilelaurent bristiel
 

Tendances (20)

20090113 03 - Exigences et mise en oeuvre du processus mesure et analyse
20090113 03 - Exigences et mise en oeuvre du processus mesure et analyse20090113 03 - Exigences et mise en oeuvre du processus mesure et analyse
20090113 03 - Exigences et mise en oeuvre du processus mesure et analyse
 
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
 
DevOps vu par les ops
DevOps vu par les opsDevOps vu par les ops
DevOps vu par les ops
 
Il était une fois le Continuous Delivery chez Meetic
Il était une fois le Continuous Delivery chez MeeticIl était une fois le Continuous Delivery chez Meetic
Il était une fois le Continuous Delivery chez Meetic
 
20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps
 
Devops, ça change quoi pour moi développeur ?
Devops, ça change quoi pour moi développeur ?Devops, ça change quoi pour moi développeur ?
Devops, ça change quoi pour moi développeur ?
 
Et si mon test était la spécification de mon application ? - JACOB - iWE - So...
Et si mon test était la spécification de mon application ? - JACOB - iWE - So...Et si mon test était la spécification de mon application ? - JACOB - iWE - So...
Et si mon test était la spécification de mon application ? - JACOB - iWE - So...
 
Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)
 
20140410 - Choisir et implanter un outil de test
20140410 - Choisir et implanter un outil de test20140410 - Choisir et implanter un outil de test
20140410 - Choisir et implanter un outil de test
 
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
 
A la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFE
A la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFEA la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFE
A la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFE
 
20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?
 
Partie 1 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...
Partie 1 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...Partie 1 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...
Partie 1 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...
 
Meilleures pratiques en gestion de projets agile [Webinaire]
Meilleures pratiques en gestion de projets agile [Webinaire]Meilleures pratiques en gestion de projets agile [Webinaire]
Meilleures pratiques en gestion de projets agile [Webinaire]
 
Agile Methodologies
Agile MethodologiesAgile Methodologies
Agile Methodologies
 
DODMTL 2019 - Agile et DevOps chez Croesus
DODMTL 2019 - Agile et DevOps chez CroesusDODMTL 2019 - Agile et DevOps chez Croesus
DODMTL 2019 - Agile et DevOps chez Croesus
 
Méthodes agile
Méthodes agileMéthodes agile
Méthodes agile
 
Méthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiquesMéthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiques
 
Partie 2 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...
Partie 2 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...Partie 2 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...
Partie 2 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...
 
Développement en méthode agile
Développement en méthode agileDéveloppement en méthode agile
Développement en méthode agile
 

Similaire à Développement d'un grand projet piloté par les tests (BDD)

Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie TrudelHa zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Agile Montréal
 
Methodologie projet
Methodologie projet Methodologie projet
Methodologie projet
Benjamin ACHAB
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016
Erradi Mohamed
 
SIP@iPLM2015
SIP@iPLM2015SIP@iPLM2015
SIP@iPLM2015
Dr Nicolas Figay
 
IBM Bluemix Paris Meetup #24 2017-06-26 - Société Générale testimony Decis...
IBM Bluemix Paris Meetup #24   2017-06-26 - Société Générale testimony  Decis...IBM Bluemix Paris Meetup #24   2017-06-26 - Société Générale testimony  Decis...
IBM Bluemix Paris Meetup #24 2017-06-26 - Société Générale testimony Decis...
IBM France Lab
 
NightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous DeliveryNightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous Delivery
Zenika
 
20120124 05 - Le Model-based Testing aujourd'hui (Inria)
20120124 05 - Le Model-based Testing aujourd'hui (Inria)20120124 05 - Le Model-based Testing aujourd'hui (Inria)
20120124 05 - Le Model-based Testing aujourd'hui (Inria)
LeClubQualiteLogicielle
 
Think tank présentation
Think tank   présentationThink tank   présentation
Think tank présentation
Jacky Galicher
 
Accéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.NetAccéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.Net
Frédéric Vandenbriele
 
Developement logiciel: comment livrer de la qualite ?
Developement logiciel: comment livrer  de la qualite ?Developement logiciel: comment livrer  de la qualite ?
Developement logiciel: comment livrer de la qualite ?
Innobec
 
[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...
[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...
[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...
Niji
 
Drupal un projet comme les autres ? Drupalcamp Paris 2013
Drupal un projet comme les autres ? Drupalcamp Paris 2013Drupal un projet comme les autres ? Drupalcamp Paris 2013
Drupal un projet comme les autres ? Drupalcamp Paris 2013
Artusamak
 
Présenataion Conférence en ingénierie de systèmes.pdf
Présenataion Conférence en ingénierie de systèmes.pdfPrésenataion Conférence en ingénierie de systèmes.pdf
Présenataion Conférence en ingénierie de systèmes.pdf
omdaiji
 
Intégration continue
Intégration continueIntégration continue
Intégration continueKlee Group
 
Bonnes pratiques : la hiérarchie des exigences
Bonnes pratiques : la hiérarchie des exigencesBonnes pratiques : la hiérarchie des exigences
Bonnes pratiques : la hiérarchie des exigencesCaroline de Villèle
 
Esiea - 5A - Archi 1/3
Esiea - 5A - Archi 1/3Esiea - 5A - Archi 1/3
Esiea - 5A - Archi 1/3
Gaëtan ELEOUET
 
Agilite togo jug_final
Agilite togo jug_finalAgilite togo jug_final
Agilite togo jug_final
agnes_crepet
 
Développement efficace d'application logicielle
Développement efficace d'application logicielleDéveloppement efficace d'application logicielle
Développement efficace d'application logicielle
Pyxis Technologies
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement MicrosoftChristophe HERAL
 
20070320 05 - Squale Portail qualimétrie
20070320 05 - Squale Portail qualimétrie20070320 05 - Squale Portail qualimétrie
20070320 05 - Squale Portail qualimétrie
LeClubQualiteLogicielle
 

Similaire à Développement d'un grand projet piloté par les tests (BDD) (20)

Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie TrudelHa zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
 
Methodologie projet
Methodologie projet Methodologie projet
Methodologie projet
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016
 
SIP@iPLM2015
SIP@iPLM2015SIP@iPLM2015
SIP@iPLM2015
 
IBM Bluemix Paris Meetup #24 2017-06-26 - Société Générale testimony Decis...
IBM Bluemix Paris Meetup #24   2017-06-26 - Société Générale testimony  Decis...IBM Bluemix Paris Meetup #24   2017-06-26 - Société Générale testimony  Decis...
IBM Bluemix Paris Meetup #24 2017-06-26 - Société Générale testimony Decis...
 
NightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous DeliveryNightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous Delivery
 
20120124 05 - Le Model-based Testing aujourd'hui (Inria)
20120124 05 - Le Model-based Testing aujourd'hui (Inria)20120124 05 - Le Model-based Testing aujourd'hui (Inria)
20120124 05 - Le Model-based Testing aujourd'hui (Inria)
 
Think tank présentation
Think tank   présentationThink tank   présentation
Think tank présentation
 
Accéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.NetAccéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.Net
 
Developement logiciel: comment livrer de la qualite ?
Developement logiciel: comment livrer  de la qualite ?Developement logiciel: comment livrer  de la qualite ?
Developement logiciel: comment livrer de la qualite ?
 
[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...
[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...
[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...
 
Drupal un projet comme les autres ? Drupalcamp Paris 2013
Drupal un projet comme les autres ? Drupalcamp Paris 2013Drupal un projet comme les autres ? Drupalcamp Paris 2013
Drupal un projet comme les autres ? Drupalcamp Paris 2013
 
Présenataion Conférence en ingénierie de systèmes.pdf
Présenataion Conférence en ingénierie de systèmes.pdfPrésenataion Conférence en ingénierie de systèmes.pdf
Présenataion Conférence en ingénierie de systèmes.pdf
 
Intégration continue
Intégration continueIntégration continue
Intégration continue
 
Bonnes pratiques : la hiérarchie des exigences
Bonnes pratiques : la hiérarchie des exigencesBonnes pratiques : la hiérarchie des exigences
Bonnes pratiques : la hiérarchie des exigences
 
Esiea - 5A - Archi 1/3
Esiea - 5A - Archi 1/3Esiea - 5A - Archi 1/3
Esiea - 5A - Archi 1/3
 
Agilite togo jug_final
Agilite togo jug_finalAgilite togo jug_final
Agilite togo jug_final
 
Développement efficace d'application logicielle
Développement efficace d'application logicielleDéveloppement efficace d'application logicielle
Développement efficace d'application logicielle
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
 
20070320 05 - Squale Portail qualimétrie
20070320 05 - Squale Portail qualimétrie20070320 05 - Squale Portail qualimétrie
20070320 05 - Squale Portail qualimétrie
 

Plus de Laurent PY

Managing requirements and collaboration in Jira with BDD
Managing requirements and collaboration in Jira with BDDManaging requirements and collaboration in Jira with BDD
Managing requirements and collaboration in Jira with BDD
Laurent PY
 
How BDD can save your agile?
How BDD can save your agile?How BDD can save your agile?
How BDD can save your agile?
Laurent PY
 
Continuous testing for Agile and DevOps teams
Continuous testing for Agile and DevOps teamsContinuous testing for Agile and DevOps teams
Continuous testing for Agile and DevOps teams
Laurent PY
 
Testing in DevOps: UKStar conference
Testing in DevOps: UKStar conferenceTesting in DevOps: UKStar conference
Testing in DevOps: UKStar conference
Laurent PY
 
Implementing BDD at scale for agile and DevOps teams
Implementing BDD at scale for agile and DevOps teamsImplementing BDD at scale for agile and DevOps teams
Implementing BDD at scale for agile and DevOps teams
Laurent PY
 
Using Behavior Driven Development at scale
Using Behavior Driven Development at scaleUsing Behavior Driven Development at scale
Using Behavior Driven Development at scale
Laurent PY
 
Testing in a DevOps team
Testing in a DevOps teamTesting in a DevOps team
Testing in a DevOps team
Laurent PY
 
Accélérer les tests d’acceptation avec un DSL et du refactoring
Accélérer les tests d’acceptation avec un DSL et du refactoringAccélérer les tests d’acceptation avec un DSL et du refactoring
Accélérer les tests d’acceptation avec un DSL et du refactoring
Laurent PY
 
Acceptance Testing Driven Development, TDD
Acceptance Testing Driven Development, TDDAcceptance Testing Driven Development, TDD
Acceptance Testing Driven Development, TDD
Laurent PY
 

Plus de Laurent PY (9)

Managing requirements and collaboration in Jira with BDD
Managing requirements and collaboration in Jira with BDDManaging requirements and collaboration in Jira with BDD
Managing requirements and collaboration in Jira with BDD
 
How BDD can save your agile?
How BDD can save your agile?How BDD can save your agile?
How BDD can save your agile?
 
Continuous testing for Agile and DevOps teams
Continuous testing for Agile and DevOps teamsContinuous testing for Agile and DevOps teams
Continuous testing for Agile and DevOps teams
 
Testing in DevOps: UKStar conference
Testing in DevOps: UKStar conferenceTesting in DevOps: UKStar conference
Testing in DevOps: UKStar conference
 
Implementing BDD at scale for agile and DevOps teams
Implementing BDD at scale for agile and DevOps teamsImplementing BDD at scale for agile and DevOps teams
Implementing BDD at scale for agile and DevOps teams
 
Using Behavior Driven Development at scale
Using Behavior Driven Development at scaleUsing Behavior Driven Development at scale
Using Behavior Driven Development at scale
 
Testing in a DevOps team
Testing in a DevOps teamTesting in a DevOps team
Testing in a DevOps team
 
Accélérer les tests d’acceptation avec un DSL et du refactoring
Accélérer les tests d’acceptation avec un DSL et du refactoringAccélérer les tests d’acceptation avec un DSL et du refactoring
Accélérer les tests d’acceptation avec un DSL et du refactoring
 
Acceptance Testing Driven Development, TDD
Acceptance Testing Driven Development, TDDAcceptance Testing Driven Development, TDD
Acceptance Testing Driven Development, TDD
 

Développement d'un grand projet piloté par les tests (BDD)

  • 1. 1
  • 2. Développement d’un projet billettique piloté par les tests métiers (BDD) 2
  • 4. Plan • Contexte projet • Pourquoi avoir choisi l’approche BDD • Le déploiement du BDD étape par étape • Les pratiques clés • Conclusion 4
  • 5. Contexte projet Le projet : Helsinki • donneur d’ordre finlandais (HSL), Intégrateur système Tieto (fournisseurs rang 1), plusieurs partenaires dont Parkeon • un planning sur 3 ans • un projet d’intégration multi-culturel • 4000 équipements connectés • 360 millions de passagers par an • une migration de système existant 5
  • 6. Contexte projet Les phases de projet: • Analyse fonctionnelle (1 an) • Architecture (6 mois en parallèle) • Cycles de développement et release (de 3 mois à 2 semaines en mode BDD) 6
  • 7. Contexte projet Le système : 7 Validation - Contrôle (Android) Vente - Distribution (Web service) Paramétrage et supervision (back office node JS)
  • 8. Contexte projet Organisation Parkeon: Management 1 Directeur de Projet 5 Chefs de Projet 1 x Design Authority 2 Architectes 4 Product Owners 4 x Équipe de Développement : 1 Team Leader / Kanban Master 1 Testeur 5-6 Développeurs 2 x Équipe de test 5-6 Testeurs 8
  • 9. Au fait c’est quoi BDD? 9
  • 10. Behavior Driven Development en un clin d’oeil • Créer une compréhension partagée du système avec des exemples • Basé sur un langage métier commun • Définition du stop • Lorsque que les tests/exemples sont automatisés, ils deviennent la spec vivante. 10
  • 11. Story vue par le métier 11 Métier Ce que je veux
  • 12. Story vue par le développeur 12 MétierDéveloppeur Ce que j’ai compris et développe
  • 13. Story vue par le testeur 13 MétierDéveloppeurTesteur Ce que j’ai compris et teste
  • 14. Ce que l’on va réellement faire 14 MétierDéveloppeurTesteur Un contrat basé sur des exemples
  • 15. Une fois les exemples/tests exécutés 15 Spécification vivante
  • 16. Pourquoi avoir choisi l’approche BDD? 16
  • 17. Enjeux de Management de projet • Définir une méthode applicable à tous les archétypes d’équipes • Favoriser un découpage fonctionnel basé sur la valeur et projetable sur un planning • Maximiser l’automatisation des tests 17
  • 18. Enjeux de Maintenance • Assurer une qualité de service continue avec une équipe (très) réduite • Faciliter la transmission des connaissances • Fournir un framework pour développer des nouvelles fonctionnalités 18
  • 19. Le déploiement du BDD étape par étape 19
  • 20. Test des sous systèmes de façon autonome 20 Artefacts : mockups simulateurs sondes Difficultés: uniformiser le dictionnaire de donnée (vocabulaire) limiter le nombre de steps limiter le nombre d’implémentations pour 1 step ne pas perdre le fil avec l’exigence initiale (traçabilité et sémantique) • La Design Authority définit les comportements en relation avec le client • Les PO et Développeurs les formalisent en BDD et développent ces comportements • Les équipes de Testeurs implémentent les étapes de test et enrichissent la librairie de l’automate • Une fois implémentés, les tests sont planifiés dans l’intégration continue
  • 21. Test d’intégration et de bout en bout 21 • Les Développeurs réutilisent les étapes de test définies précédemment pour chaque module afin de les intégrer 2 à 2 (avant livraison interne) • Les équipes de test font de même, sur l’ensemble du système, pour réaliser une intégration bout en bout (après livraison interne) • Ces tests sont planifiés dans une intégration continue transverse Artefacts : simulateurs sondes robots Difficultés: limiter la dépendance avec un état initial du système prendre en compte la volumétrie du système en production
  • 22. Validation du système 22 • Les équipes de test et la DA définissent des scénarios qui vont mettre en jeu des cycles de vie “métiers” (je suis administrateur, je suis conducteur, ...) • Ces tests sont exécutés pour la plupart manuellement (mais rapidement) • Les tests “voyageurs”, les plus critiques, sont néanmoins tous automatisés • Cette base de tests sert aussi aux démo réalisées avec le client Artefacts : sondes robots Difficultés: prouver la couverture des exigences limiter la dépendance avec un état initial du système interactions «physiques» avec le système
  • 23. Synthèse 23 Toutes les équipes ont participé à la réalisation d’un objectif commun : construire une bibliothèque et un automate de tests leur permettant de valider l’ensemble du système Le BDD a donné un cadre au contrat qui les liait La démarche a été perçue avec enthousiasme par les équipes, sans contrainte. Elle a l’avantage de mettre en avant la valeur humaine et de favoriser les échanges.
  • 25. Langage commun spécifique au métier Testeur 我希望我可 以混合颜色 function(c1, c2) { if (c1==c2) { return c1; } else { … } }; Expert métier Développeur Given the color red and the color green when you mix the colors then you obtain yellow 25
  • 26. Syntaxe Gherkin Given : Étant donné un état When : Lorsqu’une action est effectuée Then : Une conséquence est constatée 26
  • 28. Être consistant dans la terminologie 28 Autocomplete
  • 29. Refactoring continu des tests 29 Détection des duplications pour créer un seul point de maintenance
  • 30. Refactoring continu des tests 30 Propagation automatique des modifications sur le langage métier
  • 31. Processus outillé 31 1- Détailler les stories 2 - Raffiner les cas de tests 3 - Implémenter les stories et tests 4 - Orchestrer les builds et tests runs 5 - Exécuter les tests Résultats
  • 32. Automatisation et check (BDD) 32 1635 tests fonctionnels unitaires 990 tests d’intégration sous systèmes 475 tests d’intégration système 200 tests de validation métiers Langage métier: 1690 steps
  • 34. Investissement en test 34 Répartition des coûts de développement
  • 35. Respect du calendrier 35 Cohésion du planning: • Par rapport aux engagements pris, le plus gros décalage de livraison a été d’une semaine • Aucun déscopage fonctionnel n’a été réalisé pour tenir le planning • Environ 10% de fonctions (sur 800) ont pu être modifiées/ajoutées en parallèle du développement initial.
  • 36. Répartition des défauts par phase 36 Gain sur la qualité du système délivré
  • 37. Répartition des défauts par domaine 37 Facilité d’intégration du BDD et défauts Clients ● Équipements ○ Intégration compliquée ○ Fonctionne en mode produit pour plusieurs projets. ○ Pas de testeur dans l’équipe ● Back Office ○ Adhésion forte ○ Mais 3 équipes différentes ○ et «out sourcées» ● Serveur de Vente ○ Adhésion très forte ○ 1 équipe locale