Et si on parlait test ?

En commençant par un peu de vocabulaire. “Tester” : en voilà un mot chargé… On l’utilise pour désigner des choses très différentes. Comme tout le monde j’ai une tolérance raisonnable pour l’ambiguïté et je suis habitué à la polysémie des mots du français, mais dans le cas du mot “tester”, je ne peux m’empêcher d’y voir une source de confusion.

Voici quelques significations du mot tester :

▷ tester : évaluer une condition. Par ex. sous linux, la phrase :

  test -f README.md 

évalue si le fichier README.md est présent dans le répertoire courant. Autre exemple, en assembleur 68000 l’instruction

  tst

compare son opérande à zéro et change les drapeaux du registre de codes de condition en conséquence.

△ tester : vérifier qu’une donnée, un état, un comportement est conforme à un attendu. Par exemple, la méthode :

  testApres12StrikesScoreEgale300()

vérifie que le code d’un calculateur de score au bowling est capable de comptabiliser correctement un “perfect”. Autre exemple, la page Cucumber intitulée

  TestLogin.feature

vérifie qu’étant donnés un identifiant et un mot de passe reconnus par le système, quand on saisit cet identifiant et ce mot de passe dans le système, alors on accède la page d’accueil du système (si vous trouvez cette explication verbeuse, songez qu’ici je vous fais grâce des détails).

▵ tester : (par extension) écrire du code de vérification automatisée.

“Maintenant qu’on a testé les strikes et les spares, il reste le cas du perfect.”

 ▽ tester  : essayer un produit, un artefact ou une idée, en vue d’y trouver des problèmes potentiels. Comme dans :

j’ai testé Overleaf pour créer mon cv en LaTeX et je suis mitigé

ou bien comme dans ce court dialogue:

— La QA a testé la reprise de facture avec un avoir et ils ont réussi à produire des factures avec des montants négatifs !
— Non mais c’est quoi leur problème, à la fin ?

▻ tester : mettre à l’épreuve, comme dans les tests d’intrusion par exemple.

Toutes ces acceptions font que lorsque j’entends dire qu’un projet présente “une couverture de tests de 75%”, j’ai du mal à retenir des questions.

Quel genre de “test” ? La “couverture” de quelle surface ? La proportion de quoi sur quoi ? Bref, ça m’intrigue.

Toujours est-il qu’en réaction à cette profusion de sens, l’industrie, cherchant sans doute à clarifier, a classifié : c’est la fameuse pyramide des tests, qu’on trouve sous diverses latitudes, munies de légendes variables, et qui est en passe de bientôt disparaître derrière la fumée des débats qu’elle provoque. Son problème à mes yeux, et qui n’est pas des moindres, c’est qu’elle ne parle que de COMMENT tester : automatiquement, unitairement, isolément, de bout en bout, “manuellement”, etc.

Personnellement j’utilise une autre classification, histoire de rafraîchir ma vision du sujet.

Stay Tuned ! 📡

pyramides publié sur Linked In le 22/08/2023