Faites revivre vos spécifications scrumday 2014

1 836 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 836
Sur SlideShare
0
Issues des intégrations
0
Intégrations
971
Actions
Partages
0
Téléchargements
12
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Faites revivre vos spécifications scrumday 2014

  1. 1. Yannick Grenzinger & Clément Rochas Faites (re)vivre vos spécifications
  2. 2. MERCI À NOS SPONSORS
  3. 3. Cette présentation est... • Un REX! • Une démo de mise en place de tests automatisés! • Un exemple de développement agile en dans un milieu qui ne l’est pas…
  4. 4. “Quand le client m’affirme qu’il ne retrouve pas les fonctionnalités precisées dans sa spec”
  5. 5. “Quand je viens de finir les specs et que je n’y ai rien compris”
  6. 6. Too long! didn’t read
  7. 7. Le contexte • Opérateur téléphonique! • Pas agile dans le process! • Culture du héro
  8. 8. Le concept de l’appli
  9. 9. Warning: L’image suivante peut heurter la sensibilité des plus agile d’entre nous.
  10. 10. LOT 1
  11. 11. Quand la loi ne peut plus rien pour vous, il vous reste un recours... The A(gile)TEAM
  12. 12. Racontez moi tout depuis le début...
  13. 13. Décrire les comportements langage commun (Given)(Etant donné) un contexte (When)(Lorsque) l'utilisateur effectue certaines actions (Then)(Alors) on doit pouvoir constater telles conséquences
  14. 14. Rétro story map
  15. 15. Les user stories composés En tant d'utilisateur Je veux quelque chose de très complexe ! afin de faire l’action A En tant que composant X ! Je veux implémenter l’opération Y ! afin de faire l’action C ! et contribuer à A En tant que composant Z ! Je veux implémenter l’opération X afin de faire l’action B ! et contribuer à A Utilisateur Composant
  16. 16. Spécifier par l’exemple Exemples BDD Tests d’acceptation Spécifications liées aux domaines métiers Décrivent Vérifient se transforment Le tout automatisé
  17. 17. Et maintenant comment on automatise?
  18. 18. JBehave: Ecrire notre 1er test BDD en 5 min Un projet avec une classe Panier, nous allons utiliser JBehave mvn archetype:generate -> 686 -> fr.xebia -> demo-scrumday Scenario: Calculer le prix total du panier après avoir appliqué une taxe Given un panier avec un prix total de <prixTotal> euros And une taxe de <taxe>% When on calcule le prix total avec la taxe Then le prix total avec la taxe est de <prixAttendu> euros Examples: |prixTotal|taxe|prixAttendu| | 100 | 0.2 | 120 |
  19. 19. Histoire d’un refactoring Comment le BDD nous a permis de comprendre, de s’approprier et de refactorer le legacy.! ! Story: En tant que catalogue, Je veux valider l'intégrité des groupes d’options ! Un peu de contexte! une offre contient X groupes chaque groupe contient X options On veut vérifier que les options des groupes sont cohérentes
  20. 20. Notre story sous format BDD Scenario: tester l’intégrité des groupes d’options d’un panier client Given un groupe Débit Internet d'une offre Mobile Given on <action1> une option Internet Illimité Given on <action2> une option 100mo chaque mois When le catalogue vérifie l'intégrité des groupes Then le statut panier est <statutPanier> Examples: | action1 | action2 | statutPanier | | SOUSCRIT | SOUSCRIT | KO | | SOUSCRIT | RESILIE | OK |
  21. 21. traiter l’étape Classe Méthode Offre N groupes N options récupère les données de l’étape précédente trier les options sélectionnées suivant le groupe associé Parcourir les options et vérifier qu’on ne dépasse pas le maximum Parcourir les groupes et vérifier que chacun a le nombre minimum d’options compter le nombre d’options proposables dans un groupe Récupérer le groupe associé à l’option Step: Vérifier groupe
  22. 22. Step: Vérifier groupe compter le nombre d’options proposables dans un groupe Classe Méthode Offre N groupes N options récupère les données de l’étape précédente Pour chaque groupe de l’offre, vérifier si le nombre d’options est correct Calculer le nombre d’options sélectionnés dans un groupe
  23. 23. ● Jbehave (ou JUnit ou EasyB) ● Selenium/Webdriver ● Rapports
  24. 24. Et nous qu’est ce qu’on laisse aux prochains développeurs ? • Pas de spécifications mais une image à l’instant T du code;! • Une cartographie fonctionnelle de l’appli;! • Des comportements automatisés donc des tests de non régression;
  25. 25. La story map comme gilet par balle
  26. 26. Take away ➢ Adopter un langage commun autour du métier! ➢ Faire confiance au dev pour le code :-)! ➢ Augmenter la qualité du code avec des tests de non régression … métier !! ➢ Possibilité de reprendre du code legacy en repartant du métier! ➢ Être transparent, suivre l’avancement en terme de fonctionnalité
  27. 27. Merci!

×