Note perso : comment détecter la triche dans un logiciel de test en ligne ?
Détecter un copier/coller (évidemment)
Détecter quand la page n'est plus en focus <A href="https://stackoverflow.com/questions/1060008/is-there-a-way-to-detect-if-a-browser-window-is-not-currently-active" rel="nofollow">https://stackoverflow.com/questions/1060008/is-there-a-way-to-detect-if-a-browser-window-is-not-currently-active</A>
Ce qui signifierait probablement de la triche, une personne qui va checker un autre document ou faire une recherche google. (ou alors qui va faire autre chose pendant le test)
Détecter une pause (plus rien qui ne bouge pendant un certain temps, avec derrière un pic de saisie de contenu)
Limiter le temps (15/20 secondes par question de QCM, 1 minute max par question ouverte) pour rendre quasi impossible la triche
Si c'est un logiciel Windows, demander à l'utilisateur de n'avoir que le logiciel d'ouvert, et surveiller si d'autres process type firefox/chrome sont lancés. Ou encore prévenir l'utilisateur que son écran sera enregistré pendant toute la durée du test.
Prévenir l'utilisateur au moment du départ que le test est surveillé (copier/coller, etc.) et que la moindre activité suspecte sera éliminatoire (il vaut mieux avoir 9/20 que 0/20 non ?)
Utiliser la webcam et la conjuguer à la détection d'activité. Quelqu'un qui regarde ailleurs pendant le test...
Comment faire ça sans que la personne puisse le bloquer via le JS ? Envoyer toutes les X secondes la position du curseur et le texte saisi au serveur, qui lui calculera les stats (et pas un JS qui est modifiable par l'utilisateur).
Ou encore obfusquer le JS. Mettre un timer dans tous les cas. Générer un JS différent à chaque fois
EDIT : on m'a remonté que la plupart de ces moyens étaient contournables via une VM. C'est aussi le cas en modifiant le JS, en forgeant la page, en faisant le test à deux, etc. Il y a toujours des moyens de tricher, et un test en ligne n'est pas censé être éliminatoire, mais doit juste servir à donner une idée, dans l'idéal :)