Retour d'expérience  Automatisation des tests d'acceptation dans un environnement agile Elapse  Technologies  Inc.
Présentations <ul><li>Elapse Technologies </li></ul><ul><ul><li>Spécialisé en développement Agile </li></ul></ul><ul><ul><...
Plan de la présentation <ul><li>Revue rapide: Concepts TA en mode agile </li></ul><ul><li>Retour d’expérience sur l’automa...
Pourquoi cette présentation <ul><li>3 projets différents :  </li></ul><ul><ul><li>Besoin d’automatiser les TA </li></ul></...
Concepts Établir un langage commun Elapse  Technologies  Inc.
Concepts Rôle des TA en Agile <ul><li>S’entendre sur ce qui doit être fait  </li></ul><ul><ul><li>Scénarios de tests : spé...
Concepts Cycle de vie typique d’un User Story Elapse  Technologies  Inc.  <ul><li>Acceptation: </li></ul><ul><li>Vérificat...
Concepts Anatomie d’un TAA Elapse  Technologies  Inc.
Retour d’expérience Présentation des 3 projets Elapse  Technologies  Inc.
Projet #1 : Contexte <ul><li>Projet client : Refonte bottin électronique (6m) </li></ul><ul><ul><li>Introduction à l’Agili...
Projet #1: Approche TAA Elapse  Technologies  Inc.
Projet #1: Itération 1 <ul><li>Résultats </li></ul><ul><ul><li>Courbe d’apprentissage importante pour le responsable de l’...
Projet #1: Itération 2 <ul><li>Résultats </li></ul><ul><ul><li>Testeur toujours en apprentissage </li></ul></ul><ul><ul><l...
Projet #1: Itération 3-5 <ul><li>Résultats </li></ul><ul><ul><li>Nette amélioration de la productivité des TAA </li></ul><...
Projet #1: itération 6+ <ul><li>Résultats </li></ul><ul><ul><li>Base de code de tests augmente beaucoup en grosseur et en ...
Projet #1: Constat <ul><li>Jamais en mesure d’avoir les TAA en cours d’itération, cycles désynchronisés  </li></ul><ul><ul...
Projet #2: Contexte <ul><li>Second projet client : Facturation (3-4m) </li></ul><ul><ul><li>Mandat d’exécution </li></ul><...
Projet #2: Approche TAA Elapse  Technologies  Inc.
Projet #2: Itération 1 <ul><li>L’approche fonctionne </li></ul><ul><ul><li>Tous les tests de l’itération sont automatisés ...
Projet #2: Itération 2 <ul><li>Problème des interfaces modales </li></ul><ul><li>Léger ralentissement, solution complexe t...
Projet #2: Itération 3 <ul><li>Maudite base de donnée!!! ;-) </li></ul><ul><ul><li>BD de Microsoft Dynamics (hack) </li></...
Projet #2: Itérations 4+ <ul><li>Remarque que les tests sont plus fragiles </li></ul><ul><ul><li>Changement dans un test b...
Projet #2: Constat  <ul><li>Manque d’organisation dans les fixtures de tests  </li></ul><ul><ul><li>Duplication de code </...
Projet #3 <ul><li>Organisateur d’information (R&D interne) </li></ul><ul><ul><li>Pas en mode production… </li></ul></ul><u...
Projet #3 : Approche TAA Elapse  Technologies  Inc.
Projet #3: Objectifs TAA <ul><li>Solutionner les problèmes de fragilité des tests </li></ul><ul><ul><li>Navigation  </li><...
Projet #3: Constat (1/3) <ul><li>Fragilité des tests </li></ul><ul><ul><li>Isoler la navigation : Développement d’une fixt...
Projet #3: Constat (2/3) <ul><li>Organisation du code des tests  </li></ul><ul><ul><li>Se donner une convention. Un écran ...
Projet #3: Constat (3/3) <ul><li>Réflexion sur le processus d’acceptation dans l’itération </li></ul><ul><ul><li>TAA repré...
Recommandations Elapse  Technologies  Inc.
Recommandations TAA (1/8) <ul><li>Avoir des attentes réalistes lors de la mise en place des TAA </li></ul><ul><ul><li>Ce n...
Recommandations TAA (2/8) <ul><li>Comprenez les limites des TAA </li></ul><ul><ul><li>Excellent pour la Vérification </li>...
Recommandations TAA (3/8) <ul><li>Impliquer l’équipe au complet </li></ul><ul><ul><li>Les développeurs doivent être impliq...
Recommandations TAA (4/8) <ul><li>Spécification des scénarios de test: Requiert la collaboration de toute l’équipe </li></...
Recommandations TAA (5/8) <ul><li>Automatiser ce qui est le plus critique:  80/20 (Pareto) </li></ul><ul><ul><li>Scénario ...
Recommandations TAA (6/8) <ul><li>Rechercher la simplicité dans l’approche </li></ul><ul><ul><li>Utiliser des outils que v...
Recommandations TAA (7/8) <ul><li>Maintenez vos tests à jours </li></ul><ul><ul><li>Donner lui le même amour que le code d...
Recommandations TAA (8/8) <ul><li>Solidifier vos tests </li></ul><ul><ul><li>Éviter des dépendances inutiles  </li></ul></...
Questions? 10 minutes… Tirage Suite question (au besoin) Elapse  Technologies  Inc.
Mot de la fin <ul><li>Annonce: Formation « Clean Code » </li></ul><ul><ul><li>Robert «Uncle Bob » Martin : signataire Mani...
Prochain SlideShare
Chargement dans…5
×

Retour d'expérience TAA - 2011/03/29

1 230 vues

Publié le

Présentation : Retour d'expérience sur l'automatisation de tests d'acceptation dans un environnement Agile

Elapse Technologies

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 230
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • PR
  • PR
  • ND
  • PR
  • PR
  • ND
  • PR
  • ND
  • PR
  • PR
  • PR
  • PR
  • PR
  • PR
  • PR
  • PR
  • ND
  • ND
  • ND
  • ND
  • ND
  • ND
  • ND
  • PR
  • PR
  • PR
  • ND
  • ND
  • PR
  • ND
  • PR
  • ND
  • PR
  • ND
  • PR
  • ND
  • PR
  • Retour d'expérience TAA - 2011/03/29

    1. 1. Retour d'expérience Automatisation des tests d'acceptation dans un environnement agile Elapse Technologies Inc.
    2. 2. Présentations <ul><li>Elapse Technologies </li></ul><ul><ul><li>Spécialisé en développement Agile </li></ul></ul><ul><ul><ul><li>Accompagnement, formation et impartition </li></ul></ul></ul><ul><ul><ul><li>Mission: aider clients dans leurs efforts de développement logiciel </li></ul></ul></ul><ul><ul><ul><li>Bureaux à Montréal et Québec, 7 ans déjà… </li></ul></ul></ul><ul><li>Vos présentateurs : </li></ul><ul><ul><li>Nicolas Desjardins, B.Sc., CSM </li></ul></ul><ul><ul><li>Pascal Roy, ing., PMP, CSM </li></ul></ul>Elapse Technologies Inc.
    3. 3. Plan de la présentation <ul><li>Revue rapide: Concepts TA en mode agile </li></ul><ul><li>Retour d’expérience sur l’automatisation des TA sur 3 projets différents </li></ul><ul><li>Recommandations générales </li></ul><ul><li>Questions </li></ul><ul><li>Tirage </li></ul>Elapse Technologies Inc.
    4. 4. Pourquoi cette présentation <ul><li>3 projets différents : </li></ul><ul><ul><li>Besoin d’automatiser les TA </li></ul></ul><ul><ul><ul><li>2 projets clients </li></ul></ul></ul><ul><ul><ul><ul><li>1 er projet: implantation agile et réalisation </li></ul></ul></ul></ul><ul><ul><ul><ul><li>2 ième projet: réalisation </li></ul></ul></ul></ul><ul><ul><ul><li>1 projet de R&D interne </li></ul></ul></ul><ul><li>But: partager notre expérience et nos réflexions avec vous </li></ul>Elapse Technologies Inc.
    5. 5. Concepts Établir un langage commun Elapse Technologies Inc.
    6. 6. Concepts Rôle des TA en Agile <ul><li>S’entendre sur ce qui doit être fait </li></ul><ul><ul><li>Scénarios de tests : spécification du système </li></ul></ul><ul><ul><ul><li>Langage informel ou non </li></ul></ul></ul><ul><ul><ul><li>Exemples et écrans très efficace </li></ul></ul></ul><ul><li>Guider le développement </li></ul><ul><ul><li>Développeurs implémentent le code pour faire passer les cas de tests </li></ul></ul><ul><li>Mesurer objectivement l’avancement </li></ul><ul><ul><li>Vérification : exécution correcte du scénario = « Complété » </li></ul></ul><ul><ul><li>Régression : si automatisé </li></ul></ul><ul><ul><ul><li>nécessaire en mode incrémental et itératif </li></ul></ul></ul>Elapse Technologies Inc.
    7. 7. Concepts Cycle de vie typique d’un User Story Elapse Technologies Inc. <ul><li>Acceptation: </li></ul><ul><li>Vérification & Validation </li></ul><ul><li>Vérification </li></ul><ul><li>« Construit correctement? » </li></ul><ul><li>Conforme aux spécifications </li></ul><ul><li>« Complété » </li></ul><ul><li>Validation </li></ul><ul><li>« Construit la bonne chose? » </li></ul><ul><li>Apte à l’utilisation en mode production (« Fit for use ») </li></ul><ul><li>« Complété Complété» </li></ul>
    8. 8. Concepts Anatomie d’un TAA Elapse Technologies Inc.
    9. 9. Retour d’expérience Présentation des 3 projets Elapse Technologies Inc.
    10. 10. Projet #1 : Contexte <ul><li>Projet client : Refonte bottin électronique (6m) </li></ul><ul><ul><li>Introduction à l’Agilité </li></ul></ul><ul><ul><ul><li>1 chargé de projets + 2 analystes d’affaire (client) </li></ul></ul></ul><ul><ul><ul><li>2,5 développeurs (1,5 seniors, 1 intermédiaire) </li></ul></ul></ul><ul><ul><ul><li>1 testeur: programmeur très junior </li></ul></ul></ul><ul><ul><li>Technologies </li></ul></ul><ul><ul><ul><li>Application .NET WinForm </li></ul></ul></ul><ul><ul><ul><li>SQLServer , NHibernate + HsqlDB </li></ul></ul></ul><ul><ul><ul><li>TestComplete (Tests d’acceptation : 1 licence) </li></ul></ul></ul>Elapse Technologies Inc.
    11. 11. Projet #1: Approche TAA Elapse Technologies Inc.
    12. 12. Projet #1: Itération 1 <ul><li>Résultats </li></ul><ul><ul><li>Courbe d’apprentissage importante pour le responsable de l’AQ (autre langage) </li></ul></ul><ul><ul><ul><li>Mais, on s’en doutait </li></ul></ul></ul><ul><ul><li>Aucun TAA utilisables, tests manuels avec client </li></ul></ul><ul><li>Rétrospective </li></ul><ul><ul><li>On pense se reprendre à l’itération 2 </li></ul></ul>Elapse Technologies Inc.
    13. 13. Projet #1: Itération 2 <ul><li>Résultats </li></ul><ul><ul><li>Testeur toujours en apprentissage </li></ul></ul><ul><ul><li>Certains tests de l’itération 1 automatisés </li></ul></ul><ul><ul><li>Doute sur la capacité d’un seul testeur de fournir tous les développeurs </li></ul></ul><ul><li>Rétrospective </li></ul><ul><ul><li>Nous voulons impliquer les développeurs, mais </li></ul></ul><ul><ul><ul><li>Une seule licence disponible (restriction $) </li></ul></ul></ul><ul><ul><ul><li>Investir dans les développeurs pour apprendre un nouveau langage? </li></ul></ul></ul><ul><ul><ul><li>Développeurs rébarbatifs à l’idée d’apprendre un langage d’AQ </li></ul></ul></ul><ul><ul><ul><li>Finalement, on décide de mettre un consultant senior à mi-temps pour travailler en pair avec le testeur </li></ul></ul></ul>Elapse Technologies Inc.
    14. 14. Projet #1: Itération 3-5 <ul><li>Résultats </li></ul><ul><ul><li>Nette amélioration de la productivité des TAA </li></ul></ul><ul><ul><li>Arrivée du senior </li></ul></ul><ul><ul><ul><li>Meilleure architecture et organisation des tests </li></ul></ul></ul><ul><ul><ul><li>Tests un peu moins fragiles </li></ul></ul></ul><ul><ul><li>Toujours en retard dans les itérations </li></ul></ul><ul><li>Rétrospective </li></ul><ul><ul><li>On rattrape le retard… </li></ul></ul>Elapse Technologies Inc.
    15. 15. Projet #1: itération 6+ <ul><li>Résultats </li></ul><ul><ul><li>Base de code de tests augmente beaucoup en grosseur et en complexité </li></ul></ul><ul><ul><li>Nouvelles fonctionnalités requièrent une approche différente </li></ul></ul><ul><ul><ul><li>Refactoring majeur à faire </li></ul></ul></ul><ul><ul><ul><li>Pas d’outils pour ça dans TestComplete – travail très ardu et beaucoup d’erreurs </li></ul></ul></ul><ul><ul><li>A partir de ce point, nous avons pris un retard irrécupérable </li></ul></ul><ul><li>Rétrospective </li></ul><ul><ul><li>Démonstration manuelle des User Stories de l’itération </li></ul></ul><ul><ul><li>L’approche n’est pas vraiment viable en temps réel et nous ne sommes pas prêt à investir plus </li></ul></ul>Elapse Technologies Inc.
    16. 16. Projet #1: Constat <ul><li>Jamais en mesure d’avoir les TAA en cours d’itération, cycles désynchronisés </li></ul><ul><ul><li>Malgré plus de 40% de l’effort dans les TAA </li></ul></ul><ul><li>Outil TestComplete (Boite Noire) </li></ul><ul><ul><li>Les tests sont très fragiles à des changements mineurs </li></ul></ul><ul><ul><ul><li>Ex: positionnement des contrôles ou changement dans la hiérarchie visuelle. </li></ul></ul></ul><ul><ul><li>Refactoring des tests ardu et potentiellement dangereux </li></ul></ul><ul><ul><ul><li>Pas de bons outils de refactoring (en fait aucun) </li></ul></ul></ul><ul><ul><li>Courbe d’apprentissage imposante (autre langage à apprendre) </li></ul></ul><ul><ul><ul><li>Développeurs extrêmement réticents à s’investir </li></ul></ul></ul><ul><ul><li>Tests pas plus faciles à lire (scripts de code) </li></ul></ul>Elapse Technologies Inc.
    17. 17. Projet #2: Contexte <ul><li>Second projet client : Facturation (3-4m) </li></ul><ul><ul><li>Mandat d’exécution </li></ul></ul><ul><ul><ul><li>1 chargé de projets + 2 à 3 analystes d’affaire (client) </li></ul></ul></ul><ul><ul><ul><li>4 développeurs (3 seniors, 1 junior) </li></ul></ul></ul><ul><ul><ul><li>1 DBA à temps partiel </li></ul></ul></ul><ul><ul><li>Technologies </li></ul></ul><ul><ul><ul><li>Application .NET WinForm </li></ul></ul></ul><ul><ul><ul><li>SGBDR, Procédures stockées </li></ul></ul></ul><ul><ul><ul><li>NUnitForms, Fit … </li></ul></ul></ul>Elapse Technologies Inc.
    18. 18. Projet #2: Approche TAA Elapse Technologies Inc.
    19. 19. Projet #2: Itération 1 <ul><li>L’approche fonctionne </li></ul><ul><ul><li>Tous les tests de l’itération sont automatisés </li></ul></ul><ul><ul><li>Nous avons une définition exécutable de « Complété » </li></ul></ul><ul><ul><li>Tout le monde est bien content  </li></ul></ul>Elapse Technologies Inc.
    20. 20. Projet #2: Itération 2 <ul><li>Problème des interfaces modales </li></ul><ul><li>Léger ralentissement, solution complexe trouvée </li></ul><ul><ul><li>Rend le code de test plus obscur (délégué)  </li></ul></ul>Elapse Technologies Inc.
    21. 21. Projet #2: Itération 3 <ul><li>Maudite base de donnée!!! ;-) </li></ul><ul><ul><li>BD de Microsoft Dynamics (hack) </li></ul></ul><ul><ul><li>Couche d’affaire dans la BD (Stored Procs PLSQL) </li></ul></ul><ul><ul><ul><li>Aucun tests unitaires </li></ul></ul></ul><ul><ul><ul><li>Tentative avec SQLUnit (DBA pas convaincu, non disponible) </li></ul></ul></ul><ul><ul><ul><li>BD (groupe séparé…) </li></ul></ul></ul><ul><ul><ul><li>Outils de refactoring inexistants, changements risqués </li></ul></ul></ul><ul><li>Donc, aucun tests sur les procédures stockées  </li></ul><ul><li>Sérieux impact sur la productivité </li></ul>Elapse Technologies Inc.
    22. 22. Projet #2: Itérations 4+ <ul><li>Remarque que les tests sont plus fragiles </li></ul><ul><ul><li>Changement dans un test brise d’autres tests… </li></ul></ul><ul><ul><li>Changement d’un écran requiert des changements dans plusieurs tests </li></ul></ul><ul><li>Difficulté de mettre la BD partagée dans un état connu avant chaque test </li></ul><ul><ul><ul><li>Mocks peu utiles car 80% fonctionnalités dans les Stored procs </li></ul></ul></ul>Elapse Technologies Inc.
    23. 23. Projet #2: Constat <ul><li>Manque d’organisation dans les fixtures de tests </li></ul><ul><ul><li>Duplication de code </li></ul></ul><ul><ul><li>Fragilité </li></ul></ul><ul><li>Procédures stockées </li></ul><ul><ul><li>Rend l’application plus dure et dispendieuse à tester </li></ul></ul><ul><li>Malgré les problèmes de BD, l’approche TAA fonctionnait </li></ul><ul><ul><li>Développeurs impliqués directement </li></ul></ul>Elapse Technologies Inc.
    24. 24. Projet #3 <ul><li>Organisateur d’information (R&D interne) </li></ul><ul><ul><li>Pas en mode production… </li></ul></ul><ul><ul><li>2/3 développeurs à temps partiels (interruptions) </li></ul></ul><ul><ul><li>Technologies </li></ul></ul><ul><ul><ul><li>Java Swing , Db4o, Client-Serveur (Internet app) </li></ul></ul></ul><ul><ul><ul><li>Cross-platform (Windows/Linux/OSX) </li></ul></ul></ul><ul><ul><ul><li>Jemmy (TAA), Mockito </li></ul></ul></ul>Elapse Technologies Inc.
    25. 25. Projet #3 : Approche TAA Elapse Technologies Inc.
    26. 26. Projet #3: Objectifs TAA <ul><li>Solutionner les problèmes de fragilité des tests </li></ul><ul><ul><li>Navigation </li></ul></ul><ul><ul><li>Données de tests </li></ul></ul><ul><li>Solutionner les problèmes d’organisation du code des tests </li></ul><ul><ul><li>Est ce que ça existe déjà? Où? </li></ul></ul>Elapse Technologies Inc.
    27. 27. Projet #3: Constat (1/3) <ul><li>Fragilité des tests </li></ul><ul><ul><li>Isoler la navigation : Développement d’une fixture de navigation </li></ul></ul><ul><ul><ul><li>navFixture.run(« Login en tant que l’utilisateur Pascal Roy ») </li></ul></ul></ul><ul><ul><ul><li>navFixture.run(« Affiche l’écran des préférences ») </li></ul></ul></ul><ul><ul><li>Briser l’interdépendance des tests au niveau des données </li></ul></ul><ul><ul><ul><li>Développement d ’une fixture de setup des données de test </li></ul></ul></ul><ul><ul><ul><li>Service : Remise à Zero des données </li></ul></ul></ul><ul><ul><ul><ul><li>dataFixture.reset(); </li></ul></ul></ul></ul><ul><ul><ul><li>Service : Méthodes de création de données </li></ul></ul></ul><ul><ul><ul><ul><li>dataFixture.creerEmployePascalRoy () dataFixture.creerListeDeBaseDEmployes() </li></ul></ul></ul></ul><ul><ul><li>Très simple!!! </li></ul></ul><ul><ul><ul><li>Et très efficace: Stabilité accrue des tests face au changements typiques </li></ul></ul></ul>Elapse Technologies Inc.
    28. 28. Projet #3: Constat (2/3) <ul><li>Organisation du code des tests </li></ul><ul><ul><li>Se donner une convention. Un écran = une fixture. (vs User Story) </li></ul></ul><ul><ul><ul><li>Facile à localiser le code de fixture </li></ul></ul></ul><ul><ul><ul><li>Ou de figurer ou mettre une fixture dans la hierarchie de code </li></ul></ul></ul><ul><ul><li>Avantage imprévu de cette organisation = abstraction de l’écran </li></ul></ul><ul><ul><ul><li>fixture.entrerNomUtilisateur(« Pascal Roy ») </li></ul></ul></ul><ul><ul><ul><li>fixture.enterMotDePasse(« xxxxxx ») </li></ul></ul></ul><ul><ul><ul><li>fixture.login(); </li></ul></ul></ul><ul><ul><ul><li>Diminue la complexité d’écrire des tests par la suite!! </li></ul></ul></ul>Elapse Technologies Inc.
    29. 29. Projet #3: Constat (3/3) <ul><li>Réflexion sur le processus d’acceptation dans l’itération </li></ul><ul><ul><li>TAA représente la partie Vérification </li></ul></ul><ul><ul><ul><li>Tester la conformité aux spécifications : « Complété » </li></ul></ul></ul><ul><ul><li>Est-ce suffisant pour accepter un user story en cours d’itération? </li></ul></ul><ul><ul><ul><li>Agile: « User Story supposément livrable à la fin d’itération» </li></ul></ul></ul><ul><ul><ul><li>Mais: Est-ce le cas??? </li></ul></ul></ul><ul><ul><ul><ul><li>Client: Est-ce que je suis confiant de livrer cette fonctionnalité? </li></ul></ul></ul></ul><ul><ul><ul><li>Rôle de la revue d’itération </li></ul></ul></ul><ul><ul><ul><ul><li>Certaine validation par le client (exécution manuelle des scénarios) </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Manque certains tests (utilisabilité, exploration, performance…) </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Par contre, est-ce possible en cours d’itération? </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><li>Difficile d’obtenir le « Complété Complété » </li></ul></ul></ul></ul>Elapse Technologies Inc.
    30. 30. Recommandations Elapse Technologies Inc.
    31. 31. Recommandations TAA (1/8) <ul><li>Avoir des attentes réalistes lors de la mise en place des TAA </li></ul><ul><ul><li>Ce n’est pas simple, mais incontournable pour supporter le développement itératif efficace </li></ul></ul><ul><ul><li>Ne minimisez pas la courbe d’apprentissage </li></ul></ul><ul><ul><ul><li>Expérimentez outils et techniques sur de petits projets pilotes </li></ul></ul></ul><ul><ul><li>La direction doit supporter l’équipe pleinement </li></ul></ul><ul><ul><ul><li>Il y aura de nombreuses embûches </li></ul></ul></ul>Elapse Technologies Inc.
    32. 32. Recommandations TAA (2/8) <ul><li>Comprenez les limites des TAA </li></ul><ul><ul><li>Excellent pour la Vérification </li></ul></ul><ul><ul><ul><li>Mais n’adresse pas nécessairement la validation </li></ul></ul></ul><ul><ul><ul><li>D’autres types de tests sont nécessaires: </li></ul></ul></ul><ul><ul><ul><ul><li>Utilisabilité, performance, exploration… </li></ul></ul></ul></ul><ul><ul><li>Pour pouvoir livrer « Complété Complété », le client devra «valider » le système (fit for use) </li></ul></ul><ul><ul><ul><li>La confiance ultime du client envers le logiciel est plus dans la validation que dans la vérification!!! </li></ul></ul></ul>Elapse Technologies Inc.
    33. 33. Recommandations TAA (3/8) <ul><li>Impliquer l’équipe au complet </li></ul><ul><ul><li>Les développeurs doivent être impliqués. </li></ul></ul><ul><ul><ul><li>Sinon, désynchronisation Code/Test </li></ul></ul></ul><ul><ul><ul><li>Responsabilisation </li></ul></ul></ul><ul><ul><ul><ul><li>le test doit fonctionner pour que code soit « Complété » </li></ul></ul></ul></ul><ul><ul><li>Erreur communes </li></ul></ul><ul><ul><ul><li>Confier le développement des tests exclusivement à l’AQ </li></ul></ul></ul><ul><ul><ul><li>Confier le développement des tests à des juniors (développeurs ou testeurs) </li></ul></ul></ul>Elapse Technologies Inc.
    34. 34. Recommandations TAA (4/8) <ul><li>Spécification des scénarios de test: Requiert la collaboration de toute l’équipe </li></ul><ul><ul><li>Clair pour tous : définition de « Complété » </li></ul></ul><ul><ul><li>Concrétiser cette définition </li></ul></ul><ul><ul><ul><li>Exemples concrets </li></ul></ul></ul><ul><ul><ul><li>Prototypes d’écrans </li></ul></ul></ul><ul><ul><ul><li>Tout ce qui peur aider à clarifier l’intention du test… </li></ul></ul></ul><ul><ul><li>Symptôme typique de non collaboration: </li></ul></ul><ul><ul><ul><li>scénarios de tests écrits exclusivement par les développeurs… </li></ul></ul></ul>Elapse Technologies Inc.
    35. 35. Recommandations TAA (5/8) <ul><li>Automatiser ce qui est le plus critique: 80/20 (Pareto) </li></ul><ul><ul><li>Scénario principal de chaque User Story </li></ul></ul><ul><ul><li>Réfléchir au ROI pour les scénarios secondaires ou cas d’exceptions </li></ul></ul><ul><ul><ul><li>Ils seront validés manuellement lors de l’acceptation avec le client </li></ul></ul></ul><ul><ul><li>!(Tout ou rien): </li></ul></ul><ul><ul><ul><li>10% mieux que 0%, 20% mieux que 10%,... </li></ul></ul></ul><ul><ul><ul><li>Inspection and adaptation </li></ul></ul></ul>Elapse Technologies Inc.
    36. 36. Recommandations TAA (6/8) <ul><li>Rechercher la simplicité dans l’approche </li></ul><ul><ul><li>Utiliser des outils que vous connaissez déjà en priorité </li></ul></ul><ul><ul><ul><li>IDE, langages,… </li></ul></ul></ul><ul><ul><li>Réduire le nombre d’outils impliqués </li></ul></ul><ul><ul><li>Implémenter les tests au niveau le plus approprié </li></ul></ul><ul><ul><ul><li>Test unitaire/Test intégration/Test acceptation partiel/Test acceptation End to End </li></ul></ul></ul><ul><ul><ul><ul><li>Ex: règle d’affaire (couche domaine) </li></ul></ul></ul></ul><ul><ul><ul><li>Tester tout End To End = duplication dans les tests des différents niveaux. </li></ul></ul></ul>Elapse Technologies Inc.
    37. 37. Recommandations TAA (7/8) <ul><li>Maintenez vos tests à jours </li></ul><ul><ul><li>Donner lui le même amour que le code de production </li></ul></ul><ul><ul><ul><li>Bonnes pratiques de développement </li></ul></ul></ul><ul><ul><ul><li>Organiser bien vos tests et vos fixtures de tests </li></ul></ul></ul><ul><ul><ul><ul><li>Ex: une fixture par contexte d’interaction </li></ul></ul></ul></ul><ul><ul><ul><li>É viter la duplication de code comme la peste </li></ul></ul></ul><ul><ul><li>Les cas de tests représentent les spécifications fonctionnelles du système en format exécutable </li></ul></ul><ul><ul><ul><li>Certains utilisent les TAA pour générer la documentation utilisateur à partir des cas de tests automatisés (Framework Naked Objects) </li></ul></ul></ul>Elapse Technologies Inc.
    38. 38. Recommandations TAA (8/8) <ul><li>Solidifier vos tests </li></ul><ul><ul><li>Éviter des dépendances inutiles </li></ul></ul><ul><ul><ul><li>Ex: pour tester si un nouvel employé a été ajouté </li></ul></ul></ul><ul><ul><ul><li>assertEquals(5, employeeListFixture.count()); //non </li></ul></ul></ul><ul><ul><ul><li>assertEquals(previousCount+1, employeeListFixture.count()); //ok </li></ul></ul></ul><ul><ul><ul><li>assertTrue(employeeListFixture.holdsEmployee(newEmployee)); //ok </li></ul></ul></ul><ul><ul><li>Rendre les tests indépendants les uns des autres </li></ul></ul><ul><ul><ul><li>Toujours connaître l’état de départ du test </li></ul></ul></ul><ul><ul><ul><li>Pour des TAA, le côté performance est un moins critique que pour des tests unitaires </li></ul></ul></ul>Elapse Technologies Inc.
    39. 39. Questions? 10 minutes… Tirage Suite question (au besoin) Elapse Technologies Inc.
    40. 40. Mot de la fin <ul><li>Annonce: Formation « Clean Code » </li></ul><ul><ul><li>Robert «Uncle Bob » Martin : signataire Manisfeste Agile </li></ul></ul><ul><ul><li>Formation 2 jours, le 27 et 28 Octobre (Québec) </li></ul></ul><ul><ul><ul><li>S’adresse aux développeurs </li></ul></ul></ul><ul><ul><ul><li>Reconnaître du code « propre » et « malpropre » </li></ul></ul></ul><ul><ul><ul><li>Comprendre son impact sur la maintenabilité </li></ul></ul></ul><ul><ul><ul><li>Apprendre principes et utiliser des techniques pratiques </li></ul></ul></ul><ul><ul><ul><li>pour améliorer la qualité de votre code </li></ul></ul></ul><ul><li>Pour plus d’information : www.elapsetech.com </li></ul><ul><li>Tirage du livre « Clean Code » dédicacé par Bob. </li></ul>Elapse Technologies Inc.

    ×