SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Les tests automatisés par mots-clés,
le complément parfait d’un projet Agile
Jean-Yves Allard, ing.
Agile Tour Montréal 2018
Agenda
• Introduction
• Mise en contexte
• Le BDD et les tests en pratique
• Les mots-clés en test
• Quelques exemples avec des outils
• À retenir
• Questions
Qui suis-je ?
Ingénieur informatique de formation
Plus de 32 ans d’expérience professionnelle
De l’embarqué aux systèmes distribués
De l’assembleur au python, Java et .Net
Du Waterfall à l’Agile/BDD, en passant par JAD/RAD et XP
Le contexte
Pourquoi tester et automatiser ?
• Ça coûte trop cher
• On n’a pas le temps
• C’est impossible de tout tester
• On est Agile!
• Les QAs font le faire
• On va manquer notre fenêtre de livraison
X Exigences mal comprises
X Produit mal adapté
X Usagers experts pas consultés
X Pas de projet pilote
X Peu ou pas de tests
X Pas de plan de retour en arrière
Source : Rapport du comité du Sénat
https://sencanada.ca/content/sen/committee/421/NFFN/reports/NFFN_Ph%C3%A9nix_rapport32_WEB_f.pdf
Le Phœnix ne renaîtra pas de ses cendres !
• Les tests et l’automatisation en vase clos auraient probablement
un peu aidé, mais le résultat final serait le même.
• À la base, les tests doivent faire l’objet d’une stratégie qui, elle-
même, doit faire partie intégrale du processus de
développement. Agile ou pas.
• La communication et les échanges en continue entre les parties
prenantes sont impératifs.
• Le développement logiciel est avant tout, encore pour l’instant,
une activité humaine, socialement très complexe.
• Chacun amène son lot d’idées et de préjugés à la table d’un
projet; chacun a sa propre perception et sa propre motivation.
• Même si on se dit Agile, les gens ont tendance à « sérialiser » les
activités selon leur rôle (récits-dev-test-QA-UAT-livraison).
Cette vision n’a pas changé depuis plus de 30 ans !
Les tests auraient-ils tout changé ?
1. Le processus de développement, de la création à l’opération,
doit favoriser la communication et les échanges en continu
entre les parties prenantes.
2. Il faut se doter d’un langage commun entre les usagers,
l’équipe de développement, la gestion et l’opération.
3. Les tests et l’automatisation encadrés par une stratégie et
intégrés au départ donnent des logiciels de qualité.
4. L’assurance qualité ce n’est pas le contrôle de la qualité. Elle
inhérente à l’objectif du processus de développement.
• Il faut se doter d’une manière de penser, soutenue de
méthodes et d’outils adaptés.
• Il faut rester Agile, dans tous les sens du terme !
À éviter: Version plus colorée, plus complexe,
mais essentiellement la même !
Que faire alors ?
Les principes et méthodes Agile forment le fondement.
 ATTENTION: l’agilité ce n’est pas du mini Waterfall!
On y adjoint une stratégie d’assurance qualité intégrée.
On adopte les principes du BDD, pour le code applicatif et les tests.
On élabore un catalogue de produits en utilisant par exemple le « Feature Mapping »,
ensemble avec le PO/AA, les développeurs et les analystes, scripteurs, testeurs en
assurance-qualité.
On adopte un langage commun pour décrire les fonctionnalités du catalogue de produit.
 Au début du projet, c’est un roadmap plus au moins détaillé
 qui sera raffiné au fil des sprints.
1. Le processus de développement
Précis et succinct
Indépendant des outils et langages de programmation
 Tests unitaires = spécification du comportement d’une classe
 Tests fonctionnels = spécification du comportement d’une fonction d’affaires
Refactoring et mocking
 On ne comprend pas tout au départ
 « Diviser pour régner »
Les mots-clés constituent votre vocabulaire commun
 Indépendants de l’implantation
 Résistants aux changements
2. Un langage et une méthode communs
Elle considère le processus de bout en bout, autant pour le logiciel développé
que des rôles et responsabilités de chacun, et des outils et méthodes choisies
pour le projet.
Les plans de tests sont découpés en fonction de leur valeur tout au long du
développement, de la mise en production et même pour l’opération.
L’équipe définit le partitionnement des tests entre les tests unitaires et les
fonctionnels, pour optimiser la couverture et l’impact.
Les tests utilisent le mêmes cas d’usage en les bonifiant avec des scénarios
particuliers au besoin, par exemple pour les tests de performance.
3. Une stratégie d’assurance qualité intégrale
En pratique
C’est quoi le BDD ?
Behaviour Driven Development, basé sur l’approche Test Driven Development
• Emphase sur la coopération engagée entre les clients/usagers, les développeurs, les testeurs et toute autre partie
prenante.
• Ensemble, les fonctionnalités créées doivent contribuer à ajouter de la valeur. Tout le reste est inutile et constitue
du gaspillage (Lean anyone ?).
• Spécification des comportements attendus par exemples concrets. Ultimement automatisable.
• On doit s’attendre à ce que notre compréhension des exigences ou fonctionnalités évolue au cours du projet.
• Comme toute méthode, la qualité et la précision des récits et scénarios sont nécessaires à la valeur espérée.
• Attention aux abus lorsque l’exercice devient une fin en soit. Comme pour l’agilité en général, il faut à tout prix
éviter les dogmes.
2018-11-16 14
Récit utile (pas vraiment)
• En tant qu’usager
• Je veux faire une action
• Dans le but d’obtenir un bénéfice
Scénario 1
• Étant donné ce contexte
• Lorsque je fais cette action
• Alors je m’attends à ce résultat
Scénario 2
• Étant donné cet autre contexte
• Lorsque je fais cette autre action
• Alors je m’attends à cet autre résultat
DÉVELOPPER LA CONFIANCE
À retenir :
Une bonne technique pour
arriver à des récits concrets, de
qualité et réalisables :
« Feature Mapping » ou
« Example Mapping »
5 « Whys »
Récits usagers (ou fonctionnalités) en BDD
2018-11-16 15
Fonctionnalité : Gérer les propriétaires
En tant que Commis de clinique, dans le but de gérer les informations des propriétaires d’animaux qui sont clients de la
clinique, je veux pouvoir :
• Scénario 1 : consulter le répertoire des clients
• Scénario 2 : chercher un propriétaire en particulier
• Scénario 3 : ajouter un propriétaire s’il n’existe pas
o Étant donné que la page Rechercher Propriétaire est affichée
o Lorsque j’active la fonction Ajouter Propriétaire
o Et que j’entre les informations du propriétaire sans fautes
o Et j’active la fonction Ajouter
o Alors le propriétaire existe
• Scénario 4: modifier les informations du propriétaire s’il existe.
DÉVELOPPER LA CONFIANCE
Ensemble, il faut se
poser des questions
pour clarifier
Et avec un récit plus utile en BDD
• Propriétaire existe ou non
o Si le propriétaire recherché n’existe pas, que fait
l’application? Affiche un message? Si oui lequel?
Sinon quoi?
• Client
o Est-ce qu’un client est obligatoirement un
propriétaire d’animaux?
o Est-ce qu’un client est usager de l’application?
• Informations d’un propriétaire
o Nom, prénom, adresse (rue, ville, province, code
postal)?
o Actif? Usager de l’application?
o Infos financières?
o Nous définissons que l’application affiche un message
indiquant le propriétaire n’existe pas. Il faudra ajouter ce
comportement à notre récit.
o Oui
o Non
o Nous définissons: Nom, prénom et adresse
o Non nécessaire
o Non nécessaires
Posons-nous ensemble des questions pour clarifier
• Sans fautes
o Règles de bas niveau, quelles sont-elles?
o Validation à l’écran en direct ou par le back-end ?
• Commis de clinique
o Considérant ce qui est plus haut, droits de
voir/manipuler les infos financières?
• Sauvegarde, recherche et chargement
o Que fait l’application si il n’est passible de rejoindre le
back-end ?
o Aucune
o Aucune
o Sans objet
o Il faudra ajouter un comportement au récit à l’effet
que l’application indiquera le problème mais ne
pètera pas.
Posons-nous ensemble des questions pour clarifier
Les mots-clés sont des actions programmées dont le nom évoque clairement la fonction.
Ils permettent de séparer la programmation des scripts de test de la documentation du cas de test
• Les analystes peuvent se concentrer sur la fonctionnalité et le comportement attendu de l’application à tester.
• Les programmeurs de scripts se concentrent sur l’implantation des cas de tests documentés.
• Mais, entre eux et avec les usagers, ils partagent une compréhension unique des attentes.
Ils améliorent la robustesse face aux changements techniques et aux détails sous-jacents.
Ils facilitent la maintenance des fonctions de tests et permettent de les réutiliser.
Ils sont composables.
Ils deviennent des spécifications exécutables.
On passe aux tests avec des Mots-Clés
Tests avec Mots-Clés en BDD
Scénario 3 : Gérer les propriétaires, Je veux ajouter un propriétaire s’il n’existe pas
Étant donné que La page Rechercher Propriétaire est affichée
Open Browser URL
Wait Until Page Contains Element locator_page_open
Activate Element locator_menu_owner
Wait Until Element Is Visible locator_add_button
Et que Le Propriétaire n’existe pas
Query query_check_owner_not_exist nom_du_proprio
Should Be Empty query_result
Lorsque J’active la fonction Ajouter Propriétaire
Activate Element locator_add_owner
On commence avec les mots-clés de bas niveau et on compose
Tests avec Mots-Clés en BDD
Et que J’entre les informations du Propriétaire
Input Text locator_name nom_du_proprio
Et que J’active la fonction Ajouter Propriétaire
Activate Element locator_add_owner
Alors Le Propriétaire existe
Query query_check_owner_exists nom_du_proprio
Should Not Be Empty query_result
Notre scénario 3 dans une plateforme
Composition de mots-clés
Mots-clés de base ou combinés
La complexité
poussée au
dernier niveau
Le langage
simple,
commun à
tous
Une spécification exécutable, sans coder !
À retenir
• Le développement Agile de qualité, c’est possible et payant!
• Un langage commun précis et succinct
• Des outils adaptés à soutenir le processus
• Travaillez ensemble, fini les silos!
• Communiquez!
Askida CT
Concordion
Cucumber/Gherkin
Jbehave
Robot Framework
SpecFlow
Merci !
Essayez Askida CTMC
https://askidact.com
Renseignez-vous au sujet de nos ateliers
info@askida.com
Références
• Livres
o Chelimsky, David, The Rspec Book, The Pragmatic Bookshelf, 2010
o Greever, Tom, Articulating Design Decisions, O’Reilly, 2015
o Kalbach, Jim, Mapping Experiences, O’Reilly, 2016
o Patton, Jeff, User Story Mapping, O’Reilley, 2014
o Smart, John Ferguson, BDD in Action, Manning, 2015
o Wynne, Matt, Hellsoy, Aslak, The Cucumber Book, The Pragmatic Bookshelf, 2012
• Articles et présentations
o Allard, Jean-Yves, Ateliers Tests en BDD avec Askida CT, Groupe Askida, Montréal et Toronto, 2018
o Anderson, Kenneth M., BDD and Cucumber, University of Colorado, Computer Science Lectures, 2012
o Smart, John Ferguson, BDD at the Heart of any DevOps Transformation Story, 2017
o Versaci, Damian, Agile BDD and Integrated Testing with Cucumber, Melbourne ANTZTB SIGIST, 2011

Mais conteúdo relacionado

Mais procurados

Pitié, ne construisez pas le nouveau pont Champlain en Agilité...
Pitié, ne construisez pas le nouveau pont Champlain en Agilité...Pitié, ne construisez pas le nouveau pont Champlain en Agilité...
Pitié, ne construisez pas le nouveau pont Champlain en Agilité...
Pyxis Technologies
 
Le journal d'une tortue qui sprinte autour du monde - Vincent Cleroux
Le journal d'une tortue qui sprinte autour du monde - Vincent ClerouxLe journal d'une tortue qui sprinte autour du monde - Vincent Cleroux
Le journal d'une tortue qui sprinte autour du monde - Vincent Cleroux
Agile Montréal
 
Lean Change Management en grande entreprise, faites l’Évolution, pas la Révol...
Lean Change Management en grande entreprise, faites l’Évolution, pas la Révol...Lean Change Management en grande entreprise, faites l’Évolution, pas la Révol...
Lean Change Management en grande entreprise, faites l’Évolution, pas la Révol...
Agile Montréal
 
Estimation initiale dun projet agile de Mathieu Boisvert
Estimation initiale dun projet agile de Mathieu BoisvertEstimation initiale dun projet agile de Mathieu Boisvert
Estimation initiale dun projet agile de Mathieu Boisvert
Pyxis Technologies
 

Mais procurados (20)

Pitié, ne construisez pas le nouveau pont Champlain en Agilité...
Pitié, ne construisez pas le nouveau pont Champlain en Agilité...Pitié, ne construisez pas le nouveau pont Champlain en Agilité...
Pitié, ne construisez pas le nouveau pont Champlain en Agilité...
 
Développer en mode kick-ass à Scrum Day
Développer en mode kick-ass à Scrum DayDévelopper en mode kick-ass à Scrum Day
Développer en mode kick-ass à Scrum Day
 
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
 
Introduction à Agile Lean
Introduction à Agile LeanIntroduction à Agile Lean
Introduction à Agile Lean
 
Tout est lié! Processus, UX, DevOps, Architecture, BDD, QA, Lean...
Tout est lié! Processus, UX, DevOps, Architecture, BDD, QA, Lean...Tout est lié! Processus, UX, DevOps, Architecture, BDD, QA, Lean...
Tout est lié! Processus, UX, DevOps, Architecture, BDD, QA, Lean...
 
Le journal d'une tortue qui sprinte autour du monde - Vincent Cleroux
Le journal d'une tortue qui sprinte autour du monde - Vincent ClerouxLe journal d'une tortue qui sprinte autour du monde - Vincent Cleroux
Le journal d'une tortue qui sprinte autour du monde - Vincent Cleroux
 
Lean Change Management en grande entreprise, faites l’Évolution, pas la Révol...
Lean Change Management en grande entreprise, faites l’Évolution, pas la Révol...Lean Change Management en grande entreprise, faites l’Évolution, pas la Révol...
Lean Change Management en grande entreprise, faites l’Évolution, pas la Révol...
 
Passer de Scrum à Scrumban - pour quoi faire ?
Passer de Scrum à Scrumban - pour quoi faire ?Passer de Scrum à Scrumban - pour quoi faire ?
Passer de Scrum à Scrumban - pour quoi faire ?
 
Agile expliqué aux managers
Agile expliqué aux managersAgile expliqué aux managers
Agile expliqué aux managers
 
Atelier de simulation DevOps
Atelier de simulation DevOpsAtelier de simulation DevOps
Atelier de simulation DevOps
 
Estimation initiale dun projet agile de Mathieu Boisvert
Estimation initiale dun projet agile de Mathieu BoisvertEstimation initiale dun projet agile de Mathieu Boisvert
Estimation initiale dun projet agile de Mathieu Boisvert
 
Comment être agile dans un contexte non lié aux TI ?
Comment être agile dans un contexte non lié aux TI ?Comment être agile dans un contexte non lié aux TI ?
Comment être agile dans un contexte non lié aux TI ?
 
J'ai 2 jours pour lancer mon projet agile
J'ai 2 jours pour lancer mon projet agileJ'ai 2 jours pour lancer mon projet agile
J'ai 2 jours pour lancer mon projet agile
 
Développer votre logiciel interne : comment y parvenir sans investir une fort...
Développer votre logiciel interne : comment y parvenir sans investir une fort...Développer votre logiciel interne : comment y parvenir sans investir une fort...
Développer votre logiciel interne : comment y parvenir sans investir une fort...
 
La gestion de projet en mode Agile : quelle réalité opérationnelle?
La gestion de projet en mode Agile : quelle réalité opérationnelle?La gestion de projet en mode Agile : quelle réalité opérationnelle?
La gestion de projet en mode Agile : quelle réalité opérationnelle?
 
Transformation agile d'envergure strategies, pieges et facteurs de succes
Transformation agile d'envergure strategies, pieges et facteurs de succesTransformation agile d'envergure strategies, pieges et facteurs de succes
Transformation agile d'envergure strategies, pieges et facteurs de succes
 
Agilité du point de vue de la gouvernance
Agilité du point de vue de la gouvernanceAgilité du point de vue de la gouvernance
Agilité du point de vue de la gouvernance
 
Parlons Agilité !
Parlons Agilité !Parlons Agilité !
Parlons Agilité !
 
Architecture express pour petits projets
Architecture express pour petits projetsArchitecture express pour petits projets
Architecture express pour petits projets
 
Qu'est-ce qu'un Scrum Master ? - Romain Couturier (Terre d'Agile) - Agile en ...
Qu'est-ce qu'un Scrum Master ? - Romain Couturier (Terre d'Agile) - Agile en ...Qu'est-ce qu'un Scrum Master ? - Romain Couturier (Terre d'Agile) - Agile en ...
Qu'est-ce qu'un Scrum Master ? - Romain Couturier (Terre d'Agile) - Agile en ...
 

Semelhante a Les tests automatisés par mots-clés, le complément parfait d’un projet Agile

Introduction à l'agilité iut lyon 1 sept2013
Introduction à l'agilité   iut lyon 1 sept2013Introduction à l'agilité   iut lyon 1 sept2013
Introduction à l'agilité iut lyon 1 sept2013
agnes_crepet
 

Semelhante a Les tests automatisés par mots-clés, le complément parfait d’un projet Agile (20)

Introduction à Scrum et aux méthodes agiles (v1.0)
Introduction à Scrum et aux méthodes agiles (v1.0)Introduction à Scrum et aux méthodes agiles (v1.0)
Introduction à Scrum et aux méthodes agiles (v1.0)
 
Le rôle de l'analyste d'affaires et la place de la documentation dans un proc...
Le rôle de l'analyste d'affaires et la place de la documentation dans un proc...Le rôle de l'analyste d'affaires et la place de la documentation dans un proc...
Le rôle de l'analyste d'affaires et la place de la documentation dans un proc...
 
La qualité au service de vos projets digitaux ! Retour sur le PDJ co-organisé...
La qualité au service de vos projets digitaux ! Retour sur le PDJ co-organisé...La qualité au service de vos projets digitaux ! Retour sur le PDJ co-organisé...
La qualité au service de vos projets digitaux ! Retour sur le PDJ co-organisé...
 
Agilite Scrum
Agilite Scrum Agilite Scrum
Agilite Scrum
 
Assurance qualité
Assurance qualitéAssurance qualité
Assurance qualité
 
Introduction à l'agilité iut lyon 1 sept2013
Introduction à l'agilité   iut lyon 1 sept2013Introduction à l'agilité   iut lyon 1 sept2013
Introduction à l'agilité iut lyon 1 sept2013
 
Les pratiques Scrum
Les pratiques ScrumLes pratiques Scrum
Les pratiques Scrum
 
L’informatique efficience
L’informatique efficienceL’informatique efficience
L’informatique efficience
 
Impacts de l'adoption de Scrum
Impacts de l'adoption de ScrumImpacts de l'adoption de Scrum
Impacts de l'adoption de Scrum
 
Agilité et la gestion du changement mboisvert - 15 octobre 2013
Agilité et la gestion du changement   mboisvert - 15 octobre 2013Agilité et la gestion du changement   mboisvert - 15 octobre 2013
Agilité et la gestion du changement mboisvert - 15 octobre 2013
 
Grosjean Agile User Experience XP DAY France 2009
Grosjean Agile User Experience XP DAY France 2009Grosjean Agile User Experience XP DAY France 2009
Grosjean Agile User Experience XP DAY France 2009
 
presentation Zest au JFTL 2014
presentation Zest au JFTL 2014presentation Zest au JFTL 2014
presentation Zest au JFTL 2014
 
Formation Agile Scrum
Formation Agile ScrumFormation Agile Scrum
Formation Agile Scrum
 
Choisir Deployer Collaboratif 21640 23333
Choisir Deployer Collaboratif 21640 23333Choisir Deployer Collaboratif 21640 23333
Choisir Deployer Collaboratif 21640 23333
 
Le métier de Product Owner
Le métier de Product OwnerLe métier de Product Owner
Le métier de Product Owner
 
Agilite togo jug_final
Agilite togo jug_finalAgilite togo jug_final
Agilite togo jug_final
 
Les tests utilisateurs pour les petits budgets
Les tests utilisateurs pour les petits budgetsLes tests utilisateurs pour les petits budgets
Les tests utilisateurs pour les petits budgets
 
Présentation des principes Scrum
Présentation des principes ScrumPrésentation des principes Scrum
Présentation des principes Scrum
 
Méthodes agile
Méthodes agileMéthodes agile
Méthodes agile
 
Les 7 règles d’or pour réussir, et surtout rentabiliser rapidement un projet crm
Les 7 règles d’or pour réussir, et surtout rentabiliser rapidement un projet crmLes 7 règles d’or pour réussir, et surtout rentabiliser rapidement un projet crm
Les 7 règles d’or pour réussir, et surtout rentabiliser rapidement un projet crm
 

Mais de Agile Montréal

Mais de Agile Montréal (20)

ATMTL23 - L'agilité augmentée par ChatGPT: comment utiliser l'agent intellige...
ATMTL23 - L'agilité augmentée par ChatGPT: comment utiliser l'agent intellige...ATMTL23 - L'agilité augmentée par ChatGPT: comment utiliser l'agent intellige...
ATMTL23 - L'agilité augmentée par ChatGPT: comment utiliser l'agent intellige...
 
ATMTL23 - How to create and elevate top talent? A cohort-based learning metho...
ATMTL23 - How to create and elevate top talent? A cohort-based learning metho...ATMTL23 - How to create and elevate top talent? A cohort-based learning metho...
ATMTL23 - How to create and elevate top talent? A cohort-based learning metho...
 
ATMTL23 - TANS: there always a next sprint by Tom Siebeneicher and Sander Dur
ATMTL23 - TANS: there always a next sprint by Tom Siebeneicher and Sander DurATMTL23 - TANS: there always a next sprint by Tom Siebeneicher and Sander Dur
ATMTL23 - TANS: there always a next sprint by Tom Siebeneicher and Sander Dur
 
ATMTL23 - Dépasser les frontières : Réinterpréter les Principes ISTQB avec un...
ATMTL23 - Dépasser les frontières : Réinterpréter les Principes ISTQB avec un...ATMTL23 - Dépasser les frontières : Réinterpréter les Principes ISTQB avec un...
ATMTL23 - Dépasser les frontières : Réinterpréter les Principes ISTQB avec un...
 
ATMTL23 - Comment mieux atteindre vos objectifs grâce à l'agilité comportemen...
ATMTL23 - Comment mieux atteindre vos objectifs grâce à l'agilité comportemen...ATMTL23 - Comment mieux atteindre vos objectifs grâce à l'agilité comportemen...
ATMTL23 - Comment mieux atteindre vos objectifs grâce à l'agilité comportemen...
 
ATMTL23 - Le multivers Agile - Volume 2: Odyssée vers Agiletopia par Martin L...
ATMTL23 - Le multivers Agile - Volume 2: Odyssée vers Agiletopia par Martin L...ATMTL23 - Le multivers Agile - Volume 2: Odyssée vers Agiletopia par Martin L...
ATMTL23 - Le multivers Agile - Volume 2: Odyssée vers Agiletopia par Martin L...
 
ATMTL23 - Créer une entreprise apprenante : Les principes de Peter Senge pour...
ATMTL23 - Créer une entreprise apprenante : Les principes de Peter Senge pour...ATMTL23 - Créer une entreprise apprenante : Les principes de Peter Senge pour...
ATMTL23 - Créer une entreprise apprenante : Les principes de Peter Senge pour...
 
ATMTL23 - De la Zone de Guerre à la Zone de Cœur : Un Voyage de Résilience, d...
ATMTL23 - De la Zone de Guerre à la Zone de Cœur : Un Voyage de Résilience, d...ATMTL23 - De la Zone de Guerre à la Zone de Cœur : Un Voyage de Résilience, d...
ATMTL23 - De la Zone de Guerre à la Zone de Cœur : Un Voyage de Résilience, d...
 
ATMTL23 - Réussir sa transformation agile c'est d’abord changer son état d'es...
ATMTL23 - Réussir sa transformation agile c'est d’abord changer son état d'es...ATMTL23 - Réussir sa transformation agile c'est d’abord changer son état d'es...
ATMTL23 - Réussir sa transformation agile c'est d’abord changer son état d'es...
 
ATMTL23 - The Happiness Blueprint: Positivity Experiments for Powerful Teamwo...
ATMTL23 - The Happiness Blueprint: Positivity Experiments for Powerful Teamwo...ATMTL23 - The Happiness Blueprint: Positivity Experiments for Powerful Teamwo...
ATMTL23 - The Happiness Blueprint: Positivity Experiments for Powerful Teamwo...
 
ATMTL23 - Le Developer Experience au service de la livraison en continu par A...
ATMTL23 - Le Developer Experience au service de la livraison en continu par A...ATMTL23 - Le Developer Experience au service de la livraison en continu par A...
ATMTL23 - Le Developer Experience au service de la livraison en continu par A...
 
ATMTL23 - L'Arbre de vie - Une pratique narrative pour se réapproprier son pa...
ATMTL23 - L'Arbre de vie - Une pratique narrative pour se réapproprier son pa...ATMTL23 - L'Arbre de vie - Une pratique narrative pour se réapproprier son pa...
ATMTL23 - L'Arbre de vie - Une pratique narrative pour se réapproprier son pa...
 
ATMTL23 - Atelier PNL pour ameliorer la communication par Remi Roche
ATMTL23 - Atelier PNL pour ameliorer la communication par Remi RocheATMTL23 - Atelier PNL pour ameliorer la communication par Remi Roche
ATMTL23 - Atelier PNL pour ameliorer la communication par Remi Roche
 
ATMTL23 - Remettre l'humain au coeur de l'agilité avec le Mind Mapping par Re...
ATMTL23 - Remettre l'humain au coeur de l'agilité avec le Mind Mapping par Re...ATMTL23 - Remettre l'humain au coeur de l'agilité avec le Mind Mapping par Re...
ATMTL23 - Remettre l'humain au coeur de l'agilité avec le Mind Mapping par Re...
 
ATMTL23 - La collaboration intergénérationnelle au travail par Apolline Tissier
ATMTL23 - La collaboration intergénérationnelle au travail par Apolline  TissierATMTL23 - La collaboration intergénérationnelle au travail par Apolline  Tissier
ATMTL23 - La collaboration intergénérationnelle au travail par Apolline Tissier
 
ATMTL23 - L'odysée d'un PMO vers un VMO par Elyes Dekhili et Karl Métivier
ATMTL23 - L'odysée d'un PMO vers un VMO par Elyes Dekhili et Karl MétivierATMTL23 - L'odysée d'un PMO vers un VMO par Elyes Dekhili et Karl Métivier
ATMTL23 - L'odysée d'un PMO vers un VMO par Elyes Dekhili et Karl Métivier
 
ATMTL23 - Économie coopérative et agilité par Dominique Pothier
ATMTL23 - Économie coopérative et agilité par Dominique PothierATMTL23 - Économie coopérative et agilité par Dominique Pothier
ATMTL23 - Économie coopérative et agilité par Dominique Pothier
 
ATMTL23 - Agnostic Agile, un mouvement en Agilité qui respecte les bases les ...
ATMTL23 - Agnostic Agile, un mouvement en Agilité qui respecte les bases les ...ATMTL23 - Agnostic Agile, un mouvement en Agilité qui respecte les bases les ...
ATMTL23 - Agnostic Agile, un mouvement en Agilité qui respecte les bases les ...
 
ATMTL23 - Innovation Unleashed: Inspiring Agile Teams through Creative Thinki...
ATMTL23 - Innovation Unleashed: Inspiring Agile Teams through Creative Thinki...ATMTL23 - Innovation Unleashed: Inspiring Agile Teams through Creative Thinki...
ATMTL23 - Innovation Unleashed: Inspiring Agile Teams through Creative Thinki...
 
ATMTL23 - « A community of Scientists » Saisir le pouvoir du Toyota Kata pour...
ATMTL23 - « A community of Scientists » Saisir le pouvoir du Toyota Kata pour...ATMTL23 - « A community of Scientists » Saisir le pouvoir du Toyota Kata pour...
ATMTL23 - « A community of Scientists » Saisir le pouvoir du Toyota Kata pour...
 

Les tests automatisés par mots-clés, le complément parfait d’un projet Agile

  • 1. Les tests automatisés par mots-clés, le complément parfait d’un projet Agile Jean-Yves Allard, ing. Agile Tour Montréal 2018
  • 2. Agenda • Introduction • Mise en contexte • Le BDD et les tests en pratique • Les mots-clés en test • Quelques exemples avec des outils • À retenir • Questions
  • 3. Qui suis-je ? Ingénieur informatique de formation Plus de 32 ans d’expérience professionnelle De l’embarqué aux systèmes distribués De l’assembleur au python, Java et .Net Du Waterfall à l’Agile/BDD, en passant par JAD/RAD et XP
  • 5. Pourquoi tester et automatiser ? • Ça coûte trop cher • On n’a pas le temps • C’est impossible de tout tester • On est Agile! • Les QAs font le faire • On va manquer notre fenêtre de livraison
  • 6. X Exigences mal comprises X Produit mal adapté X Usagers experts pas consultés X Pas de projet pilote X Peu ou pas de tests X Pas de plan de retour en arrière Source : Rapport du comité du Sénat https://sencanada.ca/content/sen/committee/421/NFFN/reports/NFFN_Ph%C3%A9nix_rapport32_WEB_f.pdf Le Phœnix ne renaîtra pas de ses cendres !
  • 7. • Les tests et l’automatisation en vase clos auraient probablement un peu aidé, mais le résultat final serait le même. • À la base, les tests doivent faire l’objet d’une stratégie qui, elle- même, doit faire partie intégrale du processus de développement. Agile ou pas. • La communication et les échanges en continue entre les parties prenantes sont impératifs. • Le développement logiciel est avant tout, encore pour l’instant, une activité humaine, socialement très complexe. • Chacun amène son lot d’idées et de préjugés à la table d’un projet; chacun a sa propre perception et sa propre motivation. • Même si on se dit Agile, les gens ont tendance à « sérialiser » les activités selon leur rôle (récits-dev-test-QA-UAT-livraison). Cette vision n’a pas changé depuis plus de 30 ans ! Les tests auraient-ils tout changé ?
  • 8. 1. Le processus de développement, de la création à l’opération, doit favoriser la communication et les échanges en continu entre les parties prenantes. 2. Il faut se doter d’un langage commun entre les usagers, l’équipe de développement, la gestion et l’opération. 3. Les tests et l’automatisation encadrés par une stratégie et intégrés au départ donnent des logiciels de qualité. 4. L’assurance qualité ce n’est pas le contrôle de la qualité. Elle inhérente à l’objectif du processus de développement. • Il faut se doter d’une manière de penser, soutenue de méthodes et d’outils adaptés. • Il faut rester Agile, dans tous les sens du terme ! À éviter: Version plus colorée, plus complexe, mais essentiellement la même ! Que faire alors ?
  • 9. Les principes et méthodes Agile forment le fondement.  ATTENTION: l’agilité ce n’est pas du mini Waterfall! On y adjoint une stratégie d’assurance qualité intégrée. On adopte les principes du BDD, pour le code applicatif et les tests. On élabore un catalogue de produits en utilisant par exemple le « Feature Mapping », ensemble avec le PO/AA, les développeurs et les analystes, scripteurs, testeurs en assurance-qualité. On adopte un langage commun pour décrire les fonctionnalités du catalogue de produit.  Au début du projet, c’est un roadmap plus au moins détaillé  qui sera raffiné au fil des sprints. 1. Le processus de développement
  • 10. Précis et succinct Indépendant des outils et langages de programmation  Tests unitaires = spécification du comportement d’une classe  Tests fonctionnels = spécification du comportement d’une fonction d’affaires Refactoring et mocking  On ne comprend pas tout au départ  « Diviser pour régner » Les mots-clés constituent votre vocabulaire commun  Indépendants de l’implantation  Résistants aux changements 2. Un langage et une méthode communs
  • 11. Elle considère le processus de bout en bout, autant pour le logiciel développé que des rôles et responsabilités de chacun, et des outils et méthodes choisies pour le projet. Les plans de tests sont découpés en fonction de leur valeur tout au long du développement, de la mise en production et même pour l’opération. L’équipe définit le partitionnement des tests entre les tests unitaires et les fonctionnels, pour optimiser la couverture et l’impact. Les tests utilisent le mêmes cas d’usage en les bonifiant avec des scénarios particuliers au besoin, par exemple pour les tests de performance. 3. Une stratégie d’assurance qualité intégrale
  • 13. C’est quoi le BDD ? Behaviour Driven Development, basé sur l’approche Test Driven Development • Emphase sur la coopération engagée entre les clients/usagers, les développeurs, les testeurs et toute autre partie prenante. • Ensemble, les fonctionnalités créées doivent contribuer à ajouter de la valeur. Tout le reste est inutile et constitue du gaspillage (Lean anyone ?). • Spécification des comportements attendus par exemples concrets. Ultimement automatisable. • On doit s’attendre à ce que notre compréhension des exigences ou fonctionnalités évolue au cours du projet. • Comme toute méthode, la qualité et la précision des récits et scénarios sont nécessaires à la valeur espérée. • Attention aux abus lorsque l’exercice devient une fin en soit. Comme pour l’agilité en général, il faut à tout prix éviter les dogmes.
  • 14. 2018-11-16 14 Récit utile (pas vraiment) • En tant qu’usager • Je veux faire une action • Dans le but d’obtenir un bénéfice Scénario 1 • Étant donné ce contexte • Lorsque je fais cette action • Alors je m’attends à ce résultat Scénario 2 • Étant donné cet autre contexte • Lorsque je fais cette autre action • Alors je m’attends à cet autre résultat DÉVELOPPER LA CONFIANCE À retenir : Une bonne technique pour arriver à des récits concrets, de qualité et réalisables : « Feature Mapping » ou « Example Mapping » 5 « Whys » Récits usagers (ou fonctionnalités) en BDD
  • 15. 2018-11-16 15 Fonctionnalité : Gérer les propriétaires En tant que Commis de clinique, dans le but de gérer les informations des propriétaires d’animaux qui sont clients de la clinique, je veux pouvoir : • Scénario 1 : consulter le répertoire des clients • Scénario 2 : chercher un propriétaire en particulier • Scénario 3 : ajouter un propriétaire s’il n’existe pas o Étant donné que la page Rechercher Propriétaire est affichée o Lorsque j’active la fonction Ajouter Propriétaire o Et que j’entre les informations du propriétaire sans fautes o Et j’active la fonction Ajouter o Alors le propriétaire existe • Scénario 4: modifier les informations du propriétaire s’il existe. DÉVELOPPER LA CONFIANCE Ensemble, il faut se poser des questions pour clarifier Et avec un récit plus utile en BDD
  • 16. • Propriétaire existe ou non o Si le propriétaire recherché n’existe pas, que fait l’application? Affiche un message? Si oui lequel? Sinon quoi? • Client o Est-ce qu’un client est obligatoirement un propriétaire d’animaux? o Est-ce qu’un client est usager de l’application? • Informations d’un propriétaire o Nom, prénom, adresse (rue, ville, province, code postal)? o Actif? Usager de l’application? o Infos financières? o Nous définissons que l’application affiche un message indiquant le propriétaire n’existe pas. Il faudra ajouter ce comportement à notre récit. o Oui o Non o Nous définissons: Nom, prénom et adresse o Non nécessaire o Non nécessaires Posons-nous ensemble des questions pour clarifier
  • 17. • Sans fautes o Règles de bas niveau, quelles sont-elles? o Validation à l’écran en direct ou par le back-end ? • Commis de clinique o Considérant ce qui est plus haut, droits de voir/manipuler les infos financières? • Sauvegarde, recherche et chargement o Que fait l’application si il n’est passible de rejoindre le back-end ? o Aucune o Aucune o Sans objet o Il faudra ajouter un comportement au récit à l’effet que l’application indiquera le problème mais ne pètera pas. Posons-nous ensemble des questions pour clarifier
  • 18. Les mots-clés sont des actions programmées dont le nom évoque clairement la fonction. Ils permettent de séparer la programmation des scripts de test de la documentation du cas de test • Les analystes peuvent se concentrer sur la fonctionnalité et le comportement attendu de l’application à tester. • Les programmeurs de scripts se concentrent sur l’implantation des cas de tests documentés. • Mais, entre eux et avec les usagers, ils partagent une compréhension unique des attentes. Ils améliorent la robustesse face aux changements techniques et aux détails sous-jacents. Ils facilitent la maintenance des fonctions de tests et permettent de les réutiliser. Ils sont composables. Ils deviennent des spécifications exécutables. On passe aux tests avec des Mots-Clés
  • 19. Tests avec Mots-Clés en BDD Scénario 3 : Gérer les propriétaires, Je veux ajouter un propriétaire s’il n’existe pas Étant donné que La page Rechercher Propriétaire est affichée Open Browser URL Wait Until Page Contains Element locator_page_open Activate Element locator_menu_owner Wait Until Element Is Visible locator_add_button Et que Le Propriétaire n’existe pas Query query_check_owner_not_exist nom_du_proprio Should Be Empty query_result Lorsque J’active la fonction Ajouter Propriétaire Activate Element locator_add_owner On commence avec les mots-clés de bas niveau et on compose
  • 20. Tests avec Mots-Clés en BDD Et que J’entre les informations du Propriétaire Input Text locator_name nom_du_proprio Et que J’active la fonction Ajouter Propriétaire Activate Element locator_add_owner Alors Le Propriétaire existe Query query_check_owner_exists nom_du_proprio Should Not Be Empty query_result
  • 21. Notre scénario 3 dans une plateforme
  • 22. Composition de mots-clés Mots-clés de base ou combinés La complexité poussée au dernier niveau Le langage simple, commun à tous Une spécification exécutable, sans coder !
  • 23. À retenir • Le développement Agile de qualité, c’est possible et payant! • Un langage commun précis et succinct • Des outils adaptés à soutenir le processus • Travaillez ensemble, fini les silos! • Communiquez! Askida CT Concordion Cucumber/Gherkin Jbehave Robot Framework SpecFlow
  • 24. Merci ! Essayez Askida CTMC https://askidact.com Renseignez-vous au sujet de nos ateliers info@askida.com
  • 25. Références • Livres o Chelimsky, David, The Rspec Book, The Pragmatic Bookshelf, 2010 o Greever, Tom, Articulating Design Decisions, O’Reilly, 2015 o Kalbach, Jim, Mapping Experiences, O’Reilly, 2016 o Patton, Jeff, User Story Mapping, O’Reilley, 2014 o Smart, John Ferguson, BDD in Action, Manning, 2015 o Wynne, Matt, Hellsoy, Aslak, The Cucumber Book, The Pragmatic Bookshelf, 2012 • Articles et présentations o Allard, Jean-Yves, Ateliers Tests en BDD avec Askida CT, Groupe Askida, Montréal et Toronto, 2018 o Anderson, Kenneth M., BDD and Cucumber, University of Colorado, Computer Science Lectures, 2012 o Smart, John Ferguson, BDD at the Heart of any DevOps Transformation Story, 2017 o Versaci, Damian, Agile BDD and Integrated Testing with Cucumber, Melbourne ANTZTB SIGIST, 2011