Cycle de vie et projets agiles
- Les opportunités offertes par le développement agile de logiciels et de produits.
- Motivation de l'Agilité. Valeurs et principes, accepter le changement des besoins clients.
- La démarche agile, itérative et incrémentale.
- Le test dans le développement Agile.
Mise en situation
Atelier en groupe permettant de comprendre la démarche du test Agile.
Expression du besoin dans le projet Agile
- Identifier la valeur du point de vue des utilisateurs, tester ses idées, Lean Startup.
- Bien connaître ses utilisateurs, tester les catégories d'utilisateurs, créer des Personas, UX.
- Faire un impact, relier les actions des acteurs du projets à ses objectifs et utilisateurs, Impact Mapping.
- Découper les besoins sous la forme d'histoires utilisateurs, User Stories.
- Simplification, priorisation, rédaction et organisation des histoires utilisateurs.
Travaux pratiques
Elaborer l'expression du besoin d'une application à développer (Story Mapping). Prioriser les histoires utilisateurs.
Le modèle ATDD, les spécifications exécutables
- Le principe d'ATDD (Acceptance Test Driven Development) : développement piloté par les tests d'acceptation.
- BDD (Behavior Driven Development) : développement piloté par les comportements.
- Spécifications par l'exemple, spécifications executables, tests de non-régression, tests fonctionnels.
- Cycle du projet pour les spécifications exécutables.
Travaux pratiques
Découverte d'un domaine métier et rédaction de spécifications par l'exemple. Démonstration de l'outillage.
Définition et principes du TDD, développement piloté par les tests
- Typologie des tests.
- Origine du TDD (Test Driven Development).
- Cycle de développement du TDD. Red Green Refactor, baby steps.
- Refactoring et conception émergente.
- Couverture de tests.
Démonstration
Démonstration d'un développement en Java piloté par les tests. Démonstration de refactoring sur un code complexe.
Intégration continue
- Les différents composants de l'intégration continue.
- Mise en place de la plateforme d'intégration continue.
- Intégration continue et métrique.
Travaux pratiques
Démonstration de Jenkins et de SonarQube.