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

Méthodologie de tests et qualité
Méthodologie de tests et qualitéMéthodologie de tests et qualité
Méthodologie de tests et qualitéSpikeeLabs
 
Introduction à la validation de logiciel
Introduction à la validation de logicielIntroduction à la validation de logiciel
Introduction à la validation de logicielJean-Paul CARMONA
 
Présentation Tests Fonctionnels
Présentation Tests FonctionnelsPrésentation Tests Fonctionnels
Présentation Tests FonctionnelsDATANYWARE.com
 
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
 
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
 
Test unitaire
Test unitaireTest unitaire
Test unitaireIsenDev
 
Support Formation Audit Qualité Interne.pdf
Support Formation Audit Qualité Interne.pdfSupport Formation Audit Qualité Interne.pdf
Support Formation Audit Qualité Interne.pdfamine373064
 
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
 
Automatisation des tests
Automatisation des testsAutomatisation des tests
Automatisation des testsZhu Wei QI
 
Agile QA and Testing process
Agile QA and Testing processAgile QA and Testing process
Agile QA and Testing processGloria Stoilova
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterDeclan Whelan
 
Automatisation des tests - objectifs et concepts - partie 1
Automatisation des tests  - objectifs et concepts - partie 1Automatisation des tests  - objectifs et concepts - partie 1
Automatisation des tests - objectifs et concepts - partie 1Christophe Rochefolle
 
Généralité sur l'audit
Généralité sur l'auditGénéralité sur l'audit
Généralité sur l'auditAsmae OULMADOU
 
formation istqb.pdf
formation istqb.pdfformation istqb.pdf
formation istqb.pdfmido04
 

Tendances (20)

Méthodologie de tests et qualité
Méthodologie de tests et qualitéMéthodologie de tests et qualité
Méthodologie de tests et qualité
 
Introduction à la validation de logiciel
Introduction à la validation de logicielIntroduction à la validation de logiciel
Introduction à la validation de logiciel
 
Présentation Tests Fonctionnels
Présentation Tests FonctionnelsPrésentation Tests Fonctionnels
Présentation Tests Fonctionnels
 
Ingénierie du test 0.9
Ingénierie du test 0.9Ingénierie du test 0.9
Ingénierie du test 0.9
 
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 ?
 
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
 
Test unitaire
Test unitaireTest unitaire
Test unitaire
 
Support Formation Audit Qualité Interne.pdf
Support Formation Audit Qualité Interne.pdfSupport Formation Audit Qualité Interne.pdf
Support Formation Audit Qualité Interne.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
 
Automatisation des tests
Automatisation des testsAutomatisation des tests
Automatisation des tests
 
Agile QA and Testing process
Agile QA and Testing processAgile QA and Testing process
Agile QA and Testing process
 
Deroulement Chantier Kaizen
Deroulement Chantier KaizenDeroulement Chantier Kaizen
Deroulement Chantier Kaizen
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile Tester
 
Automatisation des tests - objectifs et concepts - partie 1
Automatisation des tests  - objectifs et concepts - partie 1Automatisation des tests  - objectifs et concepts - partie 1
Automatisation des tests - objectifs et concepts - partie 1
 
Memo audit-interne
Memo audit-interneMemo audit-interne
Memo audit-interne
 
Le tableau de bord de pilotage
Le tableau de bord de pilotageLe tableau de bord de pilotage
Le tableau de bord de pilotage
 
Les pratiques Scrum
Les pratiques ScrumLes pratiques Scrum
Les pratiques Scrum
 
Généralité sur l'audit
Généralité sur l'auditGénéralité sur l'audit
Généralité sur l'audit
 
formation istqb.pdf
formation istqb.pdfformation istqb.pdf
formation istqb.pdf
 
Tests Logiciel
Tests LogicielTests Logiciel
Tests Logiciel
 

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
 
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
 
TDD où l’art de développer à l’endroit
TDD où l’art de développer à l’endroitTDD où l’art de développer à l’endroit
TDD où l’art de développer à l’endroitEspritAgile
 

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
 
Test unitaires
Test unitairesTest unitaires
Test unitaires
 
20110519 cara tests_agiles_grenoble_all
20110519 cara tests_agiles_grenoble_all20110519 cara tests_agiles_grenoble_all
20110519 cara tests_agiles_grenoble_all
 
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
 
TDD où l’art de développer à l’endroit
TDD où l’art de développer à l’endroitTDD où l’art de développer à l’endroit
TDD où l’art de développer à l’endroit
 

Dernier

BOW 2024 - L'enrichissement du milieu des chèvres laitières
BOW 2024 - L'enrichissement du milieu des chèvres laitièresBOW 2024 - L'enrichissement du milieu des chèvres laitières
BOW 2024 - L'enrichissement du milieu des chèvres laitièresidelewebmestre
 
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...idelewebmestre
 
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminantsBow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminantsidelewebmestre
 
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcinsBOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcinsidelewebmestre
 
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...idelewebmestre
 
Agrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en DordogneAgrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en Dordogneidelewebmestre
 
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfActions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfalainfahed961
 
BOW 2024 - Le bâtiment multicritère porcin
BOW 2024 - Le bâtiment multicritère porcinBOW 2024 - Le bâtiment multicritère porcin
BOW 2024 - Le bâtiment multicritère porcinidelewebmestre
 
Cours polymère presentation powerpoint 46 pages
Cours polymère presentation powerpoint 46 pagesCours polymère presentation powerpoint 46 pages
Cours polymère presentation powerpoint 46 pagesPierreFournier32
 
BOW 2024 - Jardins d'hiver en poulets de chair
BOW 2024 - Jardins d'hiver en poulets de chairBOW 2024 - Jardins d'hiver en poulets de chair
BOW 2024 - Jardins d'hiver en poulets de chairidelewebmestre
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSKennel
 
Chapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniquesChapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniquesangevaleryn
 
Compersseur d'air a vis atlas copco avec huile
Compersseur d'air a vis atlas copco avec huileCompersseur d'air a vis atlas copco avec huile
Compersseur d'air a vis atlas copco avec huileMBouderbala
 
BOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud PorcsBOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud Porcsidelewebmestre
 
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleurBOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleuridelewebmestre
 
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...idelewebmestre
 
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équineBOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équineidelewebmestre
 
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VLBOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VLidelewebmestre
 
BOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein airBOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein airidelewebmestre
 

Dernier (20)

BOW 2024 - L'enrichissement du milieu des chèvres laitières
BOW 2024 - L'enrichissement du milieu des chèvres laitièresBOW 2024 - L'enrichissement du milieu des chèvres laitières
BOW 2024 - L'enrichissement du milieu des chèvres laitières
 
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
 
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminantsBow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
 
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcinsBOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
 
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
 
Agrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en DordogneAgrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en Dordogne
 
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfActions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
 
BOW 2024 - Le bâtiment multicritère porcin
BOW 2024 - Le bâtiment multicritère porcinBOW 2024 - Le bâtiment multicritère porcin
BOW 2024 - Le bâtiment multicritère porcin
 
Cours polymère presentation powerpoint 46 pages
Cours polymère presentation powerpoint 46 pagesCours polymère presentation powerpoint 46 pages
Cours polymère presentation powerpoint 46 pages
 
BOW 2024 - Jardins d'hiver en poulets de chair
BOW 2024 - Jardins d'hiver en poulets de chairBOW 2024 - Jardins d'hiver en poulets de chair
BOW 2024 - Jardins d'hiver en poulets de chair
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
 
Chapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniquesChapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniques
 
Compersseur d'air a vis atlas copco avec huile
Compersseur d'air a vis atlas copco avec huileCompersseur d'air a vis atlas copco avec huile
Compersseur d'air a vis atlas copco avec huile
 
BOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud PorcsBOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud Porcs
 
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleurBOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
 
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
 
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équineBOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
 
Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024
 
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VLBOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
 
BOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein airBOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein air
 

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