Le chapitre 14 de mon livre Scrum s’appelle “La story et ses tests d’acceptation”. Dans cette nouvelle édition, le titre a légèrement changé, car le chapitre inclut désormais la présentation des stories.
Il a été presque entièrement réécrit, notamment pour incorporer des nouveaux outils du Product Owner, comme ceux que j’ai présentés le mois dernier lors du ScrumDay 2014.
Au lieu de test d'acceptation, spécification par l'exemple serait probablement plus approprié
Les tests d’acceptation (au sens agile) remplacent une spécification fonctionnelle détaillée. Avec un bénéfice essentiel : la communication est facilitée entre le métier et le développement.
Une des réalisations dont je me souviens de ma vie de développeur, c’est l’écriture d’un générateur de code à partir de tables décrivant un automate. Plutôt un moteur d’automate, capable de lancer les actions élémentaires d’une transition suite à la réception d’un événement dans un état. A l’époque je travaillais à Telic-Alcatel dans le monde des autocommutateurs (PABX). Le comportement du poste téléphonique était décrit avec des automates à états finis. On disait simplement automate.
Attention, c’était de gros automates.
Trouvé via le blog de Karl, un article publié dans le très sérieux magazine IEEE Software qui fait l’hypothèse d’une équivalence entre les tests et les exigences.
Un test, c’est une expérimentation menée pour révéler des informations, ou en réponse à une question précise sur un logiciel ou un système.
Dans le cadre d’une approche agile basée sur les histoires d’utilisateur (user stories), un test d’acceptation est un test qui permet au client (ou au Product Owner) de dire s’il accepte, en fin d’itération, une histoire d’utilisateur développée par l’équipe. Un test est accroché à une story, qui en possède généralement plusieurs.
Pour décrire les tests d’acceptation, ma préférence va à une technique orientée comportement, le BDD.
…ou comment rendre inutile la rédaction de spécifications détaillées !
Un des gaspillages les plus spectaculaires dans le développement de logiciel est l’écriture de spécifications détaillées suivie de la rédaction d’un cahier de recette, plus ou moins à partir de ces spécifications. Plutôt moins parce qu’en général le cahier de recette est écrit à la fin, à un moment où les specs, écrites au début, ne sont plus à jour depuis longtemps.