je fais des tests unitaires puis après? - elapse...

43
FÉLIX-ANTOINE BOURBONNAIS B. ING., M.SC., PSM Agile Tour Montréal 2017 Je fais des tests unitaires... puis après?

Upload: buithuan

Post on 11-Sep-2018

232 views

Category:

Documents


0 download

TRANSCRIPT

FÉLIX-ANTOINE BOURBONNAISB. ING., M.SC., PSM

Agile Tour Montréal 2017

Je fais des tests unitaires... puis après?

Imaginez…

La communauté a apprisdepuis tout ce temps…

Félix-Antoine BourbonnaisB.ing., PSM, M.Sc.

/ Formateur / Conférencier/ Mentor/ Coach d’équipes

$> Essais automatisés et TDD$> Architecture évolutive et DDD$> BDD et spécification par l’exemples$> Scrum$> Conseils stratégiques$> Gestion du changement

Je vous présente Alice…

Force:

Outils collectés

Qu’est-ce que Alice devrait regarder pour perfectionner son art ?

Un tour d’horizon en 6 quêtes…

Objectif de la présentation:

Avoir des idées de thèmes à explorer

Alice$>

Fait des tests unitaires

Alice$>

Son objectif principal est d’avoir une bonne couverture et de s’assurer que son code fonctionne

Tableau 0: Le pays des testsIm

age de C

arl Warn

er --carlw

arner.co

m--

Foo

dscap

esU

tilisée avec la perm

ission

de l’au

teur / W

ithth

e perm

ission

of th

e auth

or

Force:

Outils collectés

Alice$ >&2

Trouve difficile de maintenir tous ses tests et de tout tester

Alice$ >&2

Se demande pourquoi il reste encore des « anomalies »…

Alice$ >&2

Voudrait avoir un meilleur retour sur investissementpour ses tests…

Quête 1 : Le pays du test propre

Force:

Outils collectésIm

age de C

arl Warn

er --carlw

arner.co

m--

Foo

dscap

esU

tilisée avec la perm

ission

de l’au

teur / W

ithth

e perm

ission

of th

e auth

or

Alice$ <

Doit commencer à voir son test autrement!

Le_Test? !

\ court, clair, précis\ Doit lui apprendre quelque chose

Tableau 1

Le pays du test propre

Force:

Outils collectésIm

age de C

arl Warn

er --carlw

arner.co

m--

Foo

dscap

esU

tilisée avec la perm

ission

de l’au

teur / W

ithth

e perm

ission

of th

e auth

or

Un bon test unitaire est une documentation

Un bon test unitaire…

… pascomment c’est codé !

… teste un

comportement !

Un bon test unitaire teste le comportement souhaité…

… non pas l’implémentationet comment ça a été codé!

•Nommage clairToujours spécifier le comportement attendu et le contexte

•Séparation des « 3A » (Arrange/Act/Assert)

•Test court et clair

•Réduire le bruitUtilisation de méthodes privées

Utilisation de Mother Objects et/ou Builders

•Enlever les tests répétitifs

Astuces

Alice$ >

Ne voit plus ses tests de la même manière

Alice$ >

Voit le test comme un outil pour

guider son développement

Tableau 1 : Le pays du test propre

Force:

Outils collectés

🏅

Image d

e Carl W

arner --

carlwarn

er.com

--Fo

od

scapes

Utilisée avec la p

ermissio

n d

e l’auteu

r / With

the p

ermissio

n o

f the au

tho

r

Alice$ >

A des milliers de tests

Alice$ >

Alice a toujours des problèmes de maintenabilité à long terme

Quête 2

Le pays de la maintenabilité

Force:

Outils collectésIm

age de C

arl Warn

er --carlw

arner.co

m--

Foo

dscap

esU

tilisée avec la perm

ission

de l’au

teur / W

ithth

e perm

ission

of th

e auth

or

Mes tests sont fragiles !

Alice$ <

Doit apprendre ce qu’est un test unitaire

Alice$ <

Doit apprendre à jouer avec la portée des tests et à les boulonner

Alice$ <

Doit savoir qu’il n’existe pas seulement des tests unitaires et des tests bout-en-bout

Tableau 2

Le pays de la maintenabilité

Force:

Outils collectésIm

age de C

arl Warn

er --carlw

arner.co

m--

Foo

dscap

esU

tilisée avec la perm

ission

de l’au

teur / W

ithth

e perm

ission

of th

e auth

or

Image par Gamma-Ray Productions sur Flickr

La pyramide des tests

% du portfolio de tests auto.

(tous les types)

Large (L)

Moyen (M)

Petit (S)

~10%

~20%

~70%

Bout-en-boutToutes composantes

Une ou quelques classes

Une composante intégrée

Fragilité des tests

Apprendre à fragmenter ses tests

UI

Domaine

Infra

<i>

H2 Mémoire

Les mocks: trop c’est comme pas assez !

Fragilité !

Alice$ >

Sait maintenant comment fragmenter ses différentstests

Alice$ >

Sait comment jouer avec la portée et les types de tests

Tableau 2

Le pays de la maintenabilité

Force:

Outils collectés

🏅

Image d

e Carl W

arner --

carlwarn

er.com

--Fo

od

scapes

Utilisée avec la p

ermissio

n d

e l’auteu

r / With

the p

ermissio

n o

f the au

tho

r

… sauf que l’équipe d’Alicetravaille dans du “Legacy Code”

{… non pour vrai!}

Quête 3

Le pays du Legacy Code

Force:

Outils collectésIm

age de C

arl Warn

er --carlw

arner.co

m--

Foo

dscap

esU

tilisée avec la perm

ission

de l’au

teur / W

ithth

e perm

ission

of th

e auth

or

Tests de caractérisation

Pour en savoir plushttp://conferences.elapsetech.com/

legacy-tests-caracterisation

Alice$ >

Sait maintenant comment se servir de ses tests pour explorer, comprendre, puis réusiner en sécurité son patrimoine!

Tableau 3

Le pays du Legacy Code

Force:

Outils collectés

🏅

Image d

e Carl W

arner --

carlwarn

er.com

--Fo

od

scapes

Utilisée avec la p

ermissio

n d

e l’auteu

r / With

the p

ermissio

n o

f the au

tho

r

… Alice commence à comprendre qu’elle peut se servirde ses tests comme d’un outil !

… pourrait-elle se servir de ses tests pour explorer et valider son architecture ?!?

Quête 4

Le pays du design émergeant

Force:

Outils collectésIm

age de C

arl Warn

er --carlw

arner.co

m--

Foo

dscap

esU

tilisée avec la perm

ission

de l’au

teur / W

ithth

e perm

ission

of th

e auth

or

Testabilité α Maintenabilité

public class

StuffCtrlManager

}

{

Les tests font émerger des indices (odeurs) tôt à

propos du design.

Pour en savoir plusconferences.elapsetech.com/tdd-mocks-architecture/

Il existe différentes écoles de TDD et de test… Les connaître

donne plus d’options!

Des approches différentes selon le contexte !

Application avec un domaine riche et beaucoup de logique

d’affaires, CRUD ou

principalement graphique ?

Alice$ >

Alice a maintenant la capacité de piloter son architecture avec ses tests !

Tableau 4

Le pays du design émergeant

Force:

Outils collectés

🏅

Image d

e Carl W

arner --

carlwarn

er.com

--Fo

od

scapes

Utilisée avec la p

ermissio

n d

e l’auteu

r / With

the p

ermissio

n o

f the au

tho

r

Alice maîtrise maintenant la manière d’utiliser ses tests pour construire correctement son code !

... Mais est-ce le bon produit ?!?

Quête 5

Le pays de l’ATDD

Force:

Outils collectésIm

age de C

arl Warn

er --carlw

arner.co

m--

Foo

dscap

esU

tilisée avec la perm

ission

de l’au

teur / W

ithth

e perm

ission

of th

e auth

or

ATDD

1

Écrire un scénario qui échoue

2

Scénario passe

3

Pour en savoir plushttp://conferences.elapsetech.com/

atdd-double-boucle

ATDD à double boucle

* Uniquement certains scénarios (voir Pyramide des tests). Pourrait être @MEDIUM ou autre portée…

Logique (domaine)

UI

Infra / Données

2c

2a

2b

1c

1a

1b

BDD & Spécification par l’exemple (SbE)

Pour en savoir plushttp://conferences.elapsetech.com/

bdd-spec-affaires

Alice peut maintenant utiliser ses tests pour pilotertoutes les couches de son produit à partir d’une compréhension commune des besoins d’affaires!

Tableau 5

Le pays de l’ATDDOutils collectés

🏅

Image d

e Carl W

arner --

carlwarn

er.com

--Fo

od

scapes

Utilisée avec la p

ermissio

n d

e l’auteu

r / With

the p

ermissio

n o

f the au

tho

r

Comme Alice peut maintenant développerincrémentalement et “pousser” de tous petitsmorceaux fonctionnels et testés…

… elle peut considérer déployer en continue !

Le pays des étoiles Outils collectésIm

age de C

arl Warn

er --carlw

arner.co

m--

Foo

dscap

esU

tilisée avec la perm

ission

de l’au

teur / W

ithth

e perm

ission

of th

e auth

or

Intégration vraiment continue !

Outils collectés

Déploiement continu

Outils collectés

merci .

Siteelapsetech.com

Twitter@fbourbonnais

[email protected]

LinkedInlinkedin.com/in/fbourbonnais/fr

conferences.elapsetech.com

Toutes nos présentations

conferences.elapsetech.com

/tests-unitaires-apres

Diapositives et références

Félix-Antoine Bourbonnais

@