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