Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Soigner sa schizophrénie MOA / MOE Voyage autour des spécifications exécutables Rémy Sanlaville Expert Senior en Ingénieri...
Contrat de la session Ce que vous verrez dans cette session <ul><li>Une introduction aux spécifications exécutables ? </li...
Double Personnalité Double Audience &quot; Stakeholders are the people whose life you touch with your software &quot; Dan ...
Deux hémisphères MOA MOE Architecture Technique Artisanat Bien faire Ce qu’il faut faire Idées Métier Valeur
Un problème de communication
Communication MOE exprime Client délivre comprend décrit MOA Insatisfaction Gaspillage Besoin Couvert
Fonctionnalités  et leur utilisation pour un logiciel Source CHAOS
Communication Définition de &quot;terminé&quot; MOA MOE
ATDD cycle model by Jim Shore with changes suggested by Grigori Melnick, Brian Marick, and Elisabeth Hendrickson
Ensemble tout devient possible Atelier de spécifications Bug Bash copyright by Hans Bjordahl —  www.bugbash.net
ATDD cycle model by Jim Shore with changes suggested by Grigori Melnick, Brian Marick, and Elisabeth Hendrickson
Un Langage  Commun External  Domain Specific Language Given … When … Then …
Spécifier par l’exemple <ul><li>Les histoires d’utilisateur sont décrites au travers d’exemples : les  scénarii </li></ul>...
Atelier de Spécifications Discussion Que ce passe t'il si un utilisateur entre un mot de  passe non sécurisé ? Pouvez vous...
Atelier de spécifications Discussion <ul><li>Que ce passe t'il si un utilisateur entre un mot de passe non sécurisé ? </li...
Les scénarii Etant donné   un nouvel Utilisateur Lorsqu 'il crée un compte avec un mot de passe sécurisé Alors  le message...
Exemples <ul><li>Exemples de mots de passe sécurisé </li></ul><ul><ul><li>[email_address] </li></ul></ul><ul><ul><li>d1cti...
L’information circule
ATDD cycle model by Jim Shore with changes suggested by Grigori Melnick, Brian Marick, and Elisabeth Hendrickson
Scénarii Distillés
Exemples
ATDD cycle model by Jim Shore with changes suggested by Grigori Melnick, Brian Marick, and Elisabeth Hendrickson
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>...
On commence au   Rouge
Il manque la Fixture Fixture :  code de liaison entre le test (les tableaux) et le code du sysème testé (SUT)
Ecriture de la Fixture
Prêt à Développer
Première Etape
TDD – Ecriture du Test
TDD – Ecriture du Code
Vérification Fonctionnelle
Fonctionnalité Terminée
Les exemples permettent de prouver &quot;scientifiquement&quot; la théorie du développeur Les tests d'acceptance sont le s...
Enfin les tests : l’exploration Tests Exploratoires Tests d'Acceptance Tests Unitaires  et d'Intégration Disponibilité Sca...
Rendre les spécifications  exécutables <ul><li>Différentes approches </li></ul><ul><ul><li>Proche du code  </li></ul></ul>...
Les Pères Fondateurs <ul><li>JBehave : Dan North, Chris Matt </li></ul><ul><li>Test Driven Development: Kent Beck </li></u...
Bilan <ul><li>Une meilleure communication entre les différents acteurs du projet </li></ul><ul><ul><ul><li>Discuss  : tous...
Perspectives <ul><li>Emergence d'une nouvelle génération d'outils pour relever de nouveaux défis </li></ul><ul><li>Intégra...
<ul><li>5 doigts : Excellente Super c'est exactement ce qu'il me fallait ! </li></ul><ul><li>4 doigts : Bonne Très intéres...
Prochain SlideShare
Chargement dans…5
×

At2009 Soigner Sa Schizophrenie 1.2

3 409 vues

Publié le

Introduction à Acceptance test Driven Development

Publié dans : Technologie, Santé & Médecine
  • Soyez le premier à commenter

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)

×