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 :
-
liste les cas possibles ;
-
choisit des valeurs « arbitraires » pour les paramètres (d'entrée) ;
-
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 |