𝗖𝗵𝗮𝗾𝘂𝗲 𝘁𝗲𝘀𝘁 𝗮 𝗿é𝘂𝘀𝘀𝗶. 𝗟'𝘂𝘁𝗶𝗹𝗶𝘀𝗮𝘁𝗲𝘂𝗿 𝗻'𝗮 𝘁𝗼𝘂𝘁𝗷𝗼𝘂𝗿𝘀 𝗽𝗮𝘀 𝗽𝘂 𝗷𝗼𝘂𝗲𝗿 𝗮𝘂 𝗷𝗲𝘂
« L'API renvoie 200 OK ! »
Lors de mon premier emploi d'ingénieur, j'ai constaté un problème majeur. Mes seniors adoraient les tableaux de bord. Ils adoraient une couverture de code élevée. Ils pensaient que si les tests étaient au vert, le produit fonctionnait.
Ils avaient tort.
Le fait que le code fonctionne et le fait qu'un humain obtienne ce dont il a besoin sont deux choses différentes. Un bouton peut renvoyer un code de succès tout en laissant l'utilisateur bloqué sur un écran défectueux.
J'ai conçu un moyen de trouver ces impasses d'expérience utilisateur (UX) sans exécuter l'application. Je l'appelle le « two-agent static walkthrough » (parcours statique à deux agents). Il utilise deux agents IA qui communiquent en boucle.
- L'agent A est l'utilisateur. Cet agent a un objectif spécifique. Il est têtu. Il n'abandonne pas après une seule erreur. Il continue d'essayer différents chemins.
- L'agent B est l'application. Il possède un accès en lecture au code source réel. Il trace le chemin du code de chaque action de l'utilisateur. Il rapporte exactement ce que fait le code. Il cite le fichier et le numéro de ligne. Il ne peut pas imaginer des choses qui n'existent pas dans le code.
Je l'ai testé sur un générateur de mini-jeux IA défectueux. Voici ce qui s'est passé :
Tour 1 : Le bouton a échoué. L'utilisateur a cliqué sur « Generate ». Le code a envoyé la requête vers un ancien endpoint obsolète au lieu du nouveau. Les tests ont réussi car l'ancienne API fonctionnait toujours.
Tour 2 : Le vide incliquable. L'utilisateur a essayé de cliquer sur le résultat. Le code a placé le texte dans une simple boîte sans gestionnaire de clic (click handler). Rien ne s'est passé.
Tour 3 : La fausse bénédiction. L'utilisateur a tenté de corriger l'erreur. Le backend a échoué à cause d'un ID manquant. L'écran a affiché un message de succès vert alors que le système était planté.
Tour 4 : L'espoir tronqué. L'utilisateur a tenté de copier le code manuellement. L'API a coupé le texte à mi-chemin. Le code était cassé.
L'utilisateur a abandonné.
La plupart des tests unitaires vérifient seulement si un endpoint renvoie 200. Ils ne vérifient pas si l'utilisateur atteint réellement son objectif.
Comment l'utiliser :
- Rendez l'agent utilisateur têtu. Les vrais bugs se cachent derrière la première erreur.
- Ancrez l'agent application dans le code réel. Cela transforme le jeu de rôle en un véritable rapport de bug.
- Utilisez cela comme complément à vos tests. Cela permet de trouver les failles là où votre logique rencontre la réalité.
Cette méthode est statique et peu coûteuse. Elle s'exécute avant même que vous n'écriviez le moindre test fixture. Elle transforme le « le code fonctionne » en « l'utilisateur réussit ».
Source: https://dev.to/terum/every-test-passed-the-user-still-couldnt-play-the-game-388o
Optional learning community: https://t.me/GyaanSetuAi
