Tests unitaires automatisés et TDD

Description

Améliorer la qualité de votre code en apprenant comment écrire des tests unitaires simples, faciles à maintenir à long terme et qui guident votre design. Parce qu’un test unitaire est bien plus qu’un test!

Ce cours a pour objectif de familiariser les participants avec les différents tests et à la pratique du développement piloté par les tests (TDD) afin de leur permettre d'en réaliser les bénéfices dans leurs projets et pratique quotidienne. À travers des démonstrations et des exercices concrets, les participants mettront en pratique diverses techniques de tests unitaires afin de leur permettre d'acquérir les réflexes nécessaires et ainsi augmenter leur productivité.

Au delà du TDD, la formation s'adresse également aux personnes et entreprises désirant améliorer ou revoir leurs approches de tests unitaires. Pourquoi mes essais unitaires sont-ils difficiles à maintenir? Quels sont les différents types de tests? Comment améliorer mes pratiques de tests?

Objectifs

Cette formation vise à réaliser des tests logiciels et adopter la pratique du développement piloté par les tests (TDD).

À la fin de la formation, le participant sera en mesure de :

  • Appliquer les techniques afin d'écrire de bons tests automatisés (unitaire, acceptation, etc.);
  • Connaître et mettre en pratique les règles de l'art et bonnes pratiques reliées au cycle rapide : tester, développer et réusiner (refactoring);
  • Écrire des tests unitaires à l'aide d'objets factices (mocks);
  • Différencier les différents types de tests logiciels;
  • Comprendre les implications du TDD sur le design et l'architecture d'un logiciel;
  • Critiquer et analyser l'intégration des techniques dans son équipe de développement;
  • Explorer des techniques avancées de tests.

Public visé

Architecte, développeur ou toute autre personne ayant à développer des logiciels.

Préalables

Être familier avec un langage orienté objet. Les exercices pratiques pourront être réalisés en: VB, C#, Java, PHP, Ruby et Javascript.

Contenu

Taxonomie des tests (survol des types de tests)

  • Lesquels? Pour qui? Pour quoi? Quand?
  • Complémentarité des types de tests.

Tests unitaires

  • Bonnes pratiques, motivations, automatisation, mythes

Bonnes et mauvaises pratiques de tests

Développement piloté par les tests (TDD)

  • Cycle du TDD;
  • Règles de l'art;
  • Trucs et astuces;
  • Avantages et inconvénients;
  • Mythes et objections.

Objets factices (mocks)

  • Motivations et quand utiliser des mocks;
  • Fonctionnement;
  • Techniques d'injection;
  • Trucs et astuces.

Mauvaises odeurs émanant des tests (symptômes à remarquer)

Conception (design) testable (selon le groupe)

FAQ

Q: Je ne suis pas certain si le TDD est la meilleure approche chez moi (contexte particulier)?

R: La formation vous aidera à répondre à cette question. La formation est une bonne occasion pour expérimenter et profiter de l'expérience du formateur pour poser des questions.

Q: Je ne pense pas vouloir faire du TDD mais j'aimerais améliorer mes pratiques de tests?

R: La formation montre comment utiliser le TDD et les exercices se déroulent de la sorte. Nous recommandons l'emploi du TDD pour ses bénéfices mais la majeure partie de la formation traite des types de tests et des bonnes pratiques, incluant le TDD. Vous pourrez tirer grandement profit de la formation même si vous choisissez de ne pas appliquer le TDD le lendemain à votre travail.

Q: J'ai des problèmes avec mes tests, pourrons-nous regarder cela?

R: Le formateur essaie de toujours répondre aux questions spécifiques et d'utiliser les exemples des participants pendant la formation. S'il s'agit d'une formation privée, il sera possible d'aborder et d'adapter le contenu en fonction de vos questions lors de la formation. Dans les formations publiques, cela dépend, évidemment, du nombre de participants et de leurs intérêts. Si vous souhaitez une formation personnalisée (contenu spécifique et adapté à l'avance, contactez-nous).