SlideShare une entreprise Scribd logo
1  sur  44
Télécharger pour lire hors ligne
Stratégie de Test
La faire bien pour en faire moins
1
Nicolas Fédou
• Artisan Développeur chez
• Coach Craft
• Aka. Coach Technique
• Aka formateur et accompagnant en
bonnes pratiques de développement
agile
• Ex-Testeur du logiciel des CFM56
(Moteur d’avion)
2
L’origine
• Développement en phases longues
• IE. : Livraison tous les 6 mois
=> 6 livraisons en 3 ans
• Livraison de périmètres fonctionnels complets,
non remis en cause plus tard (dans l’idéal ☺)
Valider
Appels
Code « métier »
T
3
L’origine
Stratégie de tests :
l’art de sélectionner les tests fonctionnels à jouer
pour éviter les régressions
et évidement montrer la présence des évolutions
4
Les demandes clients d’aujourd’hui
• Nous avons du mettre en place une phase de stabilisation, mais
• Elle nous prend du temps et de l’énergie
Temps
QA / Stabilisation
5
Itération Données / IO Tests Ambiance
Sprint 0
S + 1
S + 2
Les demandes clients d’aujourd’hui
• Nous avons une campagne de tests automatisés, mais
• Elle nous demande trop d’efforts
• À concevoir ou produire
• À maintenir
• Elle dure trop longtemps
• La CI bloque de plus en plus
• Les développeurs ne les lancent
plus
6
Une stratégie de tests « agile »
•Est l’ensemble des moyens et pratiques que
l’on se donne pour construire un produit de
qualité.
•Est une façon de s’organiser pour avoir
toutes les preuves de qualité logicielle
nécessaires et suffisantes à moindre
effort pour livrer le produit en continu.
7
Stratégies d’hier
Tests fonctionnels End 2 End : manuels ou « manuels robotisés »
Sur toute la stack technique
Valider
Appels
Code « métier »
T
8
Stratégies d’hier
Tests fonctionnels End 2 End : une « user journey » de bout en bout
End
Start
M
O
S
C
O
W
10
S’organiser seulement pour livrer :
« à la James Dean »
Livrer permet juste
d’entrer dans la
course
L’édition de logiciel
est un coût
Un logiciel ne rapporte
qu’en production
11
La qualité permet
de rester dans la course
Les tests sont
des preuves de qualité
S’organiser seulement pour livrer :
« à la James Dean »
12
• Un test, c’est exercer une pression sur un système
Pour en constater la réponse
Pour obtenir un feedback délibérément
Comme d’habitude ☺
Le test en théorie
14
Program testing can be
used to show the presence of bugs,
but never to show their abscence !
Notes on
Structured
programming, 1970
Edsger Djikstra
15
Le test en pratique
•Un test montre un fonctionnement attendu
Il réduit la probabilité d’un défaut sur une fonctionnalité
•Un ensemble de tests décrivant toutes les facettes
d’une fonctionnalité…
+ de mesures, - de surprises,
- d’évolutions sans casser de tests
16
Nous avons le budget pour produire la qualité, mais pour …
• La démontrer avec des tests, avant la mise en production
• Faire face aux risques (sécurité, pannes, …)
• Tenir tous les enjeux (performance, charge, …)
Les critères de qualités n’ont pas de limites, nos budgets en ont une.17
Qualité Vs Budget
Priorisation par les risques
Coût d’un risque = probabilité perçue * impact perçu
George Fairbanks, Chapter 3 of the book Just Enough Software Architecture: A Risk-Driven Approach
http://www.methodsandtools.com/archive/agilesoftwarearchitecture.php
Preuves de qualités Confiance
Zone de fiabilité Zone d’acceptation du risque
18
Priorisation par les risques
Risques non acceptables
Efforts de tests rentable
Risques acceptable (enfin, je crois)
Efforts de monitoring (pour être sûr)
Risques acceptables et indolores
Corrections à la demande
19
Cartographie des risquesProbabilité
Impact
Sansimpact
Improbable
Haut risque
Dan North, in Testing Faster workshop20
Modèle de qualité logicielle ISO 25010 (2011)
remplace l’iso 9126 (2001)
Critères de qualité
https://www.iso.org/obp/ui/#iso:std:iso-iec:25010:ed-1:v1:en
21
Modèle de qualité logicielle ISO 25010 (2011)
remplace l’iso 9126 (2001)
Nouveauté 2011 !!!
Critères de qualité
https://www.iso.org/obp/ui/#iso:std:iso-iec:25010:ed-1:v1:en §22
Fonctionnalité
Complète, Correcte,
Appropriée
• Behaviour Driven Development
• Use case
• Règles de gestion
• Tests fonctionnels manuels
• Workflow/E2E
• Métriques applicatives
• Demos
23
Efficience
Temps, Ressources, Capacité
• …
• Tests de performances/charge
• Monitoring système et applicatif
• Demos
• Oui, des rapports de tirs de
Performance, etc.
24
Compatibilité
Coexistence (i.e. : avec du legacy),
Interopérabilité
• Consumer Driven Contracts
• Approval Testing
• Double Run / Suivi de Production
• Demos
25
Utilisabilité
Approprié, Apprenable, Opérable,
Sécurisé pour l’utilisateur, Esthétique, Accessible
• Tests d’intégration
• Ou fonctionnel dédié
• Tests de Régression Visuelle
• Tests Exploratoires
• Métriques Applicatives
• Demos
26
Fiabilité
Maturité, Disponibilité,
Tolérance aux Pannes,
Récupérabilité
• Tests sur le gestion des pannes
• Et la journalisation en tant que guide de suivi de prod
• Tests d’endurance, charge
• Chaos Monkeys
• Mean Time Between Failures
• Taux d’échec de mise en prod
• Demos
27
Sécurité
Confidentialité, Intégrité,
Non répudiation, Responsabilité, Authenticité
• Tests négatifs
• Un utilisateur inconnu n’obtient pas
la fonctionnalité
• Audit de vulnérabilités
• Pistes d’audit
• Demos
28
Maintenabilité
Modularité, Réutilisabilité,
Analysabilité,
Modifiabilité, Testabilité
• Compile !, ArchUnit
• Clean Code, Pair Programming
• Test first
• Revue de Code
• Analyse de code statique (Sonar)
• Productivité de l’équipe de réalisation
• Demos
29
Portabilité
Adaptabilité, Installabilité, Remplaçabilité
• Intégration et livraison continue
• Conteneurisation (Docker)
• Infra as code
• ansible-test sanity --list-tests
• Molecule
• Ansible-test integration –docker-no-pull –v […]
• Kubernetes en service managé
• Demos
30
Avant Après
l’écriture du code
Fonctionnels
Décrit / défini le produit
Supporte le produit
Techniques
Les tests se sont adaptés
Prescriptif Descriptif
Par Brian Marick, diffusé par Lisa Crispin et Janet Gregory
Gojko Adzic en propose une mise à jour en 2013
31
Les tests prescriptifs se sont adaptés
M
O
S
C
O
W
32
« Une » stratégie d’aujourd’hui
_ |_| X
Valider
Appels
Code « métier »
Tous les leaders d’opinions sur BDD, dooble looop, TDD outside-in ou non
33
« Une » architecture testable
WS
Impl
App
Layer
Repositories
Aggregate
Root
Domain
Object
Domain
Object
Shared
Utility
Shared Model
34
Tests d’intégration « boite blanche »
WS
Impl
App
Layer
Repositories
Aggregate
Root
Domain
Object
Domain
Object
Shared
Utility
Shared Model
Narrow
Integration
Test
API Call
API Mock
System Under Test
35
Tests unitaires « fonctionnels ? »
WS
Impl
App
Layer
Repositories
Aggregate
Root
Domain
Object
Domain
Object
Shared
Utility
Shared Model
Unit
Test
API Call
System under test
36
Security,
caller error’s
management
Tests unitaires « techniques ? »
WS
Impl
App
Layer
Repositories
Aggregate
Root
Domain
Object
Domain
Object
Shared
Utility
Shared Model
Unit
Test
API Call
Unit
Test
Unit
Test
API Mock
Utils by use as « nullOrEmpty »
➔ Cover by caller’s tests
Utils by rule as « Financial Maths »
➔ Cover as a Library you own
Technical
support
37
Tests et niveau d’abstraction
_ |_| X
Valider
Appels
Code « métier » Tests d’intégration système
End to End
Tests d’intégration logicielle et unitaires
Tous les leaders d’opinions sur BDD, dooble looop, TDD outside-in ou non
Tester les détails d’une fonctionnalité depuis l’API la plus proche de l’implémentation
Moins de code à stimuler, tests plus simples à implémenter
Les tests fonctionnels ne sont pas que de bout en bout (End to end)
38
Tests et niveaux d’abstraction
Quantitéde
codestimulé
abstraction fonctionnelle
Mike Cohn : Pyramide de tests Gerard Meszaros : The right abstraction level for your tests
Concret Abstrait
39
Réduire le coût d’écriture des tests
• Générateur de données
• Data set builder
• DataSetBuilder
.makePromotion(shops=4,
packaging.as(40 XXL, 60L, 200S, 1000XS),
TEC=80%)
• Factories : données référentielles
• Given.REGISTERED_USER, GIVEN.anyUser()
• Builder : variabilité composable par cas de tests
• Given.aCustomeUser().withTrips({}).withFriends({}).build()
40
Réduire le coût d’écriture des tests
• Librairie d’assertions
• Assertj
• assertThat(boolean).isTrue().IsNull();
• assertThat(test).containsIgnoringCase(Text);
• assertThat(pojo).IsEqualIgnoringNullsTo(nex ExpectedPojo(field1, null, field3));
• Custom Business Difference Tool
• Ignore derivated data from calculation
• Ignore déclarative data (as user comments)
• Etc.
41
• Test Data Record and Replay
• Spring aspect
• Debug and snippet
• Xstream
« should_return_empty_when_friend_has_no_trips »
Is valuable as a documentation ?
42
43
Test FIRST
Tests avant le code !
• Implémentation
• Vérification d’un travail fini
• Objectif à atteindre
• Fonctionnalité attendue
• Fast
• Rapide
• Isolated
• Une raison d’échouer
• Repeatable
• Self Validating
• Validation automatique
• Timely
• Avant le code de productionFIRST Quality !
44
Test : moteur du développement
• Test Driven Development (TDD)
• Test FIRST +
• Code de production sans tests
• Minimum de tests pour être non passant
• Minimum de code de production pour le faire passer
• Seulement les API
• Conception et clean code seulement en phase de
refactoring
45
Test FIRST en équipe
BDD : Behaviour Driven Development
• Spécifications exécutables
-- Alberto Brandolini46

Contenu connexe

Tendances

Présentation Agile Testing
Présentation Agile TestingPrésentation Agile Testing
Présentation Agile Testingjubehr
 
Automatisations des tests fonctionnels avec Robot Framework
Automatisations des tests fonctionnels avec Robot FrameworkAutomatisations des tests fonctionnels avec Robot Framework
Automatisations des tests fonctionnels avec Robot Frameworklaurent bristiel
 
Le test dans un cycle agile. Comment faire ?
Le test dans un cycle agile. Comment faire ?Le test dans un cycle agile. Comment faire ?
Le test dans un cycle agile. Comment faire ?Gilles Brieux
 
Tests & recette - Les fondamentaux
Tests & recette - Les fondamentauxTests & recette - Les fondamentaux
Tests & recette - Les fondamentauxCOMPETENSIS
 
Agile Test Management Using Jira and Zephyr
Agile Test Management Using Jira and ZephyrAgile Test Management Using Jira and Zephyr
Agile Test Management Using Jira and ZephyrXBOSoft
 
Introduction à la validation de logiciel
Introduction à la validation de logicielIntroduction à la validation de logiciel
Introduction à la validation de logicielJean-Paul CARMONA
 
Test unitaire
Test unitaireTest unitaire
Test unitaireIsenDev
 
Types de tests vs techniques de tests
Types de tests vs techniques de testsTypes de tests vs techniques de tests
Types de tests vs techniques de testsSabrine MASTOURA
 
Agile Testing – embedding testing into agile software development lifecycle
Agile Testing – embedding testing into agile software development lifecycle Agile Testing – embedding testing into agile software development lifecycle
Agile Testing – embedding testing into agile software development lifecycle Kari Kakkonen
 
Les méthodes Agiles - Introduction
Les méthodes Agiles - IntroductionLes méthodes Agiles - Introduction
Les méthodes Agiles - IntroductionTremeur Balbous
 
Introduction to Agile software testing
Introduction to Agile software testingIntroduction to Agile software testing
Introduction to Agile software testingKMS Technology
 
Présentation de Robot framework
Présentation de Robot frameworkPrésentation de Robot framework
Présentation de Robot frameworkgilleslenfant
 
Testing strategy for agile projects updated
Testing strategy for agile projects updatedTesting strategy for agile projects updated
Testing strategy for agile projects updatedTharinda Liyanage
 

Tendances (20)

Présentation Agile Testing
Présentation Agile TestingPrésentation Agile Testing
Présentation Agile Testing
 
Automatisations des tests fonctionnels avec Robot Framework
Automatisations des tests fonctionnels avec Robot FrameworkAutomatisations des tests fonctionnels avec Robot Framework
Automatisations des tests fonctionnels avec Robot Framework
 
Le test dans un cycle agile. Comment faire ?
Le test dans un cycle agile. Comment faire ?Le test dans un cycle agile. Comment faire ?
Le test dans un cycle agile. Comment faire ?
 
Tests & recette - Les fondamentaux
Tests & recette - Les fondamentauxTests & recette - Les fondamentaux
Tests & recette - Les fondamentaux
 
Génie Logiciel : les tests
Génie Logiciel : les testsGénie Logiciel : les tests
Génie Logiciel : les tests
 
Agile Test Management Using Jira and Zephyr
Agile Test Management Using Jira and ZephyrAgile Test Management Using Jira and Zephyr
Agile Test Management Using Jira and Zephyr
 
Introduction à la validation de logiciel
Introduction à la validation de logicielIntroduction à la validation de logiciel
Introduction à la validation de logiciel
 
Test unitaires
Test unitairesTest unitaires
Test unitaires
 
Charte d'équipe
Charte d'équipeCharte d'équipe
Charte d'équipe
 
Test unitaire
Test unitaireTest unitaire
Test unitaire
 
Types de tests vs techniques de tests
Types de tests vs techniques de testsTypes de tests vs techniques de tests
Types de tests vs techniques de tests
 
Agile Testing – embedding testing into agile software development lifecycle
Agile Testing – embedding testing into agile software development lifecycle Agile Testing – embedding testing into agile software development lifecycle
Agile Testing – embedding testing into agile software development lifecycle
 
Ingénierie du test 0.9
Ingénierie du test 0.9Ingénierie du test 0.9
Ingénierie du test 0.9
 
Initiation Scrum
Initiation ScrumInitiation Scrum
Initiation Scrum
 
Les méthodes Agiles - Introduction
Les méthodes Agiles - IntroductionLes méthodes Agiles - Introduction
Les méthodes Agiles - Introduction
 
Introduction to Agile software testing
Introduction to Agile software testingIntroduction to Agile software testing
Introduction to Agile software testing
 
Formation AMDEC
Formation AMDECFormation AMDEC
Formation AMDEC
 
Présentation de Robot framework
Présentation de Robot frameworkPrésentation de Robot framework
Présentation de Robot framework
 
Méthodes agiles
Méthodes agilesMéthodes agiles
Méthodes agiles
 
Testing strategy for agile projects updated
Testing strategy for agile projects updatedTesting strategy for agile projects updated
Testing strategy for agile projects updated
 

Similaire à Strategie de test à agile tour bordeaux

Le rôle du testeur et le Blackbox testing
Le rôle du testeur et le Blackbox testingLe rôle du testeur et le Blackbox testing
Le rôle du testeur et le Blackbox testingGeeks Anonymes
 
Les tests et la qualité: moteur de productivité (v.2016-07)
Les tests et la qualité: moteur de productivité (v.2016-07)Les tests et la qualité: moteur de productivité (v.2016-07)
Les tests et la qualité: moteur de productivité (v.2016-07)Elapse Technologies
 
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileLes cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileDenis Voituron
 
20110519 cara tests_agiles_grenoble_all
20110519 cara tests_agiles_grenoble_all20110519 cara tests_agiles_grenoble_all
20110519 cara tests_agiles_grenoble_allCARA_Lyon
 
formation istqb.pdf
formation istqb.pdfformation istqb.pdf
formation istqb.pdfmido04
 
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 2Christophe Rochefolle
 
Comment construire son laboratoire de tests mobiles avec HP Mobile Center
Comment construire son laboratoire de tests mobiles avec HP Mobile CenterComment construire son laboratoire de tests mobiles avec HP Mobile Center
Comment construire son laboratoire de tests mobiles avec HP Mobile CenterGuillaume Deshayes
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringneuros
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Erradi Mohamed
 
Altran soirée du test logiciel - assez des c 05-10-17
Altran   soirée du test logiciel - assez des c 05-10-17Altran   soirée du test logiciel - assez des c 05-10-17
Altran soirée du test logiciel - assez des c 05-10-17Marc Hage Chahine
 
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...TelecomValley
 
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...Agile Montréal
 
13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciel13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciellauraty3204
 
Développement en méthode agile
Développement en méthode agileDéveloppement en méthode agile
Développement en méthode agilelaurent bristiel
 
La qualité au meilleur prix grâce aux tests unitaires
La qualité au meilleur prix grâce aux tests unitairesLa qualité au meilleur prix grâce aux tests unitaires
La qualité au meilleur prix grâce aux tests unitairesGauthier Delamarre
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logicielsSylvain Leroy
 
Session #2 du workshop sur la performance en environnement de production
Session #2 du workshop sur la performance en environnement de productionSession #2 du workshop sur la performance en environnement de production
Session #2 du workshop sur la performance en environnement de productionDEFO KUATE Landry
 
Agilite togo jug_final
Agilite togo jug_finalAgilite togo jug_final
Agilite togo jug_finalagnes_crepet
 
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 testableAssociation Agile Nantes
 
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie TrudelHa zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie TrudelAgile Montréal
 

Similaire à Strategie de test à agile tour bordeaux (20)

Le rôle du testeur et le Blackbox testing
Le rôle du testeur et le Blackbox testingLe rôle du testeur et le Blackbox testing
Le rôle du testeur et le Blackbox testing
 
Les tests et la qualité: moteur de productivité (v.2016-07)
Les tests et la qualité: moteur de productivité (v.2016-07)Les tests et la qualité: moteur de productivité (v.2016-07)
Les tests et la qualité: moteur de productivité (v.2016-07)
 
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileLes cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
 
20110519 cara tests_agiles_grenoble_all
20110519 cara tests_agiles_grenoble_all20110519 cara tests_agiles_grenoble_all
20110519 cara tests_agiles_grenoble_all
 
formation istqb.pdf
formation istqb.pdfformation istqb.pdf
formation istqb.pdf
 
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
 
Comment construire son laboratoire de tests mobiles avec HP Mobile Center
Comment construire son laboratoire de tests mobiles avec HP Mobile CenterComment construire son laboratoire de tests mobiles avec HP Mobile Center
Comment construire son laboratoire de tests mobiles avec HP Mobile Center
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoring
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016
 
Altran soirée du test logiciel - assez des c 05-10-17
Altran   soirée du test logiciel - assez des c 05-10-17Altran   soirée du test logiciel - assez des c 05-10-17
Altran soirée du test logiciel - assez des c 05-10-17
 
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
 
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...
 
13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciel13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciel
 
Développement en méthode agile
Développement en méthode agileDéveloppement en méthode agile
Développement en méthode agile
 
La qualité au meilleur prix grâce aux tests unitaires
La qualité au meilleur prix grâce aux tests unitairesLa qualité au meilleur prix grâce aux tests unitaires
La qualité au meilleur prix grâce aux tests unitaires
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
Session #2 du workshop sur la performance en environnement de production
Session #2 du workshop sur la performance en environnement de productionSession #2 du workshop sur la performance en environnement de production
Session #2 du workshop sur la performance en environnement de production
 
Agilite togo jug_final
Agilite togo jug_finalAgilite togo jug_final
Agilite togo jug_final
 
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
 
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie TrudelHa zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
 

Dernier

GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...Institut de l'Elevage - Idele
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de planchermansouriahlam
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfSophie569778
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéInstitut de l'Elevage - Idele
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...Institut de l'Elevage - Idele
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageInstitut de l'Elevage - Idele
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...Institut de l'Elevage - Idele
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...Institut de l'Elevage - Idele
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)Sana REFAI
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusInstitut de l'Elevage - Idele
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfmia884611
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfInstitut de l'Elevage - Idele
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfInstitut de l'Elevage - Idele
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesInstitut de l'Elevage - Idele
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestionyakinekaidouchi1
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfInstitut de l'Elevage - Idele
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...Institut de l'Elevage - Idele
 

Dernier (20)

GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversité
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
 
CAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptxCAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdf
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdf
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentes
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
 
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdfJTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdf
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
 

Strategie de test à agile tour bordeaux

  • 1. Stratégie de Test La faire bien pour en faire moins 1
  • 2. Nicolas Fédou • Artisan Développeur chez • Coach Craft • Aka. Coach Technique • Aka formateur et accompagnant en bonnes pratiques de développement agile • Ex-Testeur du logiciel des CFM56 (Moteur d’avion) 2
  • 3. L’origine • Développement en phases longues • IE. : Livraison tous les 6 mois => 6 livraisons en 3 ans • Livraison de périmètres fonctionnels complets, non remis en cause plus tard (dans l’idéal ☺) Valider Appels Code « métier » T 3
  • 4. L’origine Stratégie de tests : l’art de sélectionner les tests fonctionnels à jouer pour éviter les régressions et évidement montrer la présence des évolutions 4
  • 5. Les demandes clients d’aujourd’hui • Nous avons du mettre en place une phase de stabilisation, mais • Elle nous prend du temps et de l’énergie Temps QA / Stabilisation 5
  • 6. Itération Données / IO Tests Ambiance Sprint 0 S + 1 S + 2 Les demandes clients d’aujourd’hui • Nous avons une campagne de tests automatisés, mais • Elle nous demande trop d’efforts • À concevoir ou produire • À maintenir • Elle dure trop longtemps • La CI bloque de plus en plus • Les développeurs ne les lancent plus 6
  • 7. Une stratégie de tests « agile » •Est l’ensemble des moyens et pratiques que l’on se donne pour construire un produit de qualité. •Est une façon de s’organiser pour avoir toutes les preuves de qualité logicielle nécessaires et suffisantes à moindre effort pour livrer le produit en continu. 7
  • 8. Stratégies d’hier Tests fonctionnels End 2 End : manuels ou « manuels robotisés » Sur toute la stack technique Valider Appels Code « métier » T 8
  • 9. Stratégies d’hier Tests fonctionnels End 2 End : une « user journey » de bout en bout End Start M O S C O W 10
  • 10. S’organiser seulement pour livrer : « à la James Dean » Livrer permet juste d’entrer dans la course L’édition de logiciel est un coût Un logiciel ne rapporte qu’en production 11
  • 11. La qualité permet de rester dans la course Les tests sont des preuves de qualité S’organiser seulement pour livrer : « à la James Dean » 12
  • 12. • Un test, c’est exercer une pression sur un système Pour en constater la réponse Pour obtenir un feedback délibérément Comme d’habitude ☺ Le test en théorie 14
  • 13. Program testing can be used to show the presence of bugs, but never to show their abscence ! Notes on Structured programming, 1970 Edsger Djikstra 15
  • 14. Le test en pratique •Un test montre un fonctionnement attendu Il réduit la probabilité d’un défaut sur une fonctionnalité •Un ensemble de tests décrivant toutes les facettes d’une fonctionnalité… + de mesures, - de surprises, - d’évolutions sans casser de tests 16
  • 15. Nous avons le budget pour produire la qualité, mais pour … • La démontrer avec des tests, avant la mise en production • Faire face aux risques (sécurité, pannes, …) • Tenir tous les enjeux (performance, charge, …) Les critères de qualités n’ont pas de limites, nos budgets en ont une.17 Qualité Vs Budget
  • 16. Priorisation par les risques Coût d’un risque = probabilité perçue * impact perçu George Fairbanks, Chapter 3 of the book Just Enough Software Architecture: A Risk-Driven Approach http://www.methodsandtools.com/archive/agilesoftwarearchitecture.php Preuves de qualités Confiance Zone de fiabilité Zone d’acceptation du risque 18
  • 17. Priorisation par les risques Risques non acceptables Efforts de tests rentable Risques acceptable (enfin, je crois) Efforts de monitoring (pour être sûr) Risques acceptables et indolores Corrections à la demande 19
  • 18. Cartographie des risquesProbabilité Impact Sansimpact Improbable Haut risque Dan North, in Testing Faster workshop20
  • 19. Modèle de qualité logicielle ISO 25010 (2011) remplace l’iso 9126 (2001) Critères de qualité https://www.iso.org/obp/ui/#iso:std:iso-iec:25010:ed-1:v1:en 21
  • 20. Modèle de qualité logicielle ISO 25010 (2011) remplace l’iso 9126 (2001) Nouveauté 2011 !!! Critères de qualité https://www.iso.org/obp/ui/#iso:std:iso-iec:25010:ed-1:v1:en §22
  • 21. Fonctionnalité Complète, Correcte, Appropriée • Behaviour Driven Development • Use case • Règles de gestion • Tests fonctionnels manuels • Workflow/E2E • Métriques applicatives • Demos 23
  • 22. Efficience Temps, Ressources, Capacité • … • Tests de performances/charge • Monitoring système et applicatif • Demos • Oui, des rapports de tirs de Performance, etc. 24
  • 23. Compatibilité Coexistence (i.e. : avec du legacy), Interopérabilité • Consumer Driven Contracts • Approval Testing • Double Run / Suivi de Production • Demos 25
  • 24. Utilisabilité Approprié, Apprenable, Opérable, Sécurisé pour l’utilisateur, Esthétique, Accessible • Tests d’intégration • Ou fonctionnel dédié • Tests de Régression Visuelle • Tests Exploratoires • Métriques Applicatives • Demos 26
  • 25. Fiabilité Maturité, Disponibilité, Tolérance aux Pannes, Récupérabilité • Tests sur le gestion des pannes • Et la journalisation en tant que guide de suivi de prod • Tests d’endurance, charge • Chaos Monkeys • Mean Time Between Failures • Taux d’échec de mise en prod • Demos 27
  • 26. Sécurité Confidentialité, Intégrité, Non répudiation, Responsabilité, Authenticité • Tests négatifs • Un utilisateur inconnu n’obtient pas la fonctionnalité • Audit de vulnérabilités • Pistes d’audit • Demos 28
  • 27. Maintenabilité Modularité, Réutilisabilité, Analysabilité, Modifiabilité, Testabilité • Compile !, ArchUnit • Clean Code, Pair Programming • Test first • Revue de Code • Analyse de code statique (Sonar) • Productivité de l’équipe de réalisation • Demos 29
  • 28. Portabilité Adaptabilité, Installabilité, Remplaçabilité • Intégration et livraison continue • Conteneurisation (Docker) • Infra as code • ansible-test sanity --list-tests • Molecule • Ansible-test integration –docker-no-pull –v […] • Kubernetes en service managé • Demos 30
  • 29. Avant Après l’écriture du code Fonctionnels Décrit / défini le produit Supporte le produit Techniques Les tests se sont adaptés Prescriptif Descriptif Par Brian Marick, diffusé par Lisa Crispin et Janet Gregory Gojko Adzic en propose une mise à jour en 2013 31
  • 30. Les tests prescriptifs se sont adaptés M O S C O W 32
  • 31. « Une » stratégie d’aujourd’hui _ |_| X Valider Appels Code « métier » Tous les leaders d’opinions sur BDD, dooble looop, TDD outside-in ou non 33
  • 32. « Une » architecture testable WS Impl App Layer Repositories Aggregate Root Domain Object Domain Object Shared Utility Shared Model 34
  • 33. Tests d’intégration « boite blanche » WS Impl App Layer Repositories Aggregate Root Domain Object Domain Object Shared Utility Shared Model Narrow Integration Test API Call API Mock System Under Test 35
  • 34. Tests unitaires « fonctionnels ? » WS Impl App Layer Repositories Aggregate Root Domain Object Domain Object Shared Utility Shared Model Unit Test API Call System under test 36
  • 35. Security, caller error’s management Tests unitaires « techniques ? » WS Impl App Layer Repositories Aggregate Root Domain Object Domain Object Shared Utility Shared Model Unit Test API Call Unit Test Unit Test API Mock Utils by use as « nullOrEmpty » ➔ Cover by caller’s tests Utils by rule as « Financial Maths » ➔ Cover as a Library you own Technical support 37
  • 36. Tests et niveau d’abstraction _ |_| X Valider Appels Code « métier » Tests d’intégration système End to End Tests d’intégration logicielle et unitaires Tous les leaders d’opinions sur BDD, dooble looop, TDD outside-in ou non Tester les détails d’une fonctionnalité depuis l’API la plus proche de l’implémentation Moins de code à stimuler, tests plus simples à implémenter Les tests fonctionnels ne sont pas que de bout en bout (End to end) 38
  • 37. Tests et niveaux d’abstraction Quantitéde codestimulé abstraction fonctionnelle Mike Cohn : Pyramide de tests Gerard Meszaros : The right abstraction level for your tests Concret Abstrait 39
  • 38. Réduire le coût d’écriture des tests • Générateur de données • Data set builder • DataSetBuilder .makePromotion(shops=4, packaging.as(40 XXL, 60L, 200S, 1000XS), TEC=80%) • Factories : données référentielles • Given.REGISTERED_USER, GIVEN.anyUser() • Builder : variabilité composable par cas de tests • Given.aCustomeUser().withTrips({}).withFriends({}).build() 40
  • 39. Réduire le coût d’écriture des tests • Librairie d’assertions • Assertj • assertThat(boolean).isTrue().IsNull(); • assertThat(test).containsIgnoringCase(Text); • assertThat(pojo).IsEqualIgnoringNullsTo(nex ExpectedPojo(field1, null, field3)); • Custom Business Difference Tool • Ignore derivated data from calculation • Ignore déclarative data (as user comments) • Etc. 41 • Test Data Record and Replay • Spring aspect • Debug and snippet • Xstream
  • 40. « should_return_empty_when_friend_has_no_trips » Is valuable as a documentation ? 42
  • 41. 43
  • 42. Test FIRST Tests avant le code ! • Implémentation • Vérification d’un travail fini • Objectif à atteindre • Fonctionnalité attendue • Fast • Rapide • Isolated • Une raison d’échouer • Repeatable • Self Validating • Validation automatique • Timely • Avant le code de productionFIRST Quality ! 44
  • 43. Test : moteur du développement • Test Driven Development (TDD) • Test FIRST + • Code de production sans tests • Minimum de tests pour être non passant • Minimum de code de production pour le faire passer • Seulement les API • Conception et clean code seulement en phase de refactoring 45
  • 44. Test FIRST en équipe BDD : Behaviour Driven Development • Spécifications exécutables -- Alberto Brandolini46