SlideShare a Scribd company logo
1 of 56
Introduction aux
spécifications exécutables
Jean-PierreLambert
Qu’est-ce que la qualité ?
Réponse à plusieurs dimensions
Besoins d’accomplissement de soi
Besoins d’estime
Besoins d’appartenance et d’amour
Besoins de sécurité
Besoins physiologiques
Pyramide des besoins de Maslow
Besoins d’accomplissement de soi
Besoins d’estime
Besoins d’appartenance et d’amour
Besoins de sécurité
Besoins physiologiques
Une vue partagée de la qualité
Réussite
Prospère
Utile
Intuitif
Ergonomique
Performant
Sécurisé – Fiable
Déployable
FonctionnellementOK
Réussite
Prospère
Intuitif
Ergonomique
Utile
Performant
Sécurisé – Fiable
Déployable
FonctionnellementOK
Une vue partagée de la qualité
• Comment aligner
ces visions ?
• En se parlant !
• Quelle méthode de
facilitation ?
• Les spécifications
exécutables !
•  Le moyen de
s’assurer qu’on parle
tous la même langue
…? !
Spécifications exécutables ?
Spec by Example, Behavior-Driven Development
 Une documentation vivante
 Toujours à jour
 Versionnée comme le code
 Vérifiable à tout instant par rapport au code
 Utile pour toute l’équipe
À chaque test son outil !
Test
Technique
Test
Fonctionnel
Test
Technique
Test
Fonctionnel
?
Test
Technique
Test
Fonctionnel
Requirement
Technique
Requirement
Fonctionnel
?
Test
Technique
Test
Fonctionnel
Le test échoue : qui
sait dire pourquoi ?
Régression ou
changement
fonctionnel ?
Requirement
Technique
Requirement
Fonctionnel
?
Test
Technique
Test
Fonctionnel
Le test échoue : qui
sait dire pourquoi ?
Régression ou
changement
fonctionnel ?
Requirement
Technique
Requirement
Fonctionnel
?
Qui doit pouvoir
comprendre ce
test ?
Test
Technique
Test
Fonctionnel
Le test échoue : qui
sait dire pourquoi ?
Régression ou
changement
fonctionnel ?
Requirement
Technique
Requirement
Fonctionnel
?
Qui doit pouvoir
comprendre ce
test ?
Langage :
code
Langage :
pseudo-
naturel
Test
Technique
Test
Fonctionnel
Le test échoue : qui
sait dire pourquoi ?
Régression ou
changement
fonctionnel ?
Requirement
Technique
Requirement
Fonctionnel
?
Qui doit pouvoir
comprendre ce
test ?
Langage :
code
Langage :
pseudo-
naturel
Outils
spécifiques
Outils
génériques
Test
Technique
Test
Fonctionnel
Le test échoue : qui
sait dire pourquoi ?
Régression ou
changement
fonctionnel ?
Requirement
Technique
Requirement
Fonctionnel
?
Qui doit pouvoir
comprendre ce
test ?
Langage :
code
Langage :
pseudo-
naturel
Outils
spécifiques
Outils
génériques
Test
Technique
Test
Fonctionnel
Le test échoue : qui
sait dire pourquoi ?
Régression ou
changement
fonctionnel ?
Requirement
Technique
Requirement
Fonctionnel
?
Qui doit pouvoir
comprendre ce
test ?
Langage :
code
Langage :
pseudo-
naturel
Outils
spécifiques
Outils
génériques
Efficacité ! Lisibilité !
Pratiques à éviter
Comment être sûr de ne pas y arriver
Ecueil 1 :
Penser qu’un outil ou une méthode magique
résoudra tous les problèmes !
But : 3 amigos !
Se parler, se parler, se parler…
… Se comprendre !
…Travailler ensemble !
Ecueil 2 :
Les dev rédigent les spécifications
exécutables.
But : avoir un document de référence compréhensible par les fonctionnels
Que va-t-il se passer si ce sont les dev qui rédigent ?
Bonne pratique (obligatoire) : rédaction par PO/MOA
… Mais bien entendu avec relecture/en coopération
avec les dev’ ! (cf. slide précédente)
Ecueil 3 :
Ne pas investir dans l’outillage de test.
But : avoir des tests tenus à jour et vérifiables à tout instant
Appliquer les bonnes pratiques d’ingénierie !
Mettre en place une modélisation fonctionnelle,
par exemple Page Object Model pour une appli web
Sinon que va-t-il se passer ?
Investir dans les outils : cher mais a-t-on le choix ?
©MartinFowler
Ecueil 4 :
Focaliser uniquement ses efforts sur les tests de
haut-niveau.
But : réduire les régressions et maîtriser son produit
Que va-t-il se passer si on néglige les tests bas niveau ? (unitaire + assemblage)
Bonne pratique : tests haut-niveau pertinents si accompagnés d’une bonne couverture
de tests unitaires et d’intégration  dans tous les cas commencer par là !
Mise en pratique : Example Mapping
Un atelier pour mettre en place la démarche
Example Map
Blog de Cucumber – Example Mapping Introduction
http://bit.ly/example-map
Exemple de mise en place : FitNesse
De la spec JIRA jusqu’au code
 Résumé de l’algorithme décrit par l’US :
1. Autoriser les tops manuels et ingestions (jobs de type manual et ingest)
2. Pour les tops automatiques:
1. Bloquer tout ce qui est interdit aux -16 et -18
2. Pour ce qui n'est pas -16/-18 : bloquer tout ce qui est Film, sauf s'il s'agit
d'un Court métrage
Organisation
de la base
de test
Factorisation
préparation avant testSpec en
langage
naturel Les tests
Données d’entrée
des tests
Résultats
attendus
Pour exécuter
la page
Lien entre test et code métier
 Les tableaux sont des tests
 Métier : écriture des cas de test
 DEV : code de lien entre tests et
code de prod
Données d’entrée
des tests
Lien entre test et code métier
 Chaque ligne est un test
Setup à partir des
données du test
Appel du code métier
Lien entre test et code métier
 Chaque ligne est un test
Résultats
attendus
Lien entre test et code métier
 Chaque ligne est un test
Exemple d’écriture de test workflow : Robot Framework
Et un de ses IDE, RIDE
Mise en pratique
Exemple « Given-When-Then » (Gherkin): Cucumber
Ou selon votre plate-forme : Behat, SpecFlow…
Quel outil choisir ? Comparaison et recommandations
Spoiler alert : par défaut, prenez Cucumber
TL;DR
• Tous les outils peuvent tout faire
• Cucumber est le plus facile d’accès pour
les non-techniques, et disponible partout
• Un outil établi et connu
• Installation triviale
• Wiki intégré, format doc directement
accessible
• Runner disponible pour beaucoup de plate-
formes
• Les plus belles tables de décision
• Un endroit où écrire du beau blabla
• Un outil vieillot
• Langage incohérent
• Scénarii workflow imbitables
• Concepts contre-intuitifs
• Utilisation duWiki obligatoire, rapports de test
et rédaction pas « text-friendly »
• Pas d’éditeur avancé pour les non-dev
• Pas vraiment d’IDE qui s’adresse aux
fonctionnels
• La coloration syntaxique ne marche qu’en
anglais
• Langage restreint et contraignant
• Plus (+) de code de lien
• Multi-plate-forme au niveau source : Gherkin
• Runner disponible sur quasiment tous les
environnements, directement intégré
• Prise en main simple, pas d’outil nécessaire à la
rédaction
• Des contraintes de rédaction qui en font un
excellent outil pédagogique
• Langage localisable en français
• La référence dans le domaine : « Given-When-
Then » est utilisé par tout le monde
• Langage très complet, puissant, régulier
• Réutilisation des mots-clés, sans limite
• Multi-plate-forme avec possibilité de mélanger les
technos dans le même test
• Nombreuses librairies clé-en-main, ajout en Python ou
serveurs de mots-clés dynamiques dans n’importe quel
langage
• Nombreux outils associés, matures et complets
• Plusieurs vrais IDE non restreints aux développeurs
• Liberté du format de test : workflow, table de décision,
Given-When-Then…
• Langage complexe, difficile d’accès aux non-
techniques
• IDE parfois buggé, certains use-cases du
langage non supportés sans édition textuelle
• Serveurs de mots-clés pas disponibles sur tous
les environnements
• Littéralement une spec qu’on peut exécuter
• Belle intégration d’images et autres éléments
de description d’une spec
• Plate-formes majeures uniquement (Java, C#,
Python, Ruby)
• Rédaction en MarkDown, écosystème
MarkDown pour le formatage et l’édition
• Par !
• Plein de bonnes idées, essaie de reprendre le
meilleur de ses aînés
• Java / C# / Ruby / JavaScript / Python / Golang
• Relativement jeune
• Mettre le pied à l’étrier des fonctionnels
• Dispo quelle que soit votre techno
• Multi-techno au niveau de Gherkin
• Enorme communauté
• Beaucoup d’outils dérivés
• La référence !
Les différents membres de l’équipe dans la démarche
Et le testeur, il fait quoi dans tout ça ?
Comment démarrer ?
Alors qu’on a déjà du code !
Let’s do it !
Jean-PierreLambert
https://www.linkedin.com/in/jp-lambert
https://medium.com/@jplambert
https://twitter.com/@jpierrelambert

More Related Content

What's hot

Scrum meetings
Scrum meetingsScrum meetings
Scrum meetings
Juan Banda
 
Scrum process powerpoint ppt slides.
Scrum process powerpoint ppt slides.Scrum process powerpoint ppt slides.
Scrum process powerpoint ppt slides.
SlideTeam.net
 
Scrum process powerpoint presentation templates
Scrum process powerpoint presentation templatesScrum process powerpoint presentation templates
Scrum process powerpoint presentation templates
SlideTeam.net
 

What's hot (20)

Scrum Master Training at UM DI | 22nd and 23rd of Feb 2017
Scrum Master Training at UM DI | 22nd and 23rd of Feb 2017Scrum Master Training at UM DI | 22nd and 23rd of Feb 2017
Scrum Master Training at UM DI | 22nd and 23rd of Feb 2017
 
Introduction to Extreme Programming
Introduction to Extreme ProgrammingIntroduction to Extreme Programming
Introduction to Extreme Programming
 
Scrum meetings
Scrum meetingsScrum meetings
Scrum meetings
 
Practical Scrum - one day training
Practical Scrum - one day training Practical Scrum - one day training
Practical Scrum - one day training
 
Agile risk management
Agile risk managementAgile risk management
Agile risk management
 
7.1 Plan Cost Management
7.1 Plan Cost Management7.1 Plan Cost Management
7.1 Plan Cost Management
 
Gamification in agile
Gamification in agileGamification in agile
Gamification in agile
 
Modelo plano de gerenciamento de custo
Modelo  plano de gerenciamento de custoModelo  plano de gerenciamento de custo
Modelo plano de gerenciamento de custo
 
Scrum process powerpoint ppt slides.
Scrum process powerpoint ppt slides.Scrum process powerpoint ppt slides.
Scrum process powerpoint ppt slides.
 
Agile project management using scrum
Agile project management using scrumAgile project management using scrum
Agile project management using scrum
 
Scrum process powerpoint presentation templates
Scrum process powerpoint presentation templatesScrum process powerpoint presentation templates
Scrum process powerpoint presentation templates
 
Agile Project Management for PMP's
Agile Project Management for PMP'sAgile Project Management for PMP's
Agile Project Management for PMP's
 
Agile Methodology in Software Development
Agile Methodology in Software DevelopmentAgile Methodology in Software Development
Agile Methodology in Software Development
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
High Performance Software Engineering Teams
High Performance Software Engineering TeamsHigh Performance Software Engineering Teams
High Performance Software Engineering Teams
 
PMP PMBOK 5th Ch 11 Project Risk Management
PMP PMBOK 5th Ch 11 Project Risk ManagementPMP PMBOK 5th Ch 11 Project Risk Management
PMP PMBOK 5th Ch 11 Project Risk Management
 
FDD Overview
FDD OverviewFDD Overview
FDD Overview
 
Agile Methology Seminar Report
Agile Methology Seminar ReportAgile Methology Seminar Report
Agile Methology Seminar Report
 
Project Management Fundamentals | Project Management Simplified | PMP® Traini...
Project Management Fundamentals | Project Management Simplified | PMP® Traini...Project Management Fundamentals | Project Management Simplified | PMP® Traini...
Project Management Fundamentals | Project Management Simplified | PMP® Traini...
 
Role of scrum master
Role of scrum masterRole of scrum master
Role of scrum master
 

Similar to Introduction aux spécifications exécutables (dit aussi atdd, bdd)

La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !
Lucian Precup
 
[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
Christophe HERAL
 
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
Cyrille Grandval
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
ENSIBS
 

Similar to Introduction aux spécifications exécutables (dit aussi atdd, bdd) (20)

Mockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilMockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice Duteil
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratif
 
Cerberus Testing
Cerberus TestingCerberus Testing
Cerberus Testing
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoring
 
La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !
 
Human Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDHuman Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDD
 
[Agile Testing Day] Introduction
[Agile Testing Day] Introduction[Agile Testing Day] Introduction
[Agile Testing Day] Introduction
 
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
 
[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
 
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
 
presentation Zest au JFTL 2014
presentation Zest au JFTL 2014presentation Zest au JFTL 2014
presentation Zest au JFTL 2014
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
 
Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)
 
présentation soutenance PFE
présentation soutenance PFEprésentation soutenance PFE
présentation soutenance PFE
 
Wordcamp paris 2015 dev-pragmatique-bonnes-pratiques
Wordcamp paris 2015  dev-pragmatique-bonnes-pratiquesWordcamp paris 2015  dev-pragmatique-bonnes-pratiques
Wordcamp paris 2015 dev-pragmatique-bonnes-pratiques
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
 
Agilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationAgilité, Tests Et Industrialisation
Agilité, Tests Et Industrialisation
 
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAgile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
 
La relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesLa relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiques
 

More from Jean-Pierre Lambert

[V2] Une semaine dans ma peau de testeur agile
[V2] Une semaine dans ma peau de testeur agile[V2] Une semaine dans ma peau de testeur agile
[V2] Une semaine dans ma peau de testeur agile
Jean-Pierre Lambert
 
[V1] Une semaine dans ma peau de testeur agile
[V1] Une semaine dans ma peau de testeur agile[V1] Une semaine dans ma peau de testeur agile
[V1] Une semaine dans ma peau de testeur agile
Jean-Pierre Lambert
 
Une semaine dans ma peau de Scrum Master
Une semaine dans ma peau de Scrum MasterUne semaine dans ma peau de Scrum Master
Une semaine dans ma peau de Scrum Master
Jean-Pierre Lambert
 

More from Jean-Pierre Lambert (18)

Sortir de l'ère des héros - l'excellence comme clé d'une organisation résiliente
Sortir de l'ère des héros - l'excellence comme clé d'une organisation résilienteSortir de l'ère des héros - l'excellence comme clé d'une organisation résiliente
Sortir de l'ère des héros - l'excellence comme clé d'une organisation résiliente
 
Awareness session: Agile -- by Jean-Pierre Lambert
Awareness session: Agile -- by Jean-Pierre LambertAwareness session: Agile -- by Jean-Pierre Lambert
Awareness session: Agile -- by Jean-Pierre Lambert
 
Formation stratégie de test - créer un produit de qualité
Formation stratégie de test - créer un produit de qualitéFormation stratégie de test - créer un produit de qualité
Formation stratégie de test - créer un produit de qualité
 
[V2] La collaboration, signe d'une véritable agilité
[V2] La collaboration, signe d'une véritable agilité[V2] La collaboration, signe d'une véritable agilité
[V2] La collaboration, signe d'une véritable agilité
 
[V1] La collaboration, signe d'une véritable agilité
[V1] La collaboration, signe d'une véritable agilité[V1] La collaboration, signe d'une véritable agilité
[V1] La collaboration, signe d'une véritable agilité
 
[V2] Une semaine dans ma peau de testeur agile
[V2] Une semaine dans ma peau de testeur agile[V2] Une semaine dans ma peau de testeur agile
[V2] Une semaine dans ma peau de testeur agile
 
[V1] Une semaine dans ma peau de testeur agile
[V1] Une semaine dans ma peau de testeur agile[V1] Une semaine dans ma peau de testeur agile
[V1] Une semaine dans ma peau de testeur agile
 
Les différents types de Scrum Master
Les différents types de Scrum MasterLes différents types de Scrum Master
Les différents types de Scrum Master
 
Les différents types de Product Owner
Les différents types de Product OwnerLes différents types de Product Owner
Les différents types de Product Owner
 
"Agile sucks" -- or does it?
"Agile sucks" -- or does it?"Agile sucks" -- or does it?
"Agile sucks" -- or does it?
 
Atelier : boostez vos Backlog Grooming/Refinement avec l'Example Mapping ! --...
Atelier : boostez vos Backlog Grooming/Refinement avec l'Example Mapping ! --...Atelier : boostez vos Backlog Grooming/Refinement avec l'Example Mapping ! --...
Atelier : boostez vos Backlog Grooming/Refinement avec l'Example Mapping ! --...
 
Atelier : boostez vos Backlog Grooming/Refinement avec l'Example Mapping ! --...
Atelier : boostez vos Backlog Grooming/Refinement avec l'Example Mapping ! --...Atelier : boostez vos Backlog Grooming/Refinement avec l'Example Mapping ! --...
Atelier : boostez vos Backlog Grooming/Refinement avec l'Example Mapping ! --...
 
MiXiT 2018 - Retour d'expérience France Télévisions - Passer de faire de l'Ag...
MiXiT 2018 - Retour d'expérience France Télévisions - Passer de faire de l'Ag...MiXiT 2018 - Retour d'expérience France Télévisions - Passer de faire de l'Ag...
MiXiT 2018 - Retour d'expérience France Télévisions - Passer de faire de l'Ag...
 
Une semaine dans ma peau de Scrum Master
Une semaine dans ma peau de Scrum MasterUne semaine dans ma peau de Scrum Master
Une semaine dans ma peau de Scrum Master
 
Une semaine dans ma peau de Scrum Master - V0 - Meetup Renault Digital
Une semaine dans ma peau de Scrum Master - V0 - Meetup Renault DigitalUne semaine dans ma peau de Scrum Master - V0 - Meetup Renault Digital
Une semaine dans ma peau de Scrum Master - V0 - Meetup Renault Digital
 
Agile En Seine 2017 - Retour d'expérience France Télévisions - Passer de fair...
Agile En Seine 2017 - Retour d'expérience France Télévisions - Passer de fair...Agile En Seine 2017 - Retour d'expérience France Télévisions - Passer de fair...
Agile En Seine 2017 - Retour d'expérience France Télévisions - Passer de fair...
 
C'est quoi le Software Craftsmanship ?
C'est quoi le Software Craftsmanship ?C'est quoi le Software Craftsmanship ?
C'est quoi le Software Craftsmanship ?
 
Sortir de l’ère des héros - HumanTalks Paris Mars 2017
Sortir de l’ère des héros - HumanTalks Paris Mars 2017Sortir de l’ère des héros - HumanTalks Paris Mars 2017
Sortir de l’ère des héros - HumanTalks Paris Mars 2017
 

Introduction aux spécifications exécutables (dit aussi atdd, bdd)

  • 2. Qu’est-ce que la qualité ? Réponse à plusieurs dimensions
  • 3. Besoins d’accomplissement de soi Besoins d’estime Besoins d’appartenance et d’amour Besoins de sécurité Besoins physiologiques Pyramide des besoins de Maslow
  • 4. Besoins d’accomplissement de soi Besoins d’estime Besoins d’appartenance et d’amour Besoins de sécurité Besoins physiologiques Une vue partagée de la qualité Réussite Prospère Utile Intuitif Ergonomique Performant Sécurisé – Fiable Déployable FonctionnellementOK
  • 6. • Comment aligner ces visions ? • En se parlant ! • Quelle méthode de facilitation ? • Les spécifications exécutables ! •  Le moyen de s’assurer qu’on parle tous la même langue …? !
  • 7. Spécifications exécutables ? Spec by Example, Behavior-Driven Development
  • 8.  Une documentation vivante  Toujours à jour  Versionnée comme le code  Vérifiable à tout instant par rapport au code  Utile pour toute l’équipe
  • 9. À chaque test son outil !
  • 13. Test Technique Test Fonctionnel Le test échoue : qui sait dire pourquoi ? Régression ou changement fonctionnel ? Requirement Technique Requirement Fonctionnel ?
  • 14. Test Technique Test Fonctionnel Le test échoue : qui sait dire pourquoi ? Régression ou changement fonctionnel ? Requirement Technique Requirement Fonctionnel ? Qui doit pouvoir comprendre ce test ?
  • 15. Test Technique Test Fonctionnel Le test échoue : qui sait dire pourquoi ? Régression ou changement fonctionnel ? Requirement Technique Requirement Fonctionnel ? Qui doit pouvoir comprendre ce test ? Langage : code Langage : pseudo- naturel
  • 16. Test Technique Test Fonctionnel Le test échoue : qui sait dire pourquoi ? Régression ou changement fonctionnel ? Requirement Technique Requirement Fonctionnel ? Qui doit pouvoir comprendre ce test ? Langage : code Langage : pseudo- naturel Outils spécifiques Outils génériques
  • 17. Test Technique Test Fonctionnel Le test échoue : qui sait dire pourquoi ? Régression ou changement fonctionnel ? Requirement Technique Requirement Fonctionnel ? Qui doit pouvoir comprendre ce test ? Langage : code Langage : pseudo- naturel Outils spécifiques Outils génériques
  • 18. Test Technique Test Fonctionnel Le test échoue : qui sait dire pourquoi ? Régression ou changement fonctionnel ? Requirement Technique Requirement Fonctionnel ? Qui doit pouvoir comprendre ce test ? Langage : code Langage : pseudo- naturel Outils spécifiques Outils génériques Efficacité ! Lisibilité !
  • 19. Pratiques à éviter Comment être sûr de ne pas y arriver
  • 20. Ecueil 1 : Penser qu’un outil ou une méthode magique résoudra tous les problèmes ! But : 3 amigos ! Se parler, se parler, se parler… … Se comprendre ! …Travailler ensemble !
  • 21. Ecueil 2 : Les dev rédigent les spécifications exécutables. But : avoir un document de référence compréhensible par les fonctionnels Que va-t-il se passer si ce sont les dev qui rédigent ? Bonne pratique (obligatoire) : rédaction par PO/MOA … Mais bien entendu avec relecture/en coopération avec les dev’ ! (cf. slide précédente)
  • 22. Ecueil 3 : Ne pas investir dans l’outillage de test. But : avoir des tests tenus à jour et vérifiables à tout instant Appliquer les bonnes pratiques d’ingénierie ! Mettre en place une modélisation fonctionnelle, par exemple Page Object Model pour une appli web Sinon que va-t-il se passer ? Investir dans les outils : cher mais a-t-on le choix ? ©MartinFowler
  • 23. Ecueil 4 : Focaliser uniquement ses efforts sur les tests de haut-niveau. But : réduire les régressions et maîtriser son produit Que va-t-il se passer si on néglige les tests bas niveau ? (unitaire + assemblage) Bonne pratique : tests haut-niveau pertinents si accompagnés d’une bonne couverture de tests unitaires et d’intégration  dans tous les cas commencer par là !
  • 24. Mise en pratique : Example Mapping Un atelier pour mettre en place la démarche
  • 25. Example Map Blog de Cucumber – Example Mapping Introduction http://bit.ly/example-map
  • 26.
  • 27. Exemple de mise en place : FitNesse De la spec JIRA jusqu’au code
  • 28.
  • 29.  Résumé de l’algorithme décrit par l’US : 1. Autoriser les tops manuels et ingestions (jobs de type manual et ingest) 2. Pour les tops automatiques: 1. Bloquer tout ce qui est interdit aux -16 et -18 2. Pour ce qui n'est pas -16/-18 : bloquer tout ce qui est Film, sauf s'il s'agit d'un Court métrage
  • 30. Organisation de la base de test Factorisation préparation avant testSpec en langage naturel Les tests
  • 33.
  • 34.
  • 35. Lien entre test et code métier  Les tableaux sont des tests  Métier : écriture des cas de test  DEV : code de lien entre tests et code de prod
  • 36. Données d’entrée des tests Lien entre test et code métier  Chaque ligne est un test
  • 37. Setup à partir des données du test Appel du code métier Lien entre test et code métier  Chaque ligne est un test
  • 38. Résultats attendus Lien entre test et code métier  Chaque ligne est un test
  • 39. Exemple d’écriture de test workflow : Robot Framework Et un de ses IDE, RIDE
  • 41. Exemple « Given-When-Then » (Gherkin): Cucumber Ou selon votre plate-forme : Behat, SpecFlow…
  • 42.
  • 43. Quel outil choisir ? Comparaison et recommandations Spoiler alert : par défaut, prenez Cucumber
  • 44.
  • 45. TL;DR • Tous les outils peuvent tout faire • Cucumber est le plus facile d’accès pour les non-techniques, et disponible partout
  • 46. • Un outil établi et connu • Installation triviale • Wiki intégré, format doc directement accessible • Runner disponible pour beaucoup de plate- formes • Les plus belles tables de décision • Un endroit où écrire du beau blabla • Un outil vieillot • Langage incohérent • Scénarii workflow imbitables • Concepts contre-intuitifs • Utilisation duWiki obligatoire, rapports de test et rédaction pas « text-friendly » • Pas d’éditeur avancé pour les non-dev
  • 47. • Pas vraiment d’IDE qui s’adresse aux fonctionnels • La coloration syntaxique ne marche qu’en anglais • Langage restreint et contraignant • Plus (+) de code de lien • Multi-plate-forme au niveau source : Gherkin • Runner disponible sur quasiment tous les environnements, directement intégré • Prise en main simple, pas d’outil nécessaire à la rédaction • Des contraintes de rédaction qui en font un excellent outil pédagogique • Langage localisable en français • La référence dans le domaine : « Given-When- Then » est utilisé par tout le monde
  • 48. • Langage très complet, puissant, régulier • Réutilisation des mots-clés, sans limite • Multi-plate-forme avec possibilité de mélanger les technos dans le même test • Nombreuses librairies clé-en-main, ajout en Python ou serveurs de mots-clés dynamiques dans n’importe quel langage • Nombreux outils associés, matures et complets • Plusieurs vrais IDE non restreints aux développeurs • Liberté du format de test : workflow, table de décision, Given-When-Then… • Langage complexe, difficile d’accès aux non- techniques • IDE parfois buggé, certains use-cases du langage non supportés sans édition textuelle • Serveurs de mots-clés pas disponibles sur tous les environnements
  • 49. • Littéralement une spec qu’on peut exécuter • Belle intégration d’images et autres éléments de description d’une spec • Plate-formes majeures uniquement (Java, C#, Python, Ruby)
  • 50. • Rédaction en MarkDown, écosystème MarkDown pour le formatage et l’édition • Par ! • Plein de bonnes idées, essaie de reprendre le meilleur de ses aînés • Java / C# / Ruby / JavaScript / Python / Golang • Relativement jeune
  • 51. • Mettre le pied à l’étrier des fonctionnels • Dispo quelle que soit votre techno • Multi-techno au niveau de Gherkin • Enorme communauté • Beaucoup d’outils dérivés • La référence !
  • 52. Les différents membres de l’équipe dans la démarche Et le testeur, il fait quoi dans tout ça ?
  • 53.
  • 54. Comment démarrer ? Alors qu’on a déjà du code !

Editor's Notes

  1. Besoins physiologiques (faim, soif, sexualité, respiration, sommeil, élimination) Besoins de sécurité (environnement stable et prévisible, sans anxiété ni crise) Besoins d'appartenance et d'amour (affection des autres) Besoins d'estime (confiance et respect de soi, reconnaissance et appréciation des autres) Besoin d'accomplissement de soi
  2. Besoins physiologiques (faim, soif, sexualité, respiration, sommeil, élimination) Besoins de sécurité (environnement stable et prévisible, sans anxiété ni crise) Besoins d'appartenance et d'amour (affection des autres) Besoins d'estime (confiance et respect de soi, reconnaissance et appréciation des autres) Besoin d'accomplissement de soi
  3. Spec exécutable : Une documentation vivante, Toujours à jour, Versionnée comme le code, Vérifiable à tout instant par rapport au code
  4. Spec exécutable : Une documentation vivante, Toujours à jour, Versionnée comme le code, Vérifiable à tout instant par rapport au code
  5. Spec exécutable : Une documentation vivante, Toujours à jour, Versionnée comme le code, Vérifiable à tout instant par rapport au code
  6. Spec exécutable : Une documentation vivante, Toujours à jour, Versionnée comme le code, Vérifiable à tout instant par rapport au code
  7. Spec exécutable : Une documentation vivante, Toujours à jour, Versionnée comme le code, Vérifiable à tout instant par rapport au code
  8. Spec exécutable : Une documentation vivante, Toujours à jour, Versionnée comme le code, Vérifiable à tout instant par rapport au code
  9. Spec exécutable : Une documentation vivante, Toujours à jour, Versionnée comme le code, Vérifiable à tout instant par rapport au code
  10. Spec exécutable : Une documentation vivante, Toujours à jour, Versionnée comme le code, Vérifiable à tout instant par rapport au code
  11. Spec exécutable : Une documentation vivante, Toujours à jour, Versionnée comme le code, Vérifiable à tout instant par rapport au code
  12. Spec exécutable : Une documentation vivante, Toujours à jour, Versionnée comme le code, Vérifiable à tout instant par rapport au code
  13. Spec exécutable : Une documentation vivante, Toujours à jour, Versionnée comme le code, Vérifiable à tout instant par rapport au code
  14. Spec exécutable : Une documentation vivante, Toujours à jour, Versionnée comme le code, Vérifiable à tout instant par rapport au code
  15. Spec exécutable : Une documentation vivante, Toujours à jour, Versionnée comme le code, Vérifiable à tout instant par rapport au code
  16. Spec exécutable : Une documentation vivante, Toujours à jour, Versionnée comme le code, Vérifiable à tout instant par rapport au code
  17. Spec exécutable : Une documentation vivante, Toujours à jour, Versionnée comme le code, Vérifiable à tout instant par rapport au code
  18. 1. Rédiger un test sur l’existant 2. Le faire marcher 3. Définir un process pour les nouveaux développements 4. Intégrer l’écriture des tests d’acceptation en amont du dev !