Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

Alice écrit des tests unitaires pour… tester son code. Pour perfectionner son art, Alice entame une quête qui l'amènera à voir ses tests autrement.

Alice décrouvrira qu'un test peut être écrit pour explorer l'architecture, documenter, prédire la maintenabilité, développer le bon produit (ATDD), etc. tout en étant facile à maintenir.

Présentation en 6 tableaux sommaires de la quête d'Alice.

Félix-Antoine Bourbonnais

November 30, 2017
Tweet

More Decks by Félix-Antoine Bourbonnais

Other Decks in Technology

Transcript

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

    View full-size slide

  2. La communauté a appris
    depuis tout ce temps…

    View full-size slide

  3. 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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  7. 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

    View full-size slide

  8. 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

    View full-size slide

  9. 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

    View full-size slide

  10. Un bon test unitaire est une documentation

    View full-size slide

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

    View full-size slide

  12. Un bon test unitaire teste le
    comportement souhaité…

    View full-size slide

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

    View full-size slide

  14. •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

    View full-size slide

  15. 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

    View full-size slide

  16. 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

    View full-size slide

  17. Mes tests sont fragiles !

    View full-size slide

  18. 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

    View full-size slide

  19. 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

    View full-size slide

  20. Apprendre à
    fragmenter ses tests
    UI
    Domaine
    Infra

    H2 Mémoire

    View full-size slide

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

    View full-size slide

  22. 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

    View full-size slide

  23. … 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

    View full-size slide

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

    View full-size slide

  25. 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

    View full-size slide

  26. … 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

    View full-size slide

  27. Testabilité α
    Maintenabilité
    public class
    StuffCtrlManager
    }
    {

    View full-size slide

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

    View full-size slide

  29. 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!

    View full-size slide

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

    View full-size slide

  31. 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

    View full-size slide

  32. 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

    View full-size slide

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

    View full-size slide

  34. 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

    View full-size slide

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

    View full-size slide

  36. 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

    View full-size slide

  37. 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

    View full-size slide

  38. Intégration vraiment
    continue !
    Outils collectés

    View full-size slide

  39. Déploiement
    continu
    Outils collectés

    View full-size slide

  40. 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
    @

    View full-size slide