0%
Faire vérifier le travail par les tests

Vérifier par les tests

Un test rouge d'abord, sinon vous ne savez pas ce qui a été corrigé.

10-15 min

Faire vérifier le travail par les tests

L'agent annonce que le bug est corrigé et ajoute un test. Le test passe. Vous fermez le ticket. Deux semaines plus tard, le même incident revient en production, à l'identique. En reprenant le diff, vous constatez que le test ajouté ne passait pas par le chemin de code concerné : il vérifiait qu'une fonction voisine renvoyait bien un dictionnaire. Il aurait passé avant la correction exactement comme après. Vous n'avez jamais eu de preuve que quoi que ce soit ait été réparé, seulement un voyant vert produit en même temps qu'une modification.

C'est le point le plus mal compris de l'usage d'un agent. Un test écrit après une correction, par celui qui vient de faire la correction, ne teste pas le bug : il teste le code tel qu'il vient d'être écrit. Le raisonnement de l'agent est circulaire, et il l'est sans intention de tromper — il observe le comportement présent de son propre code et l'inscrit comme attendu. Un test dont on n'a jamais vu l'échec ne démontre rien du tout. La discipline qui règle ce problème est ancienne et tient en une phrase : le rouge avant le vert. Elle change de statut avec un agent : de bonne pratique optionnelle, elle devient le seul moyen de savoir si la correction a un rapport avec le problème.

Commentaires

Les commentaires sont alimentés par GitHub Discussions

Connectez-vous avec GitHub pour participer à la discussion

Lien copié !