Test de frappe

De Disposition de clavier francophone et ergonomique bépo

Fin 2010 : le Dactylotest est en développement, tout comme cette page de documentation. Merci d'avance pour vos idées, vos contributions ou autres retours pour améliorer cet outil.

Cette page recense les diverses idées autour d’un test de frappe en ligne adapté à bépo. Tazzon est l’initiateur du projet (et seul développeur pour le moment).

Le code source est disponible sur le dépôt subversion du projet à l'adresse : ?? (à compléter)

Historique du projet

http://www.lecturel.com/ est un outil en ligne très sommaire et peu adapté à bépo. Il semble pourtant plus utilisé par les nouveaux utilisateurs que Xul Typist de Kaze, qui a pourtant intégré certains exercices d'apprentissage.

Sur IRC, les discussions à propos d’un nouvel outil en ligne revenaient fréquemment. Le premier test de frappe de Tazzon a de suite reçu de bons retours. À force d'en parler, on a voulu un peu plus de l'outil et l'idée de le développer en commun pour le projet bépo est venue. Cette page sert encore à mettre en forme les idées des uns et des autres et adapter le test à nos besoins réels.

La dernière version en ligne est accessible à cette adresse : http://tazzon.free.fr/dactylotest/.

Documentation partielle

Interface de la première version du dactylotest.

La première version permet de choisir la langue du texte et de sauvegarder quelques options pour adapter la typographie des textes à son utilisation. Comme lecturel le test se fait sur 500 mots. Après le test on obtient des statistiques de sa session : vitesse de frappe, précision, types d'erreurs commise (couleurs), conseils.

Une nouvelle version propose de créer un fantôme de sa session localement ou sur le serveur et de voir un replay (voir page de discussion). Lors d'un enregistement de fantôme sur le serveur, n'importe quel utilisateur peut alors utiliser les fantômes de ceux qui les y ont enregistré. L'enregistrement en local permet de l'utiliser mais il sera perdu à la fermeture de la page ou écrasé par la création d'un nouveau fantôme, qu'il vienne du serveur ou d'une création local.

Développement du test

Votre aide est nécessaire pour faire avancer le dactylotest ! Testez !

Tout n'est pas forcément à prendre/faire, mettez vos idées en vrac, les idées doivent être débattu sur la page de discussion, il faut de la main d'œuvre pour les mettre ensuite en pratique. Globalement :

  • il faudrait commencer par voir ce qu'il y a tirer des différents logiciels existants/test en ligne (type de test, stats utilisées, etc.)
  • penser à l'ergonomie et l'accessibilité du site

Aspect ludique/pédagogique

Essayer d'intégrer de penser à tous les types d'utilisateurs possibles (toutes les étapes de l'apprentissage jusqu'à pouvoir contenter les « racers » à >100 mpm ou ceux qui sont en plein apprentissage et ont besoin de textes variés pour progresser) :

  • OK check mark.png faitpédagogique : intégrer les exercices d'apprentissage bepo
  • ludique : animer le test (par ex. deux animations sous Taptouche : bon ou mauvais), jeu sous forme de micro-compétition (contre soi-même voir multijoueur comme Typeracer)
  • côté utilitaire après l'aspect pédagogique (benchmark, test de perf, outil en ligne sérieux) : proposer plusieurs types tests différents, réflexes lettre par lettre débutant, home row seule… jusqu'à un test 500 caractères, test x minutes, test numérique… (quelques variables suffisent à créer certaines libertés). Chaque test pouvant être pratiqué à l'unité, un test d'ensemble générant une note globale (principe des petits jeux de QI sur console).
  • OK check mark.png faitsouligner ou surligner la faute. Sinon, quand, comme moi, on ne regarde que ce que l’on est en train de recopier, difficile de voir où est l’erreur, ça oblige à revenir en arrière doucement en attendant que le curseur change de couleur. Ce serait une facilité pour obtenir un meilleur score, mais ce serait, aussi, didactique.

Disposition(s?)

  • (idée de jd_) support live du bépo (= je suis en azerty je peux tester bépo) :
    • commencer par des phrases sur la rangée de repos
    • étendre à l'alphabet
    • voir ce qu'on peut supporter au maximum du bépo en « live ».
  • carte d'accessibilité/type de clavier (droit/tm) comme sur Xul typist pour stat de distance et « tracabilité » des doigts
  • support azerty/leboutte/dvoraj

Textes

  • choix des langues supportées
  • texte pour promouvoir bépo en français
  • import de WP ou autre base de texte francophone
  • import utilisateur (c/c)
  • statistiques sur le texte fonction de la dispo (cf. par ex. les outils de Comparateur_de_dispositions ou http://www.tomestla.info/bepo/ )
    • est-ce qu’à partir de ces statistiques (fréquence de digrammes rares, % d’alternance, % sur la rangée de base présence de chiffres, de caractères rares, etc.) on pourrait imaginer donner une note de difficulté aux textes ?
    • fonction de la note ci-dessus, utiliser le test pour l’apprentissage…
  • affiner les choix typo fonction des langues

Statistiques de la session

  • cpm/mpm/nbre d'erreurs/précision
  • viscosité/fluidité > comment la calculer
  • note par main/doigt
  • temps de réaction
  • distance parcourue, déplacements des doigts
  • replay de la session

Calculs de base

Vitesse de frappe

Durant la session de frappe, on conserve les temps « Δt » entre chaque caractères « i » frappés pour les exploiter dans les calculs.

Dans le cas de la vitesse de frappe, il est alors simple d'additionner tous les temps Δt(i) et ensuite et de le diviser par le nombre de caractères « α » pour obtenir le nombre de coup par seconde :

         α
cps = ————————
      i=α
       Σ Δt(i)
      i=1

En réalité le nombre de coups par seconde (qui est la fréquence de frappe moyenne) est le seul calcul qui soit réellement un indice de vitesse. Le nombre de mots par minute n'est lui qu'un indication en fonction de ce qui est choisi pour le nombre de caractère par mot (le plus souvent 5) d’ailleurs on peut mettre un véritable indicateur en calculant effectivement le nombre de mots ce qui forcerait à rajouter des textes et avoir une idée du nombre moyen de frappe par mot (fonction des langues).

La fluidité

En ce qui concerne la fluidité, on connait le fréquence le frappe moyenne (cps pour ceux qui ont suivi) et on peut également calculer la moyenne de la somme des fréquences de frappe (mal de crane en perspective ? :P), je vais la désigner par « msf » (ce nom est totalement arbitraire) :

      1  i=α   1
msf = — × Σ  —————
      α  i=1 Δt(i)

Une fois qu'on a cps et msf, on peut calculer quel est le rapport entre les deux (et en obtenir un pourcentage, c'est plus beau à présenter), ce sera la fluidité « fl » :

     cps
fl = ———
     msf
La précision

Le test a utilise pour l'instant un système de calcul de la précision peu adapté. Ce calcul se fait en prenant le nombre de fautes de frappe (le second résultat donné) que l'on divise pour le nombre de caractères frappés pour avoir un calcul d'imprécision, le tout soustrait de 1 pour avoir au final la précision.

                 err
precision = 1 − ——————
                nb_car

après quelques discussion sur la canal IRC, il s'avère que cette méthode (utiliser le nombre d'erreurs de frappe) pour avoir le nombre d'erreurs n'est pas idéale. La formule précédente reste correcte.

OK check mark.png fait. L'idée est d'utiliser le calcul de distance de Damerau-Levenshtein pour avoir une quantification des erreurs plus proche de la réalité.

Voici les résultats obtenus avec un texte frappé où les erreurs ont été passées dans un script pour en extraire une distance de Damerau-Levenshtein.

Le test donnait :

Erreurs : 13
Fautes de frappe : 32
précision : 93.6%

Le calcul de distance de Damerau-Levenshtein donne une distance de 21 ce qui fait donc une précision de 95.8% (1−21÷500).

Pour information, le test de lecturel aurait donné une précision de 87% car il considère qu'une erreur est un mot (5 caractères).

Conclusion : cette méthode de calcul semble donner des résultats plus proche de la réalité et sera intégrée sur dactylotest pour remplacer l'actuelle.

Types d'erreurs

  • double frappe râtée (nn mm ll) ;
  • majuscule râtée ;
  • caractères non alphabétique râté (ponctuation en gnl) ;
  • espace oublié.

Records/logs

  • enregistrer des records : perso/par texte/par type de test
  • les spammer sur irc « X a battu le record de Robipo sur le texte n° 482 avec 289 MPM, il accède au rang de bépodactyl-o-mains-d'argent ! »

Accessibilité

  • vérifier l'accessibilité du test sur les différents navigateurs

Doctype

Le Doctype n'est pas précisé, à mettre avant tous caractères :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">

Dans la partie head

Omission du title

<title>Bépo : Vitesse de frappe</title>

Omission de l'encodage

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

--David96 16 avril 2011 à 17:16 (CEST)

Accents morts sous MacOS

Mise en place d'une fonction pour éviter les erreurs liées au accents morts qui sont visibles avant d'être complétés par la lettre.