La syntaxe du C++
- Données : définition, initialisation, types de données.
- Expressions : notion de référence, mécanismes de cast.
- Opérateurs (: :, new, delete).
- Utilisation du code C dans un programme C++.
- Les références (arguments et valeurs de retour).
- Les types constants et les espaces de nommage.
Travaux pratiques
Prise en main de l'environnement de développement et programmation d'un programme simple.
Les classes et les objets C++
- Les aspects syntaxiques : les champs, les méthodes, les constructeurs.
- Le contrôle d'accès. L'autoréférence.
- Les champs et méthodes statiques. Les fonctions.
- Les méthodes et les classes friend.
- La création dynamique des tableaux d'objets.
- Les aspects méthodologiques : la conception des classes.
- Les constructeurs de copie et de déplacement (C++11).
Travaux pratiques
La programmation de l'étude de cas. La conception et la construction d'une hiérarchie de classes et d'interfaces.
Gestion des opérateurs
- Opérateurs binaires et unaires.
- L'opérateur d'indirection, cas d'usage.
- L'opérateur de référencement.
- Les opérateurs d'incrémentation/décrémentation préfixés et post-fixés.
- Les autres opérateurs : comparaison, affectation...
Travaux pratiques
Création de foncteurs et de proxies (libération mémoire, comptage de références) avec les opérateurs étudiés.
Automatisation des tests unitaires
- Les tests unitaires : qu'est-ce qu'un pilote ?
- Utilisation des bouchons pour automatiser ses tests.
- Les types de couverture : instruction, branche, condition, décision.
Travaux pratiques
Mise en œuvre du framework de test unitaire de Google en C++ (GTest) et d'un bouchon de test. Vérification de couverture de code avec Gcov.
Automatisation des tests systèmes
- Organiser l'exécution des tests : environnements de test, gestionnaire d'anomalie.
- Automatiser les tests systèmes.
- Les tests d'API, Web Service. Les tests d'IHM. Les tests de charges.
- Présentation de Sélénium pour le Web.
Travaux pratiques
Automatisation de test d'IHM/Web avec AutoIT/Selenium/QTTest. Automatisation des tests de Web Service avec SOAP UI. Mise en place de tests de charge avec SOAP UI.