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

Blended learning

Wéi laang dauert d'Formatioun?

 3,00 Dag(Deeg)

A wéi enger/n Sprooch(en) gëtt d'Formatioun gehalen?

EN FR

Wéini ass déi nächst Sessioun?

Wien organiséiert dës Formatioun?

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.

U wie riicht sech d'Formatioun?

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

Wéi eng Ziler gi verfollegt bzw. wéi eng Kompetenzen ugestrieft?

  • 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

Wéi gesäit den Inhalt vun der Formatioun aus?

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

Wat kritt Dir um Enn vun der Formatioun?

Une attestation de participation sera transmise aux participants

Wéi kann een d'Formatiounsinstitut kontaktéieren?

Fiona Marin

Dës Formatioune kéinten Iech interesséieren