2017-06-16
Mes notes sur la session de Christophe Addinquy à Agile France 2017.
La co-écriture des tests d'acceptation : la compréhension partagée entre les acteurs, lever les ambiguïtés sur ce qu'on fait avec des exemples concrets.
Quand on ne se comprend pas entre métier, dev, testeur, le métier propose : "Je suis prêt à détailler toutes mes specs, ajouter tout ce qu'il faut comme petits points précis."
- Problème : on perd de vue le "quoi" car on a tendance à détailler le "comment"
- Ce n'est pas efficace
Exemple d'atelier entre métier, testeur, et développeur (les trois amis), sur une application imaginaire, "WeDate" :
- Christophe, spécialiste métier pour WeDate
- Mael, développeur fullstack, ne connais pas bien le dating
- Christian, testeur, a convoqué Christophe et Mael pour un atelier.
Étapes de l'atelier :
- Formuler avec des titres
- Décliner les titres (explorer avec des variations)
- Construire un exemple valorisé avec des valeurs concrètes
- Raffiner l'exemple
Difficulté : dans une même règle telle que décrite par le métier, il y a souvent plusieurs cas au départ de la discussion, qu'on commence à séparer.
Proposition de RDV pour un homme avec une femme compatible
Aucune proposition de RDV pour un homme avec une femme non compatible
Suite à discussion, on ajoute un troisième titre
Proposition de RDV pour un homme avec une femme compatible
Aucune proposition de RDV pour un homme avec une femme non compatible
Aucune proposition de RDV pour un homme avec une femme compatible et non disponible
Mais alors la disponibilité est un élément discriminant, il faut l'ajouter
dans un autre titre.
Proposition de RDV pour un homme avec une femme compatible et disponible
Aucune proposition de RDV pour un homme avec une femme non compatible
Aucune proposition de RDV pour un homme avec une femme compatible et non disponible
On creuse la notion de non disponible
Proposition de RDV pour un homme avec une femme compatible et disponible
Aucune proposition de RDV pour un homme avec une femme non compatible
Aucune proposition de RDV pour un homme avec une femme compatible ayant son compte inactif
Aucune proposition de RDV pour un homme avec une femme compatible ayant bloqué cet homme
Aucune proposition de RDV pour un homme avec une femme compatible avec laquelle il a un RDV à venir
Aucune proposition de RDV pour un homme avec une femme compatible avec laquelle il a déjà eu un RDV non concluant
En travaillant uniquement sur les titres on a pu aller assez vite et commencer à décliner certains termes assez flous
Ce n'est pas encore suffisant pour des tests d'acceptation, on a besoin de préciser, avec "Étant donné que", "Quand", "Alors" par exemple ("Given", "When", "Then").
Proposition de RDV pour un homme avec une femme compatible et disponible
Aucune proposition de RDV pour un homme avec une femme non compatible
Aucune proposition de RDV pour un homme avec une femme compatible ayant son compte inactif
Aucune proposition de RDV pour un homme avec une femme compatible ayant bloqué cet homme
Aucune proposition de RDV pour un homme avec une femme compatible avec laquelle il a un RDV à venir
Aucune proposition de RDV pour un homme avec une femme compatible avec laquelle il a déjà eu un RDV non concluant
Étant donné 2 utilisateurs Alice et Bob
Et Alice aime la cuisine Thai et les spaghettis bolognaise
Et Bob aime la cuisine Thai et les pizzas
Et Alice aime le cinéma et Kubrick
Et Bob aime le cinéma et Lelouche
Et Alice est institutrice
Et Bob est fleuriste
Et Bob parle allemand et anglais
Et Alice aime le shopping
Et Bob aime faire de la varappe
Et Alice a 25 ans
Et Bob a 29 ans
Quand Bob clique sur le bouton de recherche rapide "Tente le coup!"
Alors dans la table qs_quick_search le ration de matching est > 0.75
Et la photo dans une balise div "mini-photo-android" d'Alice s'affiche
Et la carte .......
Le métier n'est pas impliqué pour suivre avec ces critères techniques dans le Alors.
Reformuler pour revenir à de la compréhension partagée (on peut conserver les détails ailleurs pour implémenter des tests auto ou créer des jeux de données de test).
Étant donné 2 utilisateurs Alice et Bob
Et Alice aime la cuisine Thai et les spaghettis bonognaise
Et Bob aime la cuisine Thai et les pizzas
Et Alice aime le cinéma et Kubrick
Et Bob aime le cinéma et Lelouche
Et Alice est institutrice
Et Bob est fleuriste
Et Bob parle allemand et anglais
Et Alice aime le shopping
Et Bob aime faire de la varappe
Et Alice a 25 ans
Et Bob a 29 ans
Quand Bob clique sur le bouton de recherche rapide "Tente le coup!"
Alors Alice lui est proposée
Sur la partie "Étant donné", par exemple, on n'a pas besoin de tout ce qui est dans le profil pour déterminer la compatibilité, et certains détails sont trop fin (on peut conserver ces détails ailleurs pour les jeux de donnés, voir les enrichir au fil de la discussion)
Étant donné 2 utilisateurs Alice et Bob
Et Alice et Bob partagent les mêmes goûts culinaires
Et Alice et Bob partagent les mêmes goûts culturels
Et Alice aime le shopping
Et Alice et Bob ne partagent pas les mêmes loisirs
Et Alice et Bob sont dans la tranche d'âge souhaitée par les deux
Quand Bob clique sur le bouton de recherche rapide "Tente le coup!"
Alors Alice lui est proposée
On remonte mieux à l'intention.
Comment on sait qu'ils sont compatibles ? Le métier : parce qu'il y a 3 critères sur 4 OK. (Ah, c'est pour ça les 0.75).
Étant donné 2 utilisateurs Alice et Bob
Et Alice et Bob sont compatibles sur les critères culinaires, culturels et de tranche d'âge
Quand Bob clique sur le bouton de recherche rapide "Tente le coup!"
Alors Alice lui est proposée
Rendre expressif en introduisant le langage métier.
L'exercice fait émerger les concepts et le langage métier (en remarquant et supprimant les duplications par exemple), le métier les connait déjà mais là on les comprend ensemble.
On n'écrit pas une règle métier, on écrit un exemple.
Est-ce que mon PDG peut lire mes critères d'acceptation ? S'il ne peut pas c'est que ce n'est pas assez expressif (trop de détails). Rester à 3 / 4 lignes dans les scénarios.
Pas besoin du testeur ? Si, le testeur a un savoir faire pour faire des tests exploratoires, il a des techniques d'investigation, ce qui est différent des tests d'acceptation. Et il peut tester l'ensemble de l'application.
Donner la prédominance aux compétences par rapport au rôle.
Les résistances :
- Est-ce qu'on en a besoin ?
- expérimenter en 1h30 pour convaincre sur des specs sèches.
- Trois personnes c'est cher, est-ce qu'on peut avoir une seule personne qui
écrit et ensuite juste une validation ?
- Non ! Biais de confirmation, et on passe à côté de l'échange d'informations essentielles.