SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Faites revivre vos spécifications   scrumday 2014
Yannick Grenzinger & Clément Rochas
Faites (re)vivre vos
spécifications
MERCI À NOS SPONSORS
Cette présentation est...
• Un REX!
• Une démo de mise en place de tests
automatisés!
• Un exemple de développement agile
en dans un milieu qui ne l’est pas…
“Quand le client m’affirme qu’il ne
retrouve pas les fonctionnalités
precisées dans sa spec”
“Quand je viens de finir les specs et
que je n’y ai rien compris”
Too
long!
didn’t
read
Faites revivre vos spécifications   scrumday 2014
Le contexte
• Opérateur téléphonique!
• Pas agile dans le process!
• Culture du héro
Le concept de l’appli
Faites revivre vos spécifications   scrumday 2014
Warning: L’image suivante peut
heurter la sensibilité des
plus agile d’entre nous.
LOT 1
Faites revivre vos spécifications   scrumday 2014
Quand la loi ne peut plus rien
pour vous, il vous reste un
recours...
The A(gile)TEAM
Racontez moi tout
depuis le début...
Décrire les comportements langage commun
(Given)(Etant donné) un contexte
(When)(Lorsque) l'utilisateur effectue certaines actions
(Then)(Alors) on doit pouvoir constater telles conséquences
Rétro story map
Les user stories composés
En tant d'utilisateur Je veux quelque chose de très complexe !
afin de faire l’action A
En tant que composant X !
Je veux implémenter
l’opération Y !
afin de faire l’action C !
et contribuer à A
En tant que composant Z !
Je veux implémenter
l’opération X afin de faire
l’action B !
et contribuer à A
Utilisateur
Composant
Spécifier par l’exemple
Exemples
BDD
Tests
d’acceptation
Spécifications liées aux
domaines métiers
Décrivent Vérifient
se transforment
Le tout
automatisé
Et maintenant comment on automatise?
JBehave: Ecrire notre 1er test BDD en 5 min
Un projet avec une classe Panier, nous allons utiliser JBehave
mvn archetype:generate -> 686 -> fr.xebia -> demo-scrumday
Scenario: Calculer le prix total du panier après avoir appliqué une taxe
Given un panier avec un prix total de <prixTotal> euros
And une taxe de <taxe>%
When on calcule le prix total avec la taxe
Then le prix total avec la taxe est de <prixAttendu> euros
Examples:
|prixTotal|taxe|prixAttendu|
| 100 | 0.2 | 120 |
Histoire d’un refactoring
Comment le BDD nous a permis de comprendre, de s’approprier et de
refactorer le legacy.!
!
Story:
En tant que catalogue, Je veux valider l'intégrité des groupes d’options

!
Un peu de contexte!
une offre contient X groupes

chaque groupe contient X options

On veut vérifier que les options des groupes sont cohérentes
Notre story sous format BDD
Scenario: tester l’intégrité des groupes d’options d’un panier client

Given un groupe Débit Internet d'une offre Mobile
Given on <action1> une option Internet Illimité 

Given on <action2> une option 100mo chaque mois
When le catalogue vérifie l'intégrité des groupes

Then le statut panier est <statutPanier>

Examples:

| action1 | action2 | statutPanier |

| SOUSCRIT | SOUSCRIT | KO |

| SOUSCRIT | RESILIE | OK |
traiter l’étape
Classe
Méthode
Offre
N groupes
N options
récupère les données de l’étape précédente
trier les options sélectionnées suivant le groupe associé
Parcourir les options et vérifier qu’on ne dépasse pas le
maximum
Parcourir les groupes et vérifier que chacun a le nombre
minimum d’options
compter le nombre d’options proposables dans un groupe
Récupérer le groupe associé à l’option
Step: Vérifier groupe
Step: Vérifier groupe
compter le nombre d’options proposables dans
un groupe
Classe
Méthode
Offre
N groupes
N options
récupère les données de l’étape précédente
Pour chaque groupe de l’offre, vérifier si le
nombre d’options est correct
Calculer le nombre d’options sélectionnés dans
un groupe
● Jbehave (ou JUnit ou EasyB)
● Selenium/Webdriver
● Rapports
Et nous qu’est ce qu’on laisse aux prochains
développeurs ?
• Pas de spécifications mais une image à
l’instant T du code;!
• Une cartographie fonctionnelle de l’appli;!
• Des comportements automatisés donc des
tests de non régression;
La story map comme gilet par balle
Take away
➢ Adopter un langage commun autour du métier!
➢ Faire confiance au dev pour le code :-)!
➢ Augmenter la qualité du code avec des tests de
non régression … métier !!
➢ Possibilité de reprendre du code legacy en
repartant du métier!
➢ Être transparent, suivre l’avancement en terme
de fonctionnalité
Merci!

Más contenido relacionado

Andere mochten auch

Veronique Pican (Yahoo) - Bidding or not bidding, les nouvelles stratégies ...
Veronique Pican (Yahoo)  - Bidding or not bidding, les nouvelles stratégies ...Veronique Pican (Yahoo)  - Bidding or not bidding, les nouvelles stratégies ...
Veronique Pican (Yahoo) - Bidding or not bidding, les nouvelles stratégies ...Viuz
 
Les Ours de Polaires
Les Ours de PolairesLes Ours de Polaires
Les Ours de Polairesfergus3
 
Habitants connectés - Territoires d'innovation
Habitants connectés - Territoires d'innovationHabitants connectés - Territoires d'innovation
Habitants connectés - Territoires d'innovationFing
 
Informe para Segundo debate del proyecto de Código Orgánico Monetario y Finan...
Informe para Segundo debate del proyecto de Código Orgánico Monetario y Finan...Informe para Segundo debate del proyecto de Código Orgánico Monetario y Finan...
Informe para Segundo debate del proyecto de Código Orgánico Monetario y Finan...Asamblea Nacional
 
Le Yachtde Greg Norman
Le Yachtde Greg NormanLe Yachtde Greg Norman
Le Yachtde Greg NormanSeverus Prime
 
Projet pilote de WILLOW en Ontario
Projet pilote de WILLOW en OntarioProjet pilote de WILLOW en Ontario
Projet pilote de WILLOW en Ontarioamusten
 
Comment evaluer des interventions complexes
Comment evaluer des interventions complexesComment evaluer des interventions complexes
Comment evaluer des interventions complexesamusten
 
Carnet de voyage Santa Monica CA
Carnet de voyage Santa Monica CACarnet de voyage Santa Monica CA
Carnet de voyage Santa Monica CAalboo
 
Instrucciones comicas de productos
Instrucciones comicas de productosInstrucciones comicas de productos
Instrucciones comicas de productoscentrowebs
 
Laurent Nicolas AppNexus les impressions visibles, une opportunité pour les é...
Laurent Nicolas AppNexus les impressions visibles, une opportunité pour les é...Laurent Nicolas AppNexus les impressions visibles, une opportunité pour les é...
Laurent Nicolas AppNexus les impressions visibles, une opportunité pour les é...Viuz
 
Evolucion de los sexos
Evolucion de los sexosEvolucion de los sexos
Evolucion de los sexoscentrowebs
 
La Revolución Industrial a través del arte
La Revolución Industrial a través del arteLa Revolución Industrial a través del arte
La Revolución Industrial a través del artedsaer
 
Asamblea condena secuestro a niñas de Nigeria
Asamblea condena secuestro a niñas de NigeriaAsamblea condena secuestro a niñas de Nigeria
Asamblea condena secuestro a niñas de NigeriaAsamblea Nacional
 
La Reina de las Hadas
La Reina de las HadasLa Reina de las Hadas
La Reina de las Hadasgloria
 
TP Medialab II
TP Medialab IITP Medialab II
TP Medialab IIHernan1986
 
Capacitacion De Productos
Capacitacion De ProductosCapacitacion De Productos
Capacitacion De Productosjpnaye
 

Andere mochten auch (20)

Veronique Pican (Yahoo) - Bidding or not bidding, les nouvelles stratégies ...
Veronique Pican (Yahoo)  - Bidding or not bidding, les nouvelles stratégies ...Veronique Pican (Yahoo)  - Bidding or not bidding, les nouvelles stratégies ...
Veronique Pican (Yahoo) - Bidding or not bidding, les nouvelles stratégies ...
 
Les Ours de Polaires
Les Ours de PolairesLes Ours de Polaires
Les Ours de Polaires
 
Habitants connectés - Territoires d'innovation
Habitants connectés - Territoires d'innovationHabitants connectés - Territoires d'innovation
Habitants connectés - Territoires d'innovation
 
Informe para Segundo debate del proyecto de Código Orgánico Monetario y Finan...
Informe para Segundo debate del proyecto de Código Orgánico Monetario y Finan...Informe para Segundo debate del proyecto de Código Orgánico Monetario y Finan...
Informe para Segundo debate del proyecto de Código Orgánico Monetario y Finan...
 
Le Yachtde Greg Norman
Le Yachtde Greg NormanLe Yachtde Greg Norman
Le Yachtde Greg Norman
 
Projet pilote de WILLOW en Ontario
Projet pilote de WILLOW en OntarioProjet pilote de WILLOW en Ontario
Projet pilote de WILLOW en Ontario
 
Comment evaluer des interventions complexes
Comment evaluer des interventions complexesComment evaluer des interventions complexes
Comment evaluer des interventions complexes
 
Carnet de voyage Santa Monica CA
Carnet de voyage Santa Monica CACarnet de voyage Santa Monica CA
Carnet de voyage Santa Monica CA
 
Instrucciones comicas de productos
Instrucciones comicas de productosInstrucciones comicas de productos
Instrucciones comicas de productos
 
Laurent Nicolas AppNexus les impressions visibles, une opportunité pour les é...
Laurent Nicolas AppNexus les impressions visibles, une opportunité pour les é...Laurent Nicolas AppNexus les impressions visibles, une opportunité pour les é...
Laurent Nicolas AppNexus les impressions visibles, une opportunité pour les é...
 
Especies Y EspeciacióN
Especies Y EspeciacióNEspecies Y EspeciacióN
Especies Y EspeciacióN
 
Evolucion de los sexos
Evolucion de los sexosEvolucion de los sexos
Evolucion de los sexos
 
El medico como paciente
El medico como pacienteEl medico como paciente
El medico como paciente
 
La Revolución Industrial a través del arte
La Revolución Industrial a través del arteLa Revolución Industrial a través del arte
La Revolución Industrial a través del arte
 
Gabriela E Ivan 2
Gabriela E Ivan 2Gabriela E Ivan 2
Gabriela E Ivan 2
 
Asamblea condena secuestro a niñas de Nigeria
Asamblea condena secuestro a niñas de NigeriaAsamblea condena secuestro a niñas de Nigeria
Asamblea condena secuestro a niñas de Nigeria
 
La Reina de las Hadas
La Reina de las HadasLa Reina de las Hadas
La Reina de las Hadas
 
TP Medialab II
TP Medialab IITP Medialab II
TP Medialab II
 
Capacitacion De Productos
Capacitacion De ProductosCapacitacion De Productos
Capacitacion De Productos
 
CALENDARIO 2009
CALENDARIO 2009CALENDARIO 2009
CALENDARIO 2009
 

Ähnlich wie Faites revivre vos spécifications scrumday 2014

Field research and interaction design: course #6
Field research and interaction design: course #6Field research and interaction design: course #6
Field research and interaction design: course #6nicolas nova
 
Chouette! Encore un bug! Agile Tour 2012
Chouette! Encore un bug! Agile Tour 2012Chouette! Encore un bug! Agile Tour 2012
Chouette! Encore un bug! Agile Tour 2012AgileCoach.net
 
Iut lyon 1 introduction à l'agilité - 20 juin 2012
Iut lyon 1   introduction à l'agilité - 20 juin 2012Iut lyon 1   introduction à l'agilité - 20 juin 2012
Iut lyon 1 introduction à l'agilité - 20 juin 2012agnes_crepet
 
Les Business Analysts face à l'agilité
Les Business Analysts face à l'agilitéLes Business Analysts face à l'agilité
Les Business Analysts face à l'agilitérfelden
 
Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?CGI Québec Formation
 
BDD (Behavior Driven Development) - Une voie vers l'agilité
BDD (Behavior Driven Development) - Une voie vers l'agilitéBDD (Behavior Driven Development) - Une voie vers l'agilité
BDD (Behavior Driven Development) - Une voie vers l'agilitéCARA_Lyon
 
2019 - NOURI - ALL4TEST- Le BDD pour decouvrir et specifier les besoins metie...
2019 - NOURI - ALL4TEST- Le BDD pour decouvrir et specifier les besoins metie...2019 - NOURI - ALL4TEST- Le BDD pour decouvrir et specifier les besoins metie...
2019 - NOURI - ALL4TEST- Le BDD pour decouvrir et specifier les besoins metie...TelecomValley
 
20120124 04 - Retour d'expérience sur la mise en oeuvre de Squash
20120124 04 - Retour d'expérience sur la mise en oeuvre de Squash20120124 04 - Retour d'expérience sur la mise en oeuvre de Squash
20120124 04 - Retour d'expérience sur la mise en oeuvre de SquashLeClubQualiteLogicielle
 
Les business analystes face à l'agilité
Les business analystes face à l'agilitéLes business analystes face à l'agilité
Les business analystes face à l'agilitéJoseph Glorieux
 
Les tests automatisés par mots-clés, le complément parfait d’un projet Agile
Les tests automatisés par mots-clés, le complément parfait d’un projet AgileLes tests automatisés par mots-clés, le complément parfait d’un projet Agile
Les tests automatisés par mots-clés, le complément parfait d’un projet AgileAgile Montréal
 
Trucs et astuces sur le dévelopment Android
Trucs et astuces sur le dévelopment AndroidTrucs et astuces sur le dévelopment Android
Trucs et astuces sur le dévelopment AndroidThierry-Dimitri Roy
 
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)French Scrum User Group
 
Pourquoi et comment j'ai appris JavaScript
Pourquoi et comment j'ai appris JavaScriptPourquoi et comment j'ai appris JavaScript
Pourquoi et comment j'ai appris JavaScriptjollivetc
 
La mesure, ce n'est pas que pour le devops
La mesure, ce n'est pas que pour le devopsLa mesure, ce n'est pas que pour le devops
La mesure, ce n'est pas que pour le devopsOlivier Garcia
 
.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotique.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotiqueMicrosoft
 
Jeu résolution de problèmes_ outils qualité.pdf
Jeu résolution de problèmes_ outils qualité.pdfJeu résolution de problèmes_ outils qualité.pdf
Jeu résolution de problèmes_ outils qualité.pdfCIPE
 
Chouette! Encore un bug!
Chouette! Encore un bug!Chouette! Encore un bug!
Chouette! Encore un bug!AgileCoach.net
 
Optimiser ses publicités grâce à la Data Science
Optimiser ses publicités grâce à la Data ScienceOptimiser ses publicités grâce à la Data Science
Optimiser ses publicités grâce à la Data ScienceJedha Bootcamp
 

Ähnlich wie Faites revivre vos spécifications scrumday 2014 (20)

Field research and interaction design: course #6
Field research and interaction design: course #6Field research and interaction design: course #6
Field research and interaction design: course #6
 
Chouette! Encore un bug! Agile Tour 2012
Chouette! Encore un bug! Agile Tour 2012Chouette! Encore un bug! Agile Tour 2012
Chouette! Encore un bug! Agile Tour 2012
 
Iut lyon 1 introduction à l'agilité - 20 juin 2012
Iut lyon 1   introduction à l'agilité - 20 juin 2012Iut lyon 1   introduction à l'agilité - 20 juin 2012
Iut lyon 1 introduction à l'agilité - 20 juin 2012
 
Les Business Analysts face à l'agilité
Les Business Analysts face à l'agilitéLes Business Analysts face à l'agilité
Les Business Analysts face à l'agilité
 
Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?
 
BDD (Behavior Driven Development) - Une voie vers l'agilité
BDD (Behavior Driven Development) - Une voie vers l'agilitéBDD (Behavior Driven Development) - Une voie vers l'agilité
BDD (Behavior Driven Development) - Une voie vers l'agilité
 
2019 - NOURI - ALL4TEST- Le BDD pour decouvrir et specifier les besoins metie...
2019 - NOURI - ALL4TEST- Le BDD pour decouvrir et specifier les besoins metie...2019 - NOURI - ALL4TEST- Le BDD pour decouvrir et specifier les besoins metie...
2019 - NOURI - ALL4TEST- Le BDD pour decouvrir et specifier les besoins metie...
 
20120124 04 - Retour d'expérience sur la mise en oeuvre de Squash
20120124 04 - Retour d'expérience sur la mise en oeuvre de Squash20120124 04 - Retour d'expérience sur la mise en oeuvre de Squash
20120124 04 - Retour d'expérience sur la mise en oeuvre de Squash
 
#3 etapes projet
#3 etapes projet#3 etapes projet
#3 etapes projet
 
Paris Chaos Engineering Meetup #1
Paris Chaos Engineering Meetup #1 Paris Chaos Engineering Meetup #1
Paris Chaos Engineering Meetup #1
 
Les business analystes face à l'agilité
Les business analystes face à l'agilitéLes business analystes face à l'agilité
Les business analystes face à l'agilité
 
Les tests automatisés par mots-clés, le complément parfait d’un projet Agile
Les tests automatisés par mots-clés, le complément parfait d’un projet AgileLes tests automatisés par mots-clés, le complément parfait d’un projet Agile
Les tests automatisés par mots-clés, le complément parfait d’un projet Agile
 
Trucs et astuces sur le dévelopment Android
Trucs et astuces sur le dévelopment AndroidTrucs et astuces sur le dévelopment Android
Trucs et astuces sur le dévelopment Android
 
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
 
Pourquoi et comment j'ai appris JavaScript
Pourquoi et comment j'ai appris JavaScriptPourquoi et comment j'ai appris JavaScript
Pourquoi et comment j'ai appris JavaScript
 
La mesure, ce n'est pas que pour le devops
La mesure, ce n'est pas que pour le devopsLa mesure, ce n'est pas que pour le devops
La mesure, ce n'est pas que pour le devops
 
.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotique.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotique
 
Jeu résolution de problèmes_ outils qualité.pdf
Jeu résolution de problèmes_ outils qualité.pdfJeu résolution de problèmes_ outils qualité.pdf
Jeu résolution de problèmes_ outils qualité.pdf
 
Chouette! Encore un bug!
Chouette! Encore un bug!Chouette! Encore un bug!
Chouette! Encore un bug!
 
Optimiser ses publicités grâce à la Data Science
Optimiser ses publicités grâce à la Data ScienceOptimiser ses publicités grâce à la Data Science
Optimiser ses publicités grâce à la Data Science
 

Mehr von Publicis Sapient Engineering

XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humainXebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humainPublicis Sapient Engineering
 
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveurXebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveurPublicis Sapient Engineering
 
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...Publicis Sapient Engineering
 
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin Publicis Sapient Engineering
 
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?Publicis Sapient Engineering
 
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?Publicis Sapient Engineering
 
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribuéXebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribuéPublicis Sapient Engineering
 
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...Publicis Sapient Engineering
 
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !Publicis Sapient Engineering
 
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizXebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizPublicis Sapient Engineering
 
XebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéXebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéPublicis Sapient Engineering
 
XebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectXebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectPublicis Sapient Engineering
 
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...Publicis Sapient Engineering
 
XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018Publicis Sapient Engineering
 
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...Publicis Sapient Engineering
 
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...Publicis Sapient Engineering
 

Mehr von Publicis Sapient Engineering (20)

XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humainXebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
 
Xebicon'18 - IoT: From Edge to Cloud
Xebicon'18 - IoT: From Edge to CloudXebicon'18 - IoT: From Edge to Cloud
Xebicon'18 - IoT: From Edge to Cloud
 
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveurXebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
 
XebiCon'18 - Modern Infrastructure
XebiCon'18 - Modern InfrastructureXebiCon'18 - Modern Infrastructure
XebiCon'18 - Modern Infrastructure
 
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
 
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
 
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
 
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
 
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribuéXebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
 
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
 
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
 
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizXebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
 
XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Le développeur dans la Pop Culture XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Le développeur dans la Pop Culture
 
XebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéXebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilité
 
XebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectXebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID Connect
 
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
 
XebiCon'18 - Spark NLP, un an après
XebiCon'18 - Spark NLP, un an aprèsXebiCon'18 - Spark NLP, un an après
XebiCon'18 - Spark NLP, un an après
 
XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018
 
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
 
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
 

Faites revivre vos spécifications scrumday 2014

  • 2. Yannick Grenzinger & Clément Rochas Faites (re)vivre vos spécifications
  • 3. MERCI À NOS SPONSORS
  • 4. Cette présentation est... • Un REX! • Une démo de mise en place de tests automatisés! • Un exemple de développement agile en dans un milieu qui ne l’est pas…
  • 5. “Quand le client m’affirme qu’il ne retrouve pas les fonctionnalités precisées dans sa spec”
  • 6. “Quand je viens de finir les specs et que je n’y ai rien compris”
  • 9. Le contexte • Opérateur téléphonique! • Pas agile dans le process! • Culture du héro
  • 10. Le concept de l’appli
  • 12. Warning: L’image suivante peut heurter la sensibilité des plus agile d’entre nous.
  • 13. LOT 1
  • 15. Quand la loi ne peut plus rien pour vous, il vous reste un recours... The A(gile)TEAM
  • 16. Racontez moi tout depuis le début...
  • 17. Décrire les comportements langage commun (Given)(Etant donné) un contexte (When)(Lorsque) l'utilisateur effectue certaines actions (Then)(Alors) on doit pouvoir constater telles conséquences
  • 19. Les user stories composés En tant d'utilisateur Je veux quelque chose de très complexe ! afin de faire l’action A En tant que composant X ! Je veux implémenter l’opération Y ! afin de faire l’action C ! et contribuer à A En tant que composant Z ! Je veux implémenter l’opération X afin de faire l’action B ! et contribuer à A Utilisateur Composant
  • 20. Spécifier par l’exemple Exemples BDD Tests d’acceptation Spécifications liées aux domaines métiers Décrivent Vérifient se transforment Le tout automatisé
  • 21. Et maintenant comment on automatise?
  • 22. JBehave: Ecrire notre 1er test BDD en 5 min Un projet avec une classe Panier, nous allons utiliser JBehave mvn archetype:generate -> 686 -> fr.xebia -> demo-scrumday Scenario: Calculer le prix total du panier après avoir appliqué une taxe Given un panier avec un prix total de <prixTotal> euros And une taxe de <taxe>% When on calcule le prix total avec la taxe Then le prix total avec la taxe est de <prixAttendu> euros Examples: |prixTotal|taxe|prixAttendu| | 100 | 0.2 | 120 |
  • 23. Histoire d’un refactoring Comment le BDD nous a permis de comprendre, de s’approprier et de refactorer le legacy.! ! Story: En tant que catalogue, Je veux valider l'intégrité des groupes d’options ! Un peu de contexte! une offre contient X groupes chaque groupe contient X options On veut vérifier que les options des groupes sont cohérentes
  • 24. Notre story sous format BDD Scenario: tester l’intégrité des groupes d’options d’un panier client Given un groupe Débit Internet d'une offre Mobile Given on <action1> une option Internet Illimité Given on <action2> une option 100mo chaque mois When le catalogue vérifie l'intégrité des groupes Then le statut panier est <statutPanier> Examples: | action1 | action2 | statutPanier | | SOUSCRIT | SOUSCRIT | KO | | SOUSCRIT | RESILIE | OK |
  • 25. traiter l’étape Classe Méthode Offre N groupes N options récupère les données de l’étape précédente trier les options sélectionnées suivant le groupe associé Parcourir les options et vérifier qu’on ne dépasse pas le maximum Parcourir les groupes et vérifier que chacun a le nombre minimum d’options compter le nombre d’options proposables dans un groupe Récupérer le groupe associé à l’option Step: Vérifier groupe
  • 26. Step: Vérifier groupe compter le nombre d’options proposables dans un groupe Classe Méthode Offre N groupes N options récupère les données de l’étape précédente Pour chaque groupe de l’offre, vérifier si le nombre d’options est correct Calculer le nombre d’options sélectionnés dans un groupe
  • 27. ● Jbehave (ou JUnit ou EasyB) ● Selenium/Webdriver ● Rapports
  • 28. Et nous qu’est ce qu’on laisse aux prochains développeurs ? • Pas de spécifications mais une image à l’instant T du code;! • Une cartographie fonctionnelle de l’appli;! • Des comportements automatisés donc des tests de non régression;
  • 29. La story map comme gilet par balle
  • 30. Take away ➢ Adopter un langage commun autour du métier! ➢ Faire confiance au dev pour le code :-)! ➢ Augmenter la qualité du code avec des tests de non régression … métier !! ➢ Possibilité de reprendre du code legacy en repartant du métier! ➢ Être transparent, suivre l’avancement en terme de fonctionnalité