Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

At2009 Soigner Sa Schizophrenie 1.2

3,458 views

Published on

Introduction à Acceptance test Driven Development

Published in: Technology, Health & Medicine
  • Be the first to comment

At2009 Soigner Sa Schizophrenie 1.2

  1. 1. Soigner sa schizophrénie MOA / MOE Voyage autour des spécifications exécutables Rémy Sanlaville Expert Senior en Ingénierie Logicielle   Orange Labs [email_address] Emmanuel Hugonnet Architecture J2EE Silverpeas [email_address] Hervé Lourdin Architecte Sénior / Coach agile OCTO Technology [email_address]
  2. 2. Contrat de la session Ce que vous verrez dans cette session <ul><li>Une introduction aux spécifications exécutables ? </li></ul><ul><ul><li>A quoi ca sert, pourquoi c'est utile… </li></ul></ul><ul><li>Vivre un exemple basé sur la fonctionnalité d'authentification </li></ul><ul><li>Un panorama du domaine </li></ul><ul><ul><li>outils existants : approches, les avantages et inconvénients </li></ul></ul><ul><ul><li>les père fondateurs </li></ul></ul>Ce que vous ne verrez pas dans cette session <ul><li>Une démonstration des outils </li></ul><ul><ul><li>cf. session Coding Dojo - Kata sur le pilotage par les tests d'acceptances (ATDD) </li></ul></ul><ul><li>Une solution magique à tous vos problèmes </li></ul>
  3. 3. Double Personnalité Double Audience &quot; Stakeholders are the people whose life you touch with your software &quot; Dan North MOA MOE
  4. 4. Deux hémisphères MOA MOE Architecture Technique Artisanat Bien faire Ce qu’il faut faire Idées Métier Valeur
  5. 5. Un problème de communication
  6. 6. Communication MOE exprime Client délivre comprend décrit MOA Insatisfaction Gaspillage Besoin Couvert
  7. 7. Fonctionnalités et leur utilisation pour un logiciel Source CHAOS
  8. 8. Communication Définition de &quot;terminé&quot; MOA MOE
  9. 9. ATDD cycle model by Jim Shore with changes suggested by Grigori Melnick, Brian Marick, and Elisabeth Hendrickson
  10. 10. Ensemble tout devient possible Atelier de spécifications Bug Bash copyright by Hans Bjordahl — www.bugbash.net
  11. 11. ATDD cycle model by Jim Shore with changes suggested by Grigori Melnick, Brian Marick, and Elisabeth Hendrickson
  12. 12. Un Langage Commun External Domain Specific Language Given … When … Then …
  13. 13. Spécifier par l’exemple <ul><li>Les histoires d’utilisateur sont décrites au travers d’exemples : les scénarii </li></ul>Les utilisateurs doivent utiliser des mots de passe sécurisés (une chaine de caractères dont la taille est comprise entre 8 et 20 Et qui contiennent au moins une lettre, un chiffre et un caractère spécial)
  14. 14. Atelier de Spécifications Discussion Que ce passe t'il si un utilisateur entre un mot de passe non sécurisé ? Pouvez vous me donner des exemples de mots de passe sécurisés et non sécurisés ? Quels sont les caractères spéciaux ? Comment prend on en compte les espaces ? Que fait on pour les mots de passe basés sur un dictionnaire avec une substitution simple comme ‘p@ssw0rd’ ? Comment gère t on les comptes existants ? Comment savoir que cette fonction est &quot;terminée&quot; ?
  15. 15. Atelier de spécifications Discussion <ul><li>Que ce passe t'il si un utilisateur entre un mot de passe non sécurisé ? </li></ul><ul><li>Pouvez vous me donner des exemples de mots de passe sécurisés et non sécurisés ? </li></ul><ul><li>Quels sont les caractères spéciaux ? </li></ul><ul><li>Comment prend on en compte les espaces ? </li></ul><ul><li>Que fait on pour les mots de passe basés sur un dictionnaire avec une substitution simple comme ‘p@ssw0rd’?” </li></ul><ul><li>Comment gère t on les comptes existants ? </li></ul><ul><li>Comment savoir que cette fonction est &quot;terminée&quot; ? </li></ul>
  16. 16. Les scénarii Etant donné un nouvel Utilisateur Lorsqu 'il crée un compte avec un mot de passe sécurisé Alors le message 'SUCCESS' apparait Et lorsqu'il essaye de se connecter sur ce compte Alors le message 'Hello $login' apparait Etant donné un nouvel Utilisateur Lorsqu 'il crée un compte avec un mot de passe non sécurisé Alors le message 'FAILURE' apparait Et lorsqu'il essaye de se connecter sur ce compte Alors il n'y parvient pas et le message 'FAILURE' apparait
  17. 17. Exemples <ul><li>Exemples de mots de passe sécurisé </li></ul><ul><ul><li>[email_address] </li></ul></ul><ul><ul><li>d1ction n@ire </li></ul></ul><ul><ul><li>dictionnaire_01 </li></ul></ul><ul><li>Exemples de mots de passe non sécurisés </li></ul><ul><ul><li>Trop court: [email_address] </li></ul></ul><ul><ul><li>Trop long: dictionnaire_01_ dictionnaire_01 </li></ul></ul><ul><ul><li>Sans chiffre: p@ssword </li></ul></ul><ul><ul><li>… </li></ul></ul>
  18. 18. L’information circule
  19. 19. ATDD cycle model by Jim Shore with changes suggested by Grigori Melnick, Brian Marick, and Elisabeth Hendrickson
  20. 20. Scénarii Distillés
  21. 21. Exemples
  22. 22. ATDD cycle model by Jim Shore with changes suggested by Grigori Melnick, Brian Marick, and Elisabeth Hendrickson
  23. 23. Développer <ul><li>ATDD / BDD : bien faire ce que je dois faire </li></ul><ul><li>Le métier pilote le développement </li></ul><ul><li>TDD : bien faire les choses </li></ul><ul><li>Émergence du design </li></ul>
  24. 24. On commence au Rouge
  25. 25. Il manque la Fixture Fixture : code de liaison entre le test (les tableaux) et le code du sysème testé (SUT)
  26. 26. Ecriture de la Fixture
  27. 27. Prêt à Développer
  28. 28. Première Etape
  29. 29. TDD – Ecriture du Test
  30. 30. TDD – Ecriture du Code
  31. 31. Vérification Fonctionnelle
  32. 32. Fonctionnalité Terminée
  33. 33. Les exemples permettent de prouver &quot;scientifiquement&quot; la théorie du développeur Les tests d'acceptance sont le scanner du projet
  34. 34. Enfin les tests : l’exploration Tests Exploratoires Tests d'Acceptance Tests Unitaires et d'Intégration Disponibilité Scalabilité Sécurité … *ité Aspect Technologique Aspect Métier Support du Développement Critique du Produit
  35. 35. Rendre les spécifications exécutables <ul><li>Différentes approches </li></ul><ul><ul><li>Proche du code </li></ul></ul><ul><ul><ul><li>JBehave, Rspec, Easyb… </li></ul></ul></ul><ul><ul><li>Format moins technique </li></ul></ul><ul><ul><ul><li>Wiki : Fitnesse/SLIM, GreenPepper… </li></ul></ul></ul><ul><ul><ul><li>HTML : Concordion, Robotframework… </li></ul></ul></ul><ul><ul><li>De nouveaux outils en cours de maturation </li></ul></ul><ul><ul><ul><li>Twist, JBehave 2… </li></ul></ul></ul>
  36. 36. Les Pères Fondateurs <ul><li>JBehave : Dan North, Chris Matt </li></ul><ul><li>Test Driven Development: Kent Beck </li></ul><ul><li>FIT: Ward Cunningham </li></ul><ul><li>Example Driven Development: Brian Marick </li></ul><ul><li>User Stories: Mike Cohn </li></ul><ul><li>Domain Driven Design: Eric Evans </li></ul><ul><li>Test Obsessed: Elisabeth Hendrickson </li></ul>
  37. 37. Bilan <ul><li>Une meilleure communication entre les différents acteurs du projet </li></ul><ul><ul><ul><li>Discuss : tous ensemble </li></ul></ul></ul><ul><ul><ul><li>Distill : définition par l'exemple </li></ul></ul></ul><ul><ul><ul><li>Develop : pilotage par l'exemple - &quot;FAIT&quot; </li></ul></ul></ul><ul><ul><ul><li>Demo : Validation </li></ul></ul></ul><ul><li>Bref, une seule équipe </li></ul>
  38. 38. Perspectives <ul><li>Emergence d'une nouvelle génération d'outils pour relever de nouveaux défis </li></ul><ul><li>Intégration au cycle de vie du projet (SCM) </li></ul><ul><li>Facilité de prise en main par la MOA </li></ul><ul><li>Meilleure Intégration avec les outils de développement </li></ul><ul><li>Rapports plus complets (couverture des exigences, évolution dans le temps…) </li></ul>
  39. 39. <ul><li>5 doigts : Excellente Super c'est exactement ce qu'il me fallait ! </li></ul><ul><li>4 doigts : Bonne Très intéressant, </li></ul><ul><li>3 doigts : Juste Moyenne Intéressant, sans plus. Je n’ai pas perdu mon temps. </li></ul><ul><li>2 doigts : Utile Bof ! J'ai perdu du temps. </li></ul><ul><li>1 doigt : Inutile Je n'ai rien appris. J’ai vraiment perdu mon temps </li></ul>ROTI (Return On Time Invested)

×