SlideShare una empresa de Scribd logo
1 de 4
Descargar para leer sin conexión
Spécification par l'exemple
Spécification par l'exemple
Arnaud Bailly ­ Jonathan Perret
13 octobre 2011




Plan
      15': Principes des "tests d'acceptation" Agile
      30': Exercice de Spécification par l'exemple
      15': Conclusion & perspectives


TDD
      Pratique centrale de XP, test unitaire, "Test First development"
      Tests orientés technologie qui soutiennent l'équipe
      Idée fausse: TDD est une technique pour créer des tests de regression
      TDD est un outil pour guider le développement vers une "Conception Simple"


BDD
      BDD is a second­generation, outside­in, pull­ based, multiple­stakeholder, multiple­scale, high­automation, agile
      methodology.

Dan North, cité par Gojko Adzic

      "TDD done right" ?
      Remonter le niveau d'abstraction des "tests" à celui des "User Stories": Le "Quoi faire?" plutôt que le "Comment
      faire?"
      Définition fluctuante et changeante, souvent liée à des outils: jBehave, RSpec, jDave... et plutôt un changement de
      perspective sur les tests unitaires


ATDD
      Acceptance Test­Driven Development ou Développement Dirigé par les Tests de Recette
      Mise en place AA­FTT Workshop à partir d'Agile 2008
      Comment intégrer la pratique du test et les testeurs dans les équipes Agile ?
      Que deviennent les spécifications dans les projets Agile ?
      La Recette est un terme contractuel or l'Agilité promeut la collaboration sur le contrat : quid des "Tests de recette" ?


Les quadrants de Marick
Des tests orienté­métier pour soutenir l'équipe
   Tests définis du point de vue de l'usage du produit, des utilisateurs
   Expliciter les besoins avant de développer : quelle est la fonctionalité que l'on souhaite produire ?
   Construire une suite de tests de non­régression pour vérifier que des développements futurs ne cassent rien


Collaborer pour…
   Développer le bon logiciel, celui qui est attendu par les utilisateurs
   Ne pas développer des fonctionnalités inutiles
   Ne pas accumuler de dette technique et maintenir l'existant


Formaliser les spécifications ?
   Approche pilotage par les modèles
   Travailler à un niveau d'abstraction plus élevé mais plus compréhensible pour les utilisateurs
   Automatiser le processus de réalisation du système à partir des modèles pour garantir la cohérence
   Mais modéliser, c'est déjà coder : on ne peut pas automatiquement produire une information qui n'est pas déjà dans le
   modèle


Les problèmes que l'on cherche à résoudre
La Spécification par l'exemple
      "Pour établir une pratique, les règles ne suffisent pas; on a également besoin d'exemples"

L.Wittgenstein, De la certitude, 1969


La Spécification par l'exemple
      ATDD Done Right !
      Grandement inspiré par les travaux de Gojko Adzic et d'autres dans la communauté du Test Agile (Lisa Crispin, Janet
      Gregory, Brian Marick...)
      On parlera aussi de Spécification Exécutable, mais…
      une spécification est elle­même un encodage du problème considéré
      on ne parle ici que d'exemples, ç.à.d. un échantillonage de l'espace du problème/des solutions
      terme plutôt en faveur pour des spécifications formelles


Définir le "Quoi?"
      Spécification de "stories" par­delà le post­it
      Une "story" devrait être une opportunité de conversation, mais comment savoir quand nous avons fini ?
      Les exemples soutiennent la conversation, offrent des points d'appui pour étudier de nouvelles perspectives


Écrire les exemples
      Proposition: Utiliser des formes contraintes pour décrire les spécifications
      1 story = But/Rôle/Action
      Afin d'atteindre un certain but un Utilisateur Veut réaliser une action
      1 exemple = Etant donné/Quand/Alors
      Etant donné un certain état du système Quand l'utilisateur fait quelque chose Alors le système atteint tel état
      Ne pas confondre le quoi et le comment
      Ne pas oublier le pourquoi


Exercice
C'est à vous de travailler !


Faire vivre le produit
     Mais nous voulons construire un produit…
     Les "stories" représentent le chemin que nous suivons pour développer le logiciel : chaque "story" modifie le produit
     d'une façon spécifique
     Mais le produit n'est pas la somme des "stories" : il n'est pas possible de reconstruire la séquence exacte de "stories"
     implémentées étant donné un état particulier du produit (sauf à consulter le système de gestion de versions, bien sûr)
     D'où la question : faut­il garder tous les tests que nous écrivons pour implémenter les "stories" ?
     Et la réponse est : "Probablement non !"
     Les tests comme le code doivent être remaniés, évoluer avec le produit/système


Faire évoluer les tests
  1.  Définir les tests de recette pour une "story" donnée avant le début du codage, les écrire comme ils viennent sous forme
      exécutable
  2.  Une fois la "story" finie, transformer les tests en exemples de spécification : les regrouper avec l'ensemble des tests pour
      la fonctionnalité que cette "story" ajoute ou complète
  3.  Utiliser le test exploratoire pour améliorer les spécifications du produit, et ce faisant créer de nouvelles "stories". En
      particulier, les testeurs (et les développeurs bien sûr) sont habiles à trouver des cas extrêmes, des chemins non couverts,
      des contradictions…


Mieux communiquer
     C'est donc que “suivre la règle” est une pratique. Croire que l'on suit la règle n'est pas la suivre. C'est donc aussi
     qu'on ne peut pas suivre la règle privatim ; sinon croire que l'on suit la règle serait la même chose que la suivre.

L.Wittgenstein, Recherches Philosophiques, §202, 1953

     On cherche à construire une documentation vivante qui ne soit pas que le code
     Noeud de communication entre les différents rôles de l'équipe (testeurs, experts métiers, développeurs, designers, entre
     autres)


Références
     Gojko Adzic, Specification By Example, Manning 2011
     Gojko Adzic, Bridging the Communication Gap, Neuri 2009
     L.Crispin & J.Gregory, Agile Testing, Addison­Wesley, 2009

Más contenido relacionado

Destacado

Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven DevelopmentLiz Keogh
 
Zoom sur le Métier de Développeur
Zoom sur le Métier de DéveloppeurZoom sur le Métier de Développeur
Zoom sur le Métier de DéveloppeurANAPEC
 
Zoom sur le métier de développeur chez Izee Web
Zoom sur le métier de développeur chez Izee WebZoom sur le métier de développeur chez Izee Web
Zoom sur le métier de développeur chez Izee WebIsabelle Mallegol
 
Comment transformer un débutant en super-développeur
Comment transformer un débutant en super-développeurComment transformer un débutant en super-développeur
Comment transformer un débutant en super-développeurGauthier Delamarre
 
Communications linéaire et cyclique, monologues et dialogues
Communications linéaire et cyclique, monologues et dialoguesCommunications linéaire et cyclique, monologues et dialogues
Communications linéaire et cyclique, monologues et dialoguesPierre RAYNAUD
 
2012 The Requirements Week Visure Solutions Miguel Tomico Missing Requirements
2012 The Requirements Week Visure Solutions Miguel Tomico Missing Requirements2012 The Requirements Week Visure Solutions Miguel Tomico Missing Requirements
2012 The Requirements Week Visure Solutions Miguel Tomico Missing RequirementsVisure Solutions
 
Gustavo ramon pagani chaparro aprendizaje colaborativo.
Gustavo ramon pagani chaparro   aprendizaje colaborativo.Gustavo ramon pagani chaparro   aprendizaje colaborativo.
Gustavo ramon pagani chaparro aprendizaje colaborativo.Avo Pagani
 
Standard r.r. 146
Standard r.r. 146Standard r.r. 146
Standard r.r. 146elyaneforet
 
Standard fci petit bleu de gascogne
Standard fci petit bleu de gascogneStandard fci petit bleu de gascogne
Standard fci petit bleu de gascogneelyaneforet
 
Standard fci beagle
Standard fci beagleStandard fci beagle
Standard fci beagleelyaneforet
 
Facebook est-il détrônable ?
Facebook est-il détrônable ?Facebook est-il détrônable ?
Facebook est-il détrônable ?Vincent Beigbeder
 
materialparaprimariasobredivisiondefracciones
materialparaprimariasobredivisiondefraccionesmaterialparaprimariasobredivisiondefracciones
materialparaprimariasobredivisiondefracciones254nati
 
Un roman en partenariat
Un roman en partenariatUn roman en partenariat
Un roman en partenariatchantal1771
 
Quadratic Expressions & Equations 3
Quadratic Expressions & Equations 3Quadratic Expressions & Equations 3
Quadratic Expressions & Equations 3nurliyanazakaria
 

Destacado (20)

Test acceptance
Test acceptanceTest acceptance
Test acceptance
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
 
Zoom sur le Métier de Développeur
Zoom sur le Métier de DéveloppeurZoom sur le Métier de Développeur
Zoom sur le Métier de Développeur
 
Zoom sur le métier de développeur chez Izee Web
Zoom sur le métier de développeur chez Izee WebZoom sur le métier de développeur chez Izee Web
Zoom sur le métier de développeur chez Izee Web
 
Comment transformer un débutant en super-développeur
Comment transformer un débutant en super-développeurComment transformer un débutant en super-développeur
Comment transformer un débutant en super-développeur
 
Php 100k
Php 100kPhp 100k
Php 100k
 
Projet carrière
Projet carrièreProjet carrière
Projet carrière
 
Communications linéaire et cyclique, monologues et dialogues
Communications linéaire et cyclique, monologues et dialoguesCommunications linéaire et cyclique, monologues et dialogues
Communications linéaire et cyclique, monologues et dialogues
 
2012 The Requirements Week Visure Solutions Miguel Tomico Missing Requirements
2012 The Requirements Week Visure Solutions Miguel Tomico Missing Requirements2012 The Requirements Week Visure Solutions Miguel Tomico Missing Requirements
2012 The Requirements Week Visure Solutions Miguel Tomico Missing Requirements
 
Gustavo ramon pagani chaparro aprendizaje colaborativo.
Gustavo ramon pagani chaparro   aprendizaje colaborativo.Gustavo ramon pagani chaparro   aprendizaje colaborativo.
Gustavo ramon pagani chaparro aprendizaje colaborativo.
 
Standard r.r. 146
Standard r.r. 146Standard r.r. 146
Standard r.r. 146
 
Standard fci petit bleu de gascogne
Standard fci petit bleu de gascogneStandard fci petit bleu de gascogne
Standard fci petit bleu de gascogne
 
Standard fci beagle
Standard fci beagleStandard fci beagle
Standard fci beagle
 
Analisis numerico act 1
Analisis numerico act 1Analisis numerico act 1
Analisis numerico act 1
 
Facebook est-il détrônable ?
Facebook est-il détrônable ?Facebook est-il détrônable ?
Facebook est-il détrônable ?
 
materialparaprimariasobredivisiondefracciones
materialparaprimariasobredivisiondefraccionesmaterialparaprimariasobredivisiondefracciones
materialparaprimariasobredivisiondefracciones
 
Un roman en partenariat
Un roman en partenariatUn roman en partenariat
Un roman en partenariat
 
Quadratic Expressions & Equations 3
Quadratic Expressions & Equations 3Quadratic Expressions & Equations 3
Quadratic Expressions & Equations 3
 
Brochure SAELT
Brochure SAELTBrochure SAELT
Brochure SAELT
 
Los reinos cristianos
Los reinos cristianosLos reinos cristianos
Los reinos cristianos
 

Más de Association Agile Nantes

Agile Tour Nantes 2014 - Comment impliquer vos clients dans leurs projets ?
Agile Tour Nantes 2014 - Comment impliquer vos clients dans leurs projets ?Agile Tour Nantes 2014 - Comment impliquer vos clients dans leurs projets ?
Agile Tour Nantes 2014 - Comment impliquer vos clients dans leurs projets ?Association Agile Nantes
 
Le projet Aristote / Steeve Evers & Marc Dugué
Le projet Aristote / Steeve Evers & Marc DuguéLe projet Aristote / Steeve Evers & Marc Dugué
Le projet Aristote / Steeve Evers & Marc DuguéAssociation Agile Nantes
 
Initiation à l'agilité - Agile Tour 2017
Initiation à l'agilité - Agile Tour 2017Initiation à l'agilité - Agile Tour 2017
Initiation à l'agilité - Agile Tour 2017Association Agile Nantes
 
Agile Tour Nantes 2014 - 10 ans d'agile, c'est chouette ! La rétro des points...
Agile Tour Nantes 2014 - 10 ans d'agile, c'est chouette ! La rétro des points...Agile Tour Nantes 2014 - 10 ans d'agile, c'est chouette ! La rétro des points...
Agile Tour Nantes 2014 - 10 ans d'agile, c'est chouette ! La rétro des points...Association Agile Nantes
 
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAgile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAssociation Agile Nantes
 
Et si on maîtrisait vraiment notre produit
Et si on maîtrisait vraiment notre produitEt si on maîtrisait vraiment notre produit
Et si on maîtrisait vraiment notre produitAssociation Agile Nantes
 
Agile Tour Nantes 2013 - L'EPOPEE DU CHEVALIER AGILE FILS DU ROI PRAGMATIQUE ...
Agile Tour Nantes 2013 - L'EPOPEE DU CHEVALIER AGILE FILS DU ROI PRAGMATIQUE ...Agile Tour Nantes 2013 - L'EPOPEE DU CHEVALIER AGILE FILS DU ROI PRAGMATIQUE ...
Agile Tour Nantes 2013 - L'EPOPEE DU CHEVALIER AGILE FILS DU ROI PRAGMATIQUE ...Association Agile Nantes
 
Agile Tour Nantes 2013 - Urbanisation des services : Pour changer le monde du...
Agile Tour Nantes 2013 - Urbanisation des services : Pour changer le monde du...Agile Tour Nantes 2013 - Urbanisation des services : Pour changer le monde du...
Agile Tour Nantes 2013 - Urbanisation des services : Pour changer le monde du...Association Agile Nantes
 
Agile Tour Nantes 2013 - Scrum ou kanban - Alexandre BOUTIN
Agile Tour Nantes 2013 - Scrum ou kanban - Alexandre BOUTINAgile Tour Nantes 2013 - Scrum ou kanban - Alexandre BOUTIN
Agile Tour Nantes 2013 - Scrum ou kanban - Alexandre BOUTINAssociation Agile Nantes
 
Agile Tour Nantes 2013 - Introduction aux méthodes agiles - Grégoire ROBIN - ...
Agile Tour Nantes 2013 - Introduction aux méthodes agiles - Grégoire ROBIN - ...Agile Tour Nantes 2013 - Introduction aux méthodes agiles - Grégoire ROBIN - ...
Agile Tour Nantes 2013 - Introduction aux méthodes agiles - Grégoire ROBIN - ...Association Agile Nantes
 
Agt nantes 2013 aurélien morvant - agiletour.comment.etre.agile.et.le.rester
Agt nantes 2013   aurélien morvant - agiletour.comment.etre.agile.et.le.resterAgt nantes 2013   aurélien morvant - agiletour.comment.etre.agile.et.le.rester
Agt nantes 2013 aurélien morvant - agiletour.comment.etre.agile.et.le.resterAssociation Agile Nantes
 
Agt nantes 2013 rémy génin - l'agilité peut changer le monde
Agt nantes 2013   rémy génin - l'agilité peut changer le mondeAgt nantes 2013   rémy génin - l'agilité peut changer le monde
Agt nantes 2013 rémy génin - l'agilité peut changer le mondeAssociation Agile Nantes
 
Patrons de conception de la programmation fonctionnelle
Patrons de conception de la programmation fonctionnellePatrons de conception de la programmation fonctionnelle
Patrons de conception de la programmation fonctionnelleAssociation Agile Nantes
 

Más de Association Agile Nantes (20)

PI Planning-Vos échanges!.pdf
PI Planning-Vos échanges!.pdfPI Planning-Vos échanges!.pdf
PI Planning-Vos échanges!.pdf
 
Agile Tour Nantes 2014 - Comment impliquer vos clients dans leurs projets ?
Agile Tour Nantes 2014 - Comment impliquer vos clients dans leurs projets ?Agile Tour Nantes 2014 - Comment impliquer vos clients dans leurs projets ?
Agile Tour Nantes 2014 - Comment impliquer vos clients dans leurs projets ?
 
Le projet Aristote / Steeve Evers & Marc Dugué
Le projet Aristote / Steeve Evers & Marc DuguéLe projet Aristote / Steeve Evers & Marc Dugué
Le projet Aristote / Steeve Evers & Marc Dugué
 
Tous en scène - Arnaud Garnier
Tous en scène - Arnaud GarnierTous en scène - Arnaud Garnier
Tous en scène - Arnaud Garnier
 
Initiation à l'agilité - Agile Tour 2017
Initiation à l'agilité - Agile Tour 2017Initiation à l'agilité - Agile Tour 2017
Initiation à l'agilité - Agile Tour 2017
 
Agile nantes leanstartup_20160323
Agile nantes leanstartup_20160323Agile nantes leanstartup_20160323
Agile nantes leanstartup_20160323
 
Agile Tour Nantes 2014 - 10 ans d'agile, c'est chouette ! La rétro des points...
Agile Tour Nantes 2014 - 10 ans d'agile, c'est chouette ! La rétro des points...Agile Tour Nantes 2014 - 10 ans d'agile, c'est chouette ! La rétro des points...
Agile Tour Nantes 2014 - 10 ans d'agile, c'est chouette ! La rétro des points...
 
Agile Tour Nantes 2014 - Sois autonome !
Agile Tour Nantes 2014 - Sois autonome !Agile Tour Nantes 2014 - Sois autonome !
Agile Tour Nantes 2014 - Sois autonome !
 
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAgile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
 
Et si on maîtrisait vraiment notre produit
Et si on maîtrisait vraiment notre produitEt si on maîtrisait vraiment notre produit
Et si on maîtrisait vraiment notre produit
 
Agile Tour Nantes 2013 - L'EPOPEE DU CHEVALIER AGILE FILS DU ROI PRAGMATIQUE ...
Agile Tour Nantes 2013 - L'EPOPEE DU CHEVALIER AGILE FILS DU ROI PRAGMATIQUE ...Agile Tour Nantes 2013 - L'EPOPEE DU CHEVALIER AGILE FILS DU ROI PRAGMATIQUE ...
Agile Tour Nantes 2013 - L'EPOPEE DU CHEVALIER AGILE FILS DU ROI PRAGMATIQUE ...
 
Agile Tour Nantes 2013 - Urbanisation des services : Pour changer le monde du...
Agile Tour Nantes 2013 - Urbanisation des services : Pour changer le monde du...Agile Tour Nantes 2013 - Urbanisation des services : Pour changer le monde du...
Agile Tour Nantes 2013 - Urbanisation des services : Pour changer le monde du...
 
Agile Tour Nantes 2013 - Scrum ou kanban - Alexandre BOUTIN
Agile Tour Nantes 2013 - Scrum ou kanban - Alexandre BOUTINAgile Tour Nantes 2013 - Scrum ou kanban - Alexandre BOUTIN
Agile Tour Nantes 2013 - Scrum ou kanban - Alexandre BOUTIN
 
Agile Tour Nantes 2013 - Introduction aux méthodes agiles - Grégoire ROBIN - ...
Agile Tour Nantes 2013 - Introduction aux méthodes agiles - Grégoire ROBIN - ...Agile Tour Nantes 2013 - Introduction aux méthodes agiles - Grégoire ROBIN - ...
Agile Tour Nantes 2013 - Introduction aux méthodes agiles - Grégoire ROBIN - ...
 
Agt nantes 2013 aurélien morvant - agiletour.comment.etre.agile.et.le.rester
Agt nantes 2013   aurélien morvant - agiletour.comment.etre.agile.et.le.resterAgt nantes 2013   aurélien morvant - agiletour.comment.etre.agile.et.le.rester
Agt nantes 2013 aurélien morvant - agiletour.comment.etre.agile.et.le.rester
 
Agt nantes 2013 rémy génin - l'agilité peut changer le monde
Agt nantes 2013   rémy génin - l'agilité peut changer le mondeAgt nantes 2013   rémy génin - l'agilité peut changer le monde
Agt nantes 2013 rémy génin - l'agilité peut changer le monde
 
Patrons de conception de la programmation fonctionnelle
Patrons de conception de la programmation fonctionnellePatrons de conception de la programmation fonctionnelle
Patrons de conception de la programmation fonctionnelle
 
Des mots, des maux ? Démo !
Des mots, des maux ? Démo !Des mots, des maux ? Démo !
Des mots, des maux ? Démo !
 
REX Scrum mature
REX Scrum matureREX Scrum mature
REX Scrum mature
 
L'agilité dans la mobilité
L'agilité dans la mobilitéL'agilité dans la mobilité
L'agilité dans la mobilité
 

Agile Tour Nantes 2011 - Arnaud Bailly et Jonathan Perret - spécification par l'exemple

  • 1. Spécification par l'exemple Spécification par l'exemple Arnaud Bailly ­ Jonathan Perret 13 octobre 2011 Plan 15': Principes des "tests d'acceptation" Agile 30': Exercice de Spécification par l'exemple 15': Conclusion & perspectives TDD Pratique centrale de XP, test unitaire, "Test First development" Tests orientés technologie qui soutiennent l'équipe Idée fausse: TDD est une technique pour créer des tests de regression TDD est un outil pour guider le développement vers une "Conception Simple" BDD BDD is a second­generation, outside­in, pull­ based, multiple­stakeholder, multiple­scale, high­automation, agile methodology. Dan North, cité par Gojko Adzic "TDD done right" ? Remonter le niveau d'abstraction des "tests" à celui des "User Stories": Le "Quoi faire?" plutôt que le "Comment faire?" Définition fluctuante et changeante, souvent liée à des outils: jBehave, RSpec, jDave... et plutôt un changement de perspective sur les tests unitaires ATDD Acceptance Test­Driven Development ou Développement Dirigé par les Tests de Recette Mise en place AA­FTT Workshop à partir d'Agile 2008 Comment intégrer la pratique du test et les testeurs dans les équipes Agile ? Que deviennent les spécifications dans les projets Agile ? La Recette est un terme contractuel or l'Agilité promeut la collaboration sur le contrat : quid des "Tests de recette" ? Les quadrants de Marick
  • 2. Des tests orienté­métier pour soutenir l'équipe Tests définis du point de vue de l'usage du produit, des utilisateurs Expliciter les besoins avant de développer : quelle est la fonctionalité que l'on souhaite produire ? Construire une suite de tests de non­régression pour vérifier que des développements futurs ne cassent rien Collaborer pour… Développer le bon logiciel, celui qui est attendu par les utilisateurs Ne pas développer des fonctionnalités inutiles Ne pas accumuler de dette technique et maintenir l'existant Formaliser les spécifications ? Approche pilotage par les modèles Travailler à un niveau d'abstraction plus élevé mais plus compréhensible pour les utilisateurs Automatiser le processus de réalisation du système à partir des modèles pour garantir la cohérence Mais modéliser, c'est déjà coder : on ne peut pas automatiquement produire une information qui n'est pas déjà dans le modèle Les problèmes que l'on cherche à résoudre
  • 3. La Spécification par l'exemple "Pour établir une pratique, les règles ne suffisent pas; on a également besoin d'exemples" L.Wittgenstein, De la certitude, 1969 La Spécification par l'exemple ATDD Done Right ! Grandement inspiré par les travaux de Gojko Adzic et d'autres dans la communauté du Test Agile (Lisa Crispin, Janet Gregory, Brian Marick...) On parlera aussi de Spécification Exécutable, mais… une spécification est elle­même un encodage du problème considéré on ne parle ici que d'exemples, ç.à.d. un échantillonage de l'espace du problème/des solutions terme plutôt en faveur pour des spécifications formelles Définir le "Quoi?" Spécification de "stories" par­delà le post­it Une "story" devrait être une opportunité de conversation, mais comment savoir quand nous avons fini ? Les exemples soutiennent la conversation, offrent des points d'appui pour étudier de nouvelles perspectives Écrire les exemples Proposition: Utiliser des formes contraintes pour décrire les spécifications 1 story = But/Rôle/Action Afin d'atteindre un certain but un Utilisateur Veut réaliser une action 1 exemple = Etant donné/Quand/Alors Etant donné un certain état du système Quand l'utilisateur fait quelque chose Alors le système atteint tel état Ne pas confondre le quoi et le comment Ne pas oublier le pourquoi Exercice
  • 4. C'est à vous de travailler ! Faire vivre le produit Mais nous voulons construire un produit… Les "stories" représentent le chemin que nous suivons pour développer le logiciel : chaque "story" modifie le produit d'une façon spécifique Mais le produit n'est pas la somme des "stories" : il n'est pas possible de reconstruire la séquence exacte de "stories" implémentées étant donné un état particulier du produit (sauf à consulter le système de gestion de versions, bien sûr) D'où la question : faut­il garder tous les tests que nous écrivons pour implémenter les "stories" ? Et la réponse est : "Probablement non !" Les tests comme le code doivent être remaniés, évoluer avec le produit/système Faire évoluer les tests 1.  Définir les tests de recette pour une "story" donnée avant le début du codage, les écrire comme ils viennent sous forme exécutable 2.  Une fois la "story" finie, transformer les tests en exemples de spécification : les regrouper avec l'ensemble des tests pour la fonctionnalité que cette "story" ajoute ou complète 3.  Utiliser le test exploratoire pour améliorer les spécifications du produit, et ce faisant créer de nouvelles "stories". En particulier, les testeurs (et les développeurs bien sûr) sont habiles à trouver des cas extrêmes, des chemins non couverts, des contradictions… Mieux communiquer C'est donc que “suivre la règle” est une pratique. Croire que l'on suit la règle n'est pas la suivre. C'est donc aussi qu'on ne peut pas suivre la règle privatim ; sinon croire que l'on suit la règle serait la même chose que la suivre. L.Wittgenstein, Recherches Philosophiques, §202, 1953 On cherche à construire une documentation vivante qui ne soit pas que le code Noeud de communication entre les différents rôles de l'équipe (testeurs, experts métiers, développeurs, designers, entre autres) Références Gojko Adzic, Specification By Example, Manning 2011 Gojko Adzic, Bridging the Communication Gap, Neuri 2009 L.Crispin & J.Gregory, Agile Testing, Addison­Wesley, 2009