Enseigner les tests unitaires aux débutants

by Laurent Cetinsoy published the 06/05/2024

Enseignement de la programmation aux débutants

Plus j’y réfléchis, plus je pense qu’il y a une une méthode fondamentale qui gagnerait à être enseignée aux débutants en programmation : 

Les tests unitaires

Pourquoi ?

Car comme disait Sénèque : “Il n’est point de vent favorables pour qui ne sait en quel port se rendre” 

Il devait donc être développeur car il savait que si on sait ce qu’on attend d’un programme, on a plus de chance de le coder bien ou d’en déceler les bugs. 

Et pour cela, la première étape est d'en définir les entrées, les sorties et leur type. Puis il est intéressant de savoir ce que va retourner le programme pour différents scénarios d’utilisation. Par exemple “si n = 3, je m’attends à ce que ma fonction factorielle retourne 6”

Passer par cette étape est un réflexe à acquérir pour devenir un développeur efficace. 

Et j’observe souvent des débutants qui se mettent à coder sans avoir suffisamment réfléchi à ces questions qui pourraient leur permettre de résoudre le problème plus vite ! 

Or lorsqu’on code un test unitaire on est naturellement amené à se poser la question “si ma fonction marchait, et qu’elle avait pour entrée X, que devrait-elle avoir comme valeur de retour ?” Il peut être intéressant de coder le test avant la fonction ! 

Ainsi, en enseignant les tests unitaires à des débutants et en proposant des exercices où il doit les coder, on les incite à acquérir des réflexes utiles plus rapidement.

De plus, avoir l’habitude de coder des tests est une pratique professionnelle répandue et saine. 

C’est donc probable que dans mes futurs cours d’introduction à la programmation, je demande non seulement la fonction mais le test de la fonction ! 

Et il y aura bientôt des exercices sur Nowledgeable où l’étudiant devra lui-même coder des tests de ses fonctions pour avoir juste. 

Commentez si vous aimeriez une séance de TD d’introduction aux tests  ou si vous avez un retour d'expérience sur ce sujet!