Qu'est-ce que TestRunner ?

Il s'agit d'un site d'aide à l'évaluation sur Internet. Le principe de fonctionnement est simple : le formateur dispose d'une base d'exercices déjà rédigés (et associés à un barème de correction), il en sélectionne quelques-uns de façon à construire un énoncé et ses élèves passent ce test à l'issue duquel ils sont auto corrigés et notés immédiatement par TestRunner. Toutes les réponses et les notes sont enregistrées sur le serveur, et le formateur peut après coup consulter des tableaux récapitulatifs donnant les résultats des élèves, ainsi que les notes obtenues par l'ensemble des candidats aux différents savoir-faires impliqués dans le test. Le formateur peut aussi sur ce site, et uniquement dans le navigateur, rédiger des exercices qui seront ajoutés immédiatement à la base et mis à disposition de tous les utilisateurs.

TestRunner est juste une aide, et ne fait pas la vaisselle ni même le café

Le webmaistre de ce site (vous permettez qu'il dise "je" à partir de maintenant ?) n'est pas du tout convaincu par tout ce qui se fait actuellement dans le domaine de l'enseignement à distance, avec souvent comme lemme ou corollaire cette idée très américaine que tout peut s'apprendre et se faire à partir d'un clavier, d'une souris et d'une carte bancaire.
J'ai juste essayé ici de réaliser un outil à partir duquel l'enseignant pourra tester ses élèves sur différents savoir-faires. Il ne s'agit pas de remplacer les outils "traditionnels" d'évaluation dont dispose le formateur (devoir sur table, devoir maison, td, etc...) mais bel et bien de compléter sa panoplie.

Le moins de binaire et le plus d'ouverture possible

La plupart des sites ou logiciels dédiés ont une façon très binaire de traiter l'évaluation et c'est ce raisonnement en "vrai/faux" que j'ai voulu éviter en mettant en ligne TestRunner : en clair, si un item de type "QCM" compte 5 cases à cocher, rien n'interdit au rédacteur de l'exercice d'examiner tous les cas de réponses possibles (ici 32) en attribuant suivant le cas la note maximale, ou une partie de cette note, ou 0. L'implémentation d'items de type "cadres de texte" ajoute plus d'ouverture en ce sens que le candidat n'a plus, contrairement aux questions à choix multiples, son jugement "parasité" par la présence de mauvaises réponses.

Une auto-correction ciblée et un rapport détaillé

J'ai tenu à mettre l'accent sur l'auto-correction afin que l'élève puisse trouver dans le corrigé proposé par TestRunner des commentaires non standards et construits autour de ses propres réponses. Côté formateur, la page de récapitulation des résultats donne non seulement les résultats détaillés de chaque élève, mais propose un tableau mettant en valeur les notes globales obtenues par tout le groupe aux différents savoir-faires. Cet outil permet ainsi à l'enseignant de se faire une idée claire et précise des difficultés du groupe et des notions correctement assimilées.

Un lieu d'échange libre et gratuit

Tout exercice déposé dans la base TestRunner n'est protégé par aucun droit d'auteur. Tout le monde profite du travail des autres et chacun peut utiliser, pour construire un énoncé de test, la totalité des exercices déjà réalisés par les collègues. Pour créer un nouvel exercice, tout utilisateur peut soit partir d'une "feuille blanche", soit dupliquer un exercice existant pour le modifier selon sa volonté. Dans ce dernier cas, il va sans dire que la charte d'utilisation de ce site prévoit qu'un exercice ne doit être dupliqué que lorsqu'il s'agit de transformer réellement l'énoncé (il ne s'agit pas de dupliquer pour ajouter une virgule !).
J'ai essayé de mettre sur pied un contenant qui puisse proposer le maximum d'ouverture, mais il ne s'agit que d'une boîte : il n'y aura dedans que ce que les gens veulent bien y mettre... J'espère qu'à moyen terme ce site va vivre et devenir, à travers la mise en commun des ressources, un lieu d'échange de points de vues et de pratiques.

Qui fait TestRunner ?

J'allais oublier les présentations... Je m'appelle Eric Hakenholz, je suis enseignant de mathématiques au collège de Vincendo (Ile de La Réunion) et je travaille sur TestRunner depuis janvier 98. Depuis la rentrée 2001, je mène ce projet dans le cadre d'un Atelier de l'IREM (Institut de Recherche sur l'Enseignement des Mathématiques) de la Réunion.
Après ces longs mois de programmation, je vais essayer de former un groupe de collègues, toujours dans le cadre de cet atelier, à la publication d'exercices sur TestRunner. Dans un premier temps, il s'agira exclusivement de collègues de mathématiques, et toutes les productions de ce groupe devraient se retrouver dans la base par le biais d'exercices signés "irem".

 

 

L'aspect technique

L'expérience FileMaker

Si le développement de ce site a été si lent, c'est en partie parce que la technologie utilisée de 1998 à 2000 ne convenait pas pour ce type de projet. Pendant deux années, j'ai utilisé un logiciel propriétaire de publication web de bases de données (à savoir FileMaker et son WebCompanion), et il m'a fallu ces deux années là, et de très nombreuses pages de code, pour m'apercevoir que toutes les fonctionnalités dont j'avais besoin pour mon projet n'étaient pas dans la boîte...
Venait se rajouter à la catastrophe le fait que FileMaker n'est pas gratuit :-(( et qu'il devait être installé chez l'hébergeur en tant que serveur web pour que cela puisse fonctionner : je me demande encore comment j'ai pu m'embarquer là-dedans... Deux années d'erreur, donc, et une grosse fatigue de trois mois, avant que j'étudie d'autres technologies moins propriétaires et plus efficaces : j'ai trouvé php (et finalement je n'ai trouvé QUE le php !).

Côté serveur : PHP, sans MySQL

Vu de l'extérieur, TestRunner ressemble tout à fait à un site de publication de bases de données. La vérité est qu'il n'y a dans ce site AUCUNE base de données, aucune requête de recherche, de modification, de création de fiches, il n'y a rien de tout cela. Il y a en fait sur le serveur une multitude de dossiers et sous-dossiers contenant des fichiers html ou txt décrivant les exercices, les tests définis par les utilisateurs, les réponses des élèves, etc... Je n'utilise le php que lorsque ceci est absolument nécessaire, à savoir principalement lorsque il s'agit d'écrire sur le serveur. Comme ce qui est produit par PHP est essentiellement du HTML, la lecture se fait par le serveur web Apache "naturel".
J'ai fait ce choix, entre autres choses, pour des raisons de rapidité : si on crée deux pages identiques, l'une avec l'extension .php et l'autre en .html, les temps de lecture peuvent être très différents au détriment du .php. Cela s'explique simplement de la manière suivante : lorsqu'on atteint une page ".php", le serveur web Apache comprend qu'il y a sans doute du code php dedans et va "digérer" et interpréter tout le source (à la recherche de toute partie de code php) avant de le renvoyer au navigateur client. Par contre, lorsqu'on cible une page ".html", le serveur ne se pose aucune question et renvoie directement le source au navigateur. Cette remarque est générale et ne concerne pas que le php : il en va de même des .asp, des cgis, des .pl, et de toutes les technologies "bases de données".
Sur TestRunner, l'exercice est "encapsulé" dans du html, un peu à la manière de ce qui se fait avec xml, et c'est le client qui se charge de la restitution graphique (style, décorations, position du texte et des images, ...). Ainsi, un exercice ne pèse que 1 ou 2 Ko et est renvoyé immédiatement par Apache sans être digérée. Vous pouvez cliquer ici pour voir un exemple d'exercice tel qu'il se trouve sur le serveur, sans mise en page de la part du client.
Voilà pourquoi, par exemple, la recherche par discipline/niveau/chapitre des exercices, ainsi que leur visualisation est si rapide (vous ne trouvez pas ??? ah bon....).

Côté client : DOM à tous les étages

Toute la navigation sur ce site (menus hiérarchiques de la frame de gauche, construction et visualisation des exercices, etc...) est basée sur le Document Object Model (niveau 1) du W3 consortium. Cette technologie n'a été implémentée que dans les navigateurs récents, voilà pourquoi aucun navigateur antérieur au versions IE5 et NS6 ne peut assurer une visualisation correcte de ce site. La programmation DOM est la seule capable de rajouter dynamiquement du HTML une fois la page chargée : TOUT ce qui compose la page peut-être modifié, supprimé ou étendu "onload". On peut changer du texte, des liens, des tableaux, des forms... Pour ceux qui veulent en savoir plus sur le sujet, je met à votre disposition trois liens vers des pages qui ont constitué mes trois premiers TP DOM : Algorithme d'Euclide | Changement d'Applet CabriJava | Menus Hiérarchiques. Ce dernier lien constitue le moteur de la navigation sur ce site : si vous le souhaitez vous pouvez éplucher et utiliser les sources en téléchargeant l'ensemble du dossier zippé (8Ko).