Pratiquer le TDD (Test Driven Development) en C++

Blended learning

Combien de temps dure la formation ?

 3,00 jour(s)

Dans quelle(s) langue(s) la formation est-elle donnée ?

EN FR

Quand a lieu la prochaine session ?

Qui organise cette formation ?

OXiane est spécialisé dans la conception et la réalisation de formations informatiques et de supports de cours pédagogiques sur les dernières technologies. Nos différentes filières permettent de couvrir tous les besoins en formation que ce soit en IT au sens large, mais également "Utilisateurs" et "Soft Skills" en Management, Communication & leadership.

À qui s’adresse la formation ?

  • Chefs de projets
  • Développeurs
  • Responsables qualité
  • Responsables tests

Quels sont les objectifs poursuivis ou les compétences visées ?

  • Acquisition des principes fondamentaux et des bonnes pratiques du TDD
  • Prise en main approfondie du Framework GoogleTest (GT) / GoogleMock (GM)
  • Rédaction de tests élaborés et simulation avec GT / GM (Mocking / Facking)
  • Pratique du refactoring d'un code développé avec l'approche TDD
  • Principes de conception

Quel est le contenu de la formation ?

La place des tests dans le processus de développement

  • Processus, qualité, tests
  • Typologie des tests
    • Approche TDR (Test Driven Requirements)
      • from user stories to test cases
    • Tests unitaires
    • Tests d'intégration
    • Tests de (non) régression, ...
  • Mise en place du TDD au sein d'une démarche agile
    • Scrum, eXtreme Programming, ...
    • Pair Programming

Frameworks de tests automatisés

  • Familles de frameworks
  • Frameworks C++

Principes fondamentaux du TDD

  • Calibrage des tests, principe YAGNI
  • Le cycle de développement du TDD
    • Le triple A « Arrange, Act, Assert »
  • Stratégies pour faire passer les tests
    • Approche Outside-In vs. Inside-Out

Prise en main de GoogleTest

  • Création d'un projet
  • Concepts de base
  • Assertions
  • Tests élémentaires
  • Tests multiples : suites de tests et Test Cases
  • Préparation et mutualisation des tests avec les Test fixtures
  • Pilotage des tests

Mocks et doublures

  • Qu'est-ce qu'une doublure ?
  • Types de doublures
  • Mocks et Fakes

Prise en main de GoogleMock

  • Création d'une classe Mock
    • Méthodes privées, publiques, surchargées, ...
  • Mocking et classes génériques
  • Mocking de méthodes scellées
  • Mocking de code C « legacy »
  • Mocking par délégation
  • Collaboration des Mocks et des objets réels

Utilisation des Matchers Hamcrest

  • Matchers élémentaires et combinaisons
  • Casting de Matchers
  • Matchers multiples et dispatching
  • Prédicats
  • Arguments non copiables
  • Validation de membres et pointeurs
  • Matching et conteneurs

Tests comportementaux

  • Simulation du cycle de vie d'un objet
  • Attentes (« expectations »)
  • Changement de comportement du mock selon l'état de l' « objet réel »
  • Cas particuliers
    • Retour de références, pointeurs, exceptions
    • Classes et méthodes génériques

Refactoring et principes de conception

  • Composition versus spécialisation
  • Polymorphisme versus généricité
  • Inversion des dépendances
  • Quelques "mauvaises odeurs" à combattre
  • Techniques de refactoring en TDD
  • Présentation de quelques patterns simples mis en oeuvre lors du refactoring / TDD

Que recevez-vous à la fin de la formation ?

Une attestation de participation sera transmise aux participants

Ces formations pourraient vous intéresser