atddà douleoule automatiser un test d'a eptation · specification by example tests de story...
TRANSCRIPT
![Page 1: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/1.jpg)
FÉLIX-ANTOINE BOURBONNAISB.ING., M.SC, PSM
Agile Tour Québec 2017
ATDD à double boucleautomatiser un test d'acceptation
![Page 2: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/2.jpg)
Diapositives, références et vidéoshttp://conferences.elapsetech.com/atdd-double-boucle
Cette présentation s’adresse à un public avancé et très technique.
![Page 3: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/3.jpg)
• Comprendre le cycle de l’ATDD
• Comprendre comment piloter le développement à partir d’une User Story.
• Comprendre le lien entre le TDD et l’ATDD
• Savoir comment exécuter des scénarios à différents niveaux
• Avoir un aperçu de comment enchaîner (pipeline) les tests
Objectifs
![Page 4: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/4.jpg)
![Page 5: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/5.jpg)
Qu’est-ce qu’un test d’acceptation ou une Story Test ?
![Page 6: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/6.jpg)
Est-ce que je produis la bonne chose?
(Building the right thing)
8
![Page 7: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/7.jpg)
Specification by ExampleTests de Story
Tests unitaires (type)Tests d’API
Tests développeursTests de composantes
Types de tests
Les types de tests…
Tiré du livre More Agile Testing
Orienté AFFAIRES
Orienté TECHNOLOGIE
Gu
ide
le D
ÉVEL
OP
PEM
ENT
Gu
ide
le D
ÉVEL
OP
PEM
ENT
Critiq
ue le P
RO
DU
IT
ATDD
TDD
![Page 8: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/8.jpg)
![Page 9: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/9.jpg)
Tests d’acceptation/Story Tests!=
Tests bout-en-bout
![Page 10: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/10.jpg)
La portée (scope) d’un test est la distanceentre le point d’appel et de validation
![Page 11: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/11.jpg)
Un type de test (ex.: Feature/Story) n’est pas directement relié à
une portée (ex.: bout-en-bout).
![Page 12: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/12.jpg)
Image par Gamma-Ray Productions sur Flickr
Attention en automatisant !
% du portfolio de tests auto.
(tous les types)
Large (L)
Moyen (M)
Petit (S)
~10%
~20%
~70%
Bout-en-boutToutes composantes
Une ou quelques classes
Une composante intégrée
Fragilité des tests
![Page 13: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/13.jpg)
![Page 14: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/14.jpg)
« Feature File »
![Page 15: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/15.jpg)
Le Gherkin
![Page 16: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/16.jpg)
Gherkin != BDD
![Page 17: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/17.jpg)
Le BDD est une méthode axée sur la collaboration pour comprendre et spécifier les
besoins d’affaires
![Page 18: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/18.jpg)
![Page 19: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/19.jpg)
• Cucumber et sa famille
• SpecFlow
Les outils en bref
![Page 20: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/20.jpg)
• Feature File
• Step Definitions / Glues
• Support Classes (à venir)
Anatomie de Cucumber
![Page 21: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/21.jpg)
![Page 22: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/22.jpg)
ATDD: Acceptance* Test Driven Development
* Ne pas confondre avec les tests d’acceptation utilisateur. Acceptation ici = test des critères d’acceptation de la Story.
![Page 23: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/23.jpg)
Le but de l’ATDD est de piloter le développement du système
![Page 24: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/24.jpg)
Notre but est de nous assurer de répondre aux critères de la User Story et la considérer
comme terminée.
![Page 25: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/25.jpg)
ATDD1
Écrire un scénario qui échoue
2
Scénario passe
3
![Page 26: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/26.jpg)
• Java
• Cucumber-JVM
• Junit
• Eclipse (IDE)
• Maven
Outils utilisés pour la démonstration
![Page 27: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/27.jpg)
Démonstration <partie 1>
Vidéo de la démonstrationhttp://conferences.elapsetech.com/atdd-double-boucle
![Page 28: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/28.jpg)
![Page 29: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/29.jpg)
Constat: nous n’avons pas codé le UI et tous les tests passent !?!
![Page 30: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/30.jpg)
La solution n’est pas de choisir la portée de chaque scénario.
![Page 31: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/31.jpg)
ATDD à double boucle
* Uniquement certains scénarios (voir Pyramide des tests). Pourrait être @MEDIUM ou autre portée…
Logique (domaine)
UI
Infra / Données
2c
Scénario A@LARGE*
2a
2b
Scénario A@SMALL
1c
1a
1b
![Page 32: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/32.jpg)
@scope=webScenario: Transfering money adjusts the account balances Given an account 111 with 1000$ in itAnd an account 222 with 500$ in itWhen I create a transaction of 100$ from 111 to 222 Then the account 111 has 900$ in itAnd the account 222 has 600$ in it
@scope=webScenario: Transfering money creates an accepted transaction log Given an account 333 with 1000$ in itAnd an account 444 with 500$ in itWhen I transfer 100$ from 333 to 444 Then a transaction log is created for the amount of 100$
Scenario: Transfering money when the account doesn't have the fundsGiven an account 555 with 99$ in itAnd an account 666 with 500$ in itWhen I transfer 100$ from 555 to 666 Then a transaction log shows that the transfer was refused
Exemple
12
12
1
![Page 33: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/33.jpg)
Démonstration <partie 2>
Vidéo de la démonstrationhttp://conferences.elapsetech.com/atdd-double-boucle
![Page 34: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/34.jpg)
![Page 35: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/35.jpg)
Étape 1 • Nous avons écrit 1 Story Test pour nous assurer du comportement tel que spécifié dans la User Story.
• Nous avons piloté l’écriture de la logique d’affaires pour faire passer le premier scénario.
• Nous avons écrit des tests unitaires en TDD pour nous assurer de couvrir et bien construire le code de production.
Résumé
![Page 36: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/36.jpg)
Étape 2 • Nous avons branché le même scénario à une portée plus grande afin de piloter le développement de l’API (UI)
Résumé
![Page 37: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/37.jpg)
Étapes suivantes • Implémenter les autres scénarios avec la même boucle
• Par contre, ces scénarios ne requièrent pas d’être pilotés à une portée plus grande que AppService+FakeDB.
Résumé
![Page 38: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/38.jpg)
Pourquoi ?
![Page 39: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/39.jpg)
merci .
![Page 40: ATDDà douleoule automatiser un test d'a eptation · Specification by Example Tests de Story Tests unitaires (type) ... Les types de tests… Tiré du livre More Agile Testing Orienté](https://reader035.vdocuments.net/reader035/viewer/2022063015/5fd19a7671419c669762cc0d/html5/thumbnails/40.jpg)
Siteelapsetech.com
Twitter@fbourbonnais
conferences.elapsetech.com
Toutes nos présentations
conferences.elapsetech.com
/atdd-double-boucle
Diapositives et références
Pascal Roy
@