Agilité
- Le manifeste pour le développement agile de logiciels.
- Les principes agiles.
- Les signataires du manifeste agile.
- Pas une, mais des méthodes et pratiques agiles.
- eXtreme Programming.
- Retourner la pyramide des tests.
- Cadrant des tests agiles.
- Preuve intégrée : livrer du code et de la preuve de fonctionnement.
Tests automatiques
- Typologie des tests. Tests automatiques.
- Utilisation de bibliothèque de test NUnit ou équivalent.
- Arrangement Action Assertion.
- Principe d’isolation des tests pour la reproductibilité.
- Séparer le code de production et les tests. Objet et contrat.
- Créer un test sur un code de production.
- Nommer un test unitaire.
- La couverture comme outil de développement.
Travaux pratiques
Live coding et exercice de développement de tests automatiques.
Isolation des tests
- Notions de Fake, Stub & Mock.
- Isolation d'un composant à tester.
- Isolation d'une intégration à tester.
- Outils d’isolation.
- Pratique extract & override.
- Utilisation de bibliothèque Moq ou équivalent.
Travaux pratiques
Live coding et exercice d'extract & override et de mock.
Développement piloté par les tests
- TDD test driven development.
- Le baby step.
- Trouver un chemin vers la fonctionnalité.
- Utiliser les assertions pour coder.
Travaux pratiques
Live coding et exercice de TDD.
Développement piloté par les comportements
- Problèmes de communication. Histoire utilisateur, critères d'acceptation.
- Tests fonctionnels.
- ATDD Acceptance Test Driven Development.
- Spécification par l'exemple. Stratégie 3 amigos pour un meilleur dialogue. Partager la compréhension du domaine métier.
- Spécifications et recette dans un même geste, en continu. BDD Behavior Driven Development.
- Features et Steps. Le cycle du BDD.
- Utilisation de la bibliothèque Specflow ou équivalent.
- Développement piloté par les comportements.
Travaux pratiques
Live coding et exercice de BDD.
Développement en binôme
- Le style pilote & co-pilote.
- Le style ping pong.
- Soutien mutuel.
- Négociation constante.
Travaux pratiques
Exercice de développement TDD en binôme.
Refactoring sous tests.
- Code historique. Dette technique. Analysis Paralysis.
- Un code qui a 2 ans devrait être meilleur qu'à 2 semaines.
- Cesser de produire encore plus de dette technique.
- Le principe du boy scout.
- Tests de fumé, de caractérisation. Tests parallèles. Notion de code smells.
- Rappel des principes SOLID de la programmation objet.
- Améliorer en priorité là où l'on travaille.
- Utilisation de refactoring automatique avec Resharper ou équivalent.
Travaux pratiques
Live coding et exercice de refactoring.