TDD avancé

But de la formation

Perfectionner les pratiques de tests automatisés et de TDD afin d’améliorer la qualité et la maintenabilité de ceux-ci et ainsi être en mesure d’écrire de bons tests même en présence de cas difficiles à tester :

Description

Perfectionner les pratiques de TDD et l’art d’écrire de bons tests unitaires automatisés

Objectifs

- Maîtriser les techniques avancées de tests automatisés et de TDD;
- Savoir identifier les indices de non-qualité ou de problèmes architecturaux à partir des tests, du TDD et des Mocks (mauvaises odeurs);
- Appliquer des techniques de conception permettant le pilotage de l’architecture à l’aide du TDD et des tests;
- Comparer l’approche TDD Mockiste et traditionnelle;
- Comprendre les défis et astuces concernant la maintenabilité des tests à long terme dans une équipe et une organisation;
- Comprendre comment réaliser des tests dans différents contextes et technologies d’un logiciel d’entreprise.

Méthodologie

Présentations interactives (45%); échanges et cas proposés par les participants (25%); démonstrations et exercices pratiques (30%) Préalable : Être familier avec un langage orienté objet. Les exercices pratiques pourront être réalisés en VB, C# ou Java avec un IDE (VS.NET, Eclipse ou IntelliJ) selon la préférence du participant.

Clientèle visée

Personne utilisant déjà le TDD ou possédant de l'expérience concrète avec les tests automatisés

Contenu

Introduction :

  • rappel du TDD;
  • exigences du logiciel (qualité);
  • automatisation des tests;
  • taxonomie des tests.

Trucs et astuces avec les tests :

  • nommage;
  • discussion : style BDD dans les tests unitaires;
  • techniques (patrons) de tests;
  • builder / objets mères.

Les « odeurs » avec le TDD et les tests (indices de qualité)

Maintenabilité d'un portefeuille de tests automatisés :

  • défis et conséquences;
  • tests fragiles;
  • aspects humains et d'équipe.

Organisation des tests :

  • suites;
  • pyramide des tests;
  • où se brancher (couches);
  • tester via le UI ou le contourner?

Outils pour améliorer votre pratique :

  • intégration continue (survol);
  • métriques (dont la couverture et la dette technique);
  • outils de visualisation de la qualité (outils d’analyse, détecteurs automatisés, tableau de bord de la qualité).

Architecture et tests :

  • séparation des couches;
  • principe d’inversion des dépendances (DIP);
  • délégation et stratégies;
  • injection de dépendances / Service Locator pour les tests;
  • agrégats (DDD).

Approche mockiste :

  • introduction;
  • différences avec l'approche classique;
  • tests d’états versus comportements;
  • développement du « haut vers le bas »;
  • trucs et astuces.

Architecture émergente

Discussions sur les mocks et les doublures :

  • types de doublures (stub, mocks, fakes…);
  • quand / pourquoi;
  • mocks d’interfaces versus de classes concrètes;
  • odeurs.

Tests en situations difficiles :

  • tester les classes abstraites et les implémentations;
  • tester le UI (MVC/MVP, etc.);
  • tester la base de données et les fichiers;
  • tester les services web (WS) et le réseau;
  • tester le Web (dont JavaScript, AJAX, WebApp);
  • tester le matériel;
  • tester la concurrence (threads et synchronisation);
  • aperçu des tests pour les besoins fonctionnels (ATDD/BDD);
  • aperçu des tests pour les besoins non fonctionnels (tests système, performance et sécurité);
  • aperçu des tests dans un système patrimonial (legacy).
Félix-Antoine Bourbonnais

Félix-Antoine Bourbonnais

Collaborateur

ELAPSE

Admissibilité

Cette formation est accréditée et/ou répond aux exigences d’obligation de formation des organismes ci-après, tel que le stipule leur règlement. Veuillez cliquer sur le logo afin d’obtenir l’information nécessaire quant à l’admissibilité de nos formations auprès des organismes en question.
PMI