Introduction
- Origine du TDD.
- L'agilité et les tests.
- Les limitations du débogueur.
- Etat de l'art.
- Industrialiser, c'est tester !
- Le besoin de tester : les types de tests.
Le test dans le processus de développement
- Processus, qualité, tests.
- Typologie des tests.
- Tests et agilité.
- Tests et spécifications.
Définition et principes du TDD
- Théorie.
- Cycle de développement.
- La bibliothèque JUnit et Eclipse.
- Les 3A.
- Gestion des exceptions.
- Refactoring et conception émergente.
- Composition d'un projet contenant des tests.
- Problématique d'exhaustivité des tests.
- Gestion des scénarii.
Travaux pratiques
Conception et intégration de tests dans le cycle de développement d?un projet.
Tests automatisés avec le Framework JUnit
- Le besoin d'un Framework de test.
- Le Framework JUnit.
- Cas et suites de tests avec JUnit.
- Alternatives (TestNG) et outillage complémentaire.
- Bonnes pratiques associées à JUnit.
Travaux pratiques
Mise en oeuvre de JUnit. Suites de tests.
Les meilleures pratiques de développement agiles
- Gestion des conditions " limites ".
- Framework de tests.
- TDD et gestion des données SGBDR.
- TDD et gestion des données de type Fichier et Repository.
- TDD et gestion des interfaces graphiques.
- TDD et gestion des interfaces Web.
- TDD et gestion des Servlets/pages JSP.
Travaux pratiques
Mise en oeuvre des différentes pratiques.
Techniques avancées avec le TDD
- Corriger des anomalies.
- Gérer la montée en charge et la sécurité des produits NTIC.
- Gestion de la sécurité logicielle.
- Gestion de la performance.
- Stress tests.
Travaux pratiques
Gestion des anomalies. Tests de performance.
Les objets Mock et Stub
- La théorie.
- Application de la théorie sans utiliser de bibliothèque.
- Découverte des bibliothèques du marché.
- Etude en détail de JMOCK ou MockObject.
Travaux pratiques
Utilisation des objets Mock.
Techniques d'écriture de tests
- Fixtures.
- Qualités d'un code de test.
- Tests basés sur la responsabilité.
- Tests basés sur l'implémentation.
- Styles de TDD.
Travaux pratiques
Amélioration de la qualité des tests écrits.
Couverture des tests
- Les axiomes sur la couverture des tests.
- Types de couverture.
- Combien de tests faut-il écrire ?
- Tests en présence d'héritage.
- Tests de régression.
- Outils de couverture.
Travaux pratiques
Définition d'une politique de couverture de tests. Application.
Test de code hérité
- Qu'est-ce que du code hérité ?
- Cycle d'évolution du code hérité.
- Tests fonctionnels avec Fit et FitNesse.
- Tests fonctionnels et TDD.
- Ecriture de tests fonctionnels exécutables avec FitNesse.
Les outils
- Les outils Open Source et commerciaux.
- Architecture matérielle de tests.
- Etude d'un outil d'intégration continue.
- Etude et choix d'un intégrateur continu (parmi lesquels, CruiseControl).
- Etude d'un outil de couverture de test.
- Etude d'un outil de gestion des tests et de communication entre MOA et MOE : Fitnesse.
Travaux pratiques
Mise en oeuvre de plusieurs outils.
Les qualités du TDD
- Gains du TDD ?
- Description des cas d'utilisation.
- Description des différents scénarii.
- Intérêt de l'industrie, des NTIC et des autres R&D.
- Les nouveaux enjeux industriels.