Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

Imaginez…

Slide 3

Slide 3 text

La communauté a appris depuis tout ce temps…

Slide 4

Slide 4 text

Félix-Antoine Bourbonnais B.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

Slide 5

Slide 5 text

Je vous présente Alice… Force: Outils collectés

Slide 6

Slide 6 text

Qu’est-ce que Alice devrait regarder pour perfectionner son art ? Un tour d’horizon en 6 quêtes…

Slide 7

Slide 7 text

Objectif de la présentation: Avoir des idées de thèmes à explorer

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

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 tests Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author Force: Outils collectés

Slide 10

Slide 10 text

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 investissement pour ses tests… Quête 1 : Le pays du test propre Force: Outils collectés Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author

Slide 11

Slide 11 text

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és Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author

Slide 12

Slide 12 text

Un bon test unitaire est une documentation

Slide 13

Slide 13 text

Un bon test unitaire… … pas comment c’est codé ! … teste un comportement !

Slide 14

Slide 14 text

Un bon test unitaire teste le comportement souhaité…

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

•Nommage clair Toujours spécifier le comportement attendu et le contexte •Séparation des « 3A » (Arrange/Act/Assert) •Test court et clair •Réduire le bruit Utilisation de méthodes privées Utilisation de Mother Objects et/ou Builders •Enlever les tests répétitifs Astuces

Slide 17

Slide 17 text

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 de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author

Slide 18

Slide 18 text

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és Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author

Slide 19

Slide 19 text

Mes tests sont fragiles !

Slide 20

Slide 20 text

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és Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author

Slide 21

Slide 21 text

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-bout Toutes composantes Une ou quelques classes Une composante intégrée Fragilité des tests

Slide 22

Slide 22 text

Apprendre à fragmenter ses tests UI Domaine Infra H2 Mémoire

Slide 23

Slide 23 text

Les mocks: trop c’est comme pas assez ! Fragilité !

Slide 24

Slide 24 text

Alice$ > Sait maintenant comment fragmenter ses différents tests 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 de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author

Slide 25

Slide 25 text

… sauf que l’équipe d’Alice travaille dans du “Legacy Code” {… non pour vrai!} Quête 3 Le pays du Legacy Code Force: Outils collectés Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author

Slide 26

Slide 26 text

Tests de caractérisation Pour en savoir plus http://conferences.elapsetech.com/ legacy-tests-caracterisation

Slide 27

Slide 27 text

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 de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author

Slide 28

Slide 28 text

… Alice commence à comprendre qu’elle peut se servir de 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és Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author

Slide 29

Slide 29 text

Testabilité α Maintenabilité public class StuffCtrlManager } {

Slide 30

Slide 30 text

Les tests font émerger des indices (odeurs) tôt à propos du design.

Slide 31

Slide 31 text

Pour en savoir plus conferences.elapsetech.com/ tdd-mocks-architecture/ Il existe différentes écoles de TDD et de test… Les connaître donne plus d’options!

Slide 32

Slide 32 text

Des approches différentes selon le contexte ! Application avec un domaine riche et beaucoup de logique d’affaires, CRUD ou principalement graphique ?

Slide 33

Slide 33 text

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 de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author

Slide 34

Slide 34 text

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és Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author

Slide 35

Slide 35 text

ATDD 1 Écrire un scénario qui échoue 2 Scénario passe 3 Pour en savoir plus http://conferences.elapsetech.com/ atdd-double-boucle

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

BDD & Spécification par l’exemple (SbE) Pour en savoir plus http://conferences.elapsetech.com/ bdd-spec-affaires

Slide 38

Slide 38 text

Alice peut maintenant utiliser ses tests pour piloter toutes les couches de son produit à partir d’une compréhension commune des besoins d’affaires! Tableau 5 Le pays de l’ATDD Outils collectés Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author

Slide 39

Slide 39 text

Comme Alice peut maintenant développer incrémentalement et “pousser” de tous petits morceaux fonctionnels et testés… … elle peut considérer déployer en continue ! Le pays des étoiles Outils collectés Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author

Slide 40

Slide 40 text

Intégration vraiment continue ! Outils collectés

Slide 41

Slide 41 text

Déploiement continu Outils collectés

Slide 42

Slide 42 text

merci .

Slide 43

Slide 43 text

Site elapsetech.com Twitter @fbourbonnais Courriel [email protected] LinkedIn linkedin.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 @