Fondamentaux du test, revus pour l'automatisation · Leçon 2 sur 5

Valeurs limites & partitionnement par équivalence comme entrées d'automatisation

Vous le faites déjà au feeling — vous ne l'aviez juste pas encore nommé. Deux techniques transforment « quelles valeurs dois-je tester ? » en une liste courte et délibérée. Bonne nouvelle : c'est surtout du bon sens.

Par Shahriyar · Mis à jour

L'idée, en une ligne

Regroupez les entrées que le système traite pareil, puis testez-en une de chaque groupe — plus les valeurs juste aux bords. Les deux noms de ces gestes sont le partitionnement par équivalence et l'analyse des valeurs limites.

Pourquoi les bords comptent

Les bugs adorent les bords. Le faux pas le plus courant est une erreur off-by-one — quelqu'un a écrit « inférieur à » là où il voulait « inférieur ou égal à ». Ça se cache pile au min et au max. Donc pour chaque bord, testez le bord lui-même et la valeur juste de chaque côté.

Voyez-le à l'œuvre

Chaque valeur devient une ligne dans un test paramétré — ça veut juste dire une fonction de test alimentée par une table d'entrées, pour qu'une courte liste pilote de nombreuses vérifications. Changez la règle, éditez la table, terminé.

▸ try it
import pytest

# Rule under test: age must be 18..65 inclusive
def is_eligible(age):
    return 18 <= age <= 65

# One value per bucket, plus the values around each edge
@pytest.mark.parametrize("age, expected", [
    (17, False),   # just below min  -> too young
    (18, True),    # the min edge itself
    (19, True),    # just above min
    (40, True),    # plain valid value
    (65, True),    # the max edge itself
    (66, False),   # just above max  -> too old
])
def test_eligibility_boundaries(age, expected):
    assert is_eligible(age) == expected

Lisez-le de haut en bas : une petite règle, et une table qui pique chaque compartiment et chaque bord autour. Cette table est tout votre plan de test, écrit noir sur blanc.

Avancé — nommez les classes d'abord

La vraie compétence n'est pas d'écrire le test — c'est de nommer les compartiments et les bords avant de toucher au code. Une fois que vous avez listé « trop jeune / valide / trop vieux » et marqué chaque bord, la liste du paramétrage s'écrit presque toute seule. Faites la réflexion sur papier, et le code devient une formalité.

Basé sur le guide Boundary Value Analysis & Equivalence Partitioning de Guru99 (aligné sur l'ISTQB)

Toutes les leçons de Fondamentaux du test, revus pour l'automatisation

  1. La pyramide des tests & les quadrants — quoi automatiser en premier
  2. Valeurs limites & partitionnement par équivalence comme entrées d'automatisation
  3. Tables de décision & transitions d'état
  4. Test basé sur les risques — décider quoi NE PAS automatiser
  5. Shift-left, shift-right & votre stratégie de test d'une page