Les spécificités des méthodes agiles
- Le développement incrémental et itératif.
- L'incidence sur la politique de tests et son coût.
Le développement guidé par les tests
- Le cycle de base.
- Le principe.
- Les trois bénéfices majeurs.
- Les règles de simplicité.
- La règle des "3 A".
- L'identification des faiblesses du code.
- Les mécanismes d'amélioration.
- L'articulation avec le développement par les tests.
- Rappel sur les patrons de conception (" design patterns ").
Etude de cas
Développement par les tests (prise en main). Le remaniement ou "refactoring".
Le remaniement de code
- Le retour sur les règles de simplicité.
- Comment identifier le code à risque ?
- Les commentaires et le code auto-documentant.
Etude de cas
Remaniement de code à risque et insertion de tests.
La gestion des tests dans le cycle de projet
- Les suites de tests.
- La modularité.
Les problématiques avancées
- Les tests de performance.
- Les tests d'interfaces graphiques.
- Les tests impliquant des composants tiers.
- Le code multithread.
- L'écriture de tests en réponse à un défaut.
Etude de cas
Techniques avancées, correction de défauts guidée par les tests.
Le test comme cahier des charges, les scénarios clients
- Le cycle de vie des "scénarios clients".
- Les attributs d'un bon scénario.
- L'articulation entre plan de livraison et d'itération.
- Du scénario au test de recette.
- Le codeur de Maxwell.
- Les techniques de test.
- Les outils de base (Junit, XML, etc.) et avancés (Fit, etc.).
Etude de cas
Rédaction de scénarios, évaluation de la testabilité, estimation. Développement avec les tests de recette.