Aller au contenu

Tester son programme

Toute fonction (et tout programme) doit être testée afin de vérifier que son comportement est celui désiré par le programmeur.

Ces tests de validation, nombreux et bien choisis, ne peuvent pas garantir que le programme est exempt de bugs. Ils permettent toutefois de s'assurer que la fonction semble remplir son rôle dans les cas usuels.

Plan de test

Le plan de tests de validation a pour rôle de débusquer les bugs. Pour cela, il faut penser à tous les cas possibles (y compris les cas particuliers) qu'un premier raisonnement hâtif aurait pu oublier.

Sur le cahier, on représente ce plan sous la forme d'un tableau dans lequel on :

  1. liste les cas possibles ;

  2. choisit des valeurs « arbitraires » pour les paramètres (d'entrée) ;

  3. détermine à la main les valeurs des variables intermédiaires et des variables renvoyées par la fonction (ou le programme).

Par exemple (il peut y avoir plus ou moins de colonnes de chaque catégorie) :

cas parametre 1 parametre 2 variable interne 1 valeur attendue 1 valeur attendue 2
cas n°1 à (bien) choisir à (bien) choisir à déterminer à déterminer à déterminer
cas n°2 à (bien) choisir à (bien) choisir à déterminer à déterminer à déterminer
cas n°3 etc...

Il faudra systématiquement prévoir un plan de test pour les programmes rendus à l'enseignant. Ces tests devront couvrir les cas génériques et les cas extrêmes (égalité lors d'un test d'inégalité, situation où la boucle while ou for n'est pas exécutée, etc...).

On présente ci-après deux exemples de rédaction de ces tests dans le programme rendu :

Exemple n°1 - Plan de test d'une condition

La fonction meme_signe(a, b) doit renvoyer True lorsque a et b sont des entiers de même signe et False dans le cas contraire. On considère que 0 est positif et négatif.
Établir un plan de test pour cette fonction.

cas a b valeur renvoyée attendue
Un plan de test possible

cas a b valeur renvoyée attendue
a > 0 et b > 0 2 4 True
a < 0 et b > 0 -2 4 False
a > 0 et b < 0 6 -5 False
a < 0 et b < 0 -4 -2 True
L'un des deux vaut 0 0 -3 True

Exemple n°2 - Plan de test d'une boucle

La fonction somme_impair(n) doit renvoyer la somme des n premiers entiers impairs consécutifs.
Établir un plan de test pour cette fonction.

cas n valeur renvoyée attendue
Un plan de test possible


cas n valeur renvoyée attendue
aucun 0 0
un 1 1
plusieurs 4 1+3+5+7 = 16