Il y a plusieurs facteurs à prendre en compte. Pour illustrer ces points, je vais utiliser un exemple de champ dans lequel un utilisateur doit entrer un pourcentage dans le contexte d'un quota défini pour une tâche spécifique en termes de quantité d'espace disque que la tâche peut utiliser. 0% signifie que la tâche ne pourra rien écrire sur le disque. 100% signifie que la tâche peut occuper tout l'espace disque. Les valeurs intermédiaires signifient ce qu'elles signifient.
En tant que développeur, vous estimez probablement que les valeurs acceptables sont [0, 1, 2, 3, 99, 100], et tout le reste est idiot. Voyons pourquoi les utilisateurs pourraient toujours entrer ces valeurs «stupides».
Les typos
%^
L'utilisateur saisissait la valeur 56 mais avait appuyé par erreur Shiften le saisissant (par exemple, sur le clavier français, vous devez appuyer sur Shiftpour saisir les chiffres et l'utilisateur basculait constamment entre un clavier français et un QWERTY).
De la même manière, vous pouvez obtenir un numéro, avec quelque chose après ou avant, ou entre les deux:
56q
Ici, l'utilisateur était probablement en train d'entrer les chiffres, suivis d'un onglet pour passer au champ suivant. Au lieu d'appuyer sur ⇆ , l'utilisateur a appuyé sur la touche du voisin.
Malentendus et interprétations erronées
Une entrée vide est probablement la plus courante. L'utilisateur a imaginé que le champ était optionnel ou ne savait pas quoi mettre dans ce champ.
56.5
L'utilisateur pensait que les valeurs en virgule flottante étaient acceptables. Soit l'utilisateur se trompe, et l'application doit expliquer poliment pourquoi seules les valeurs entières sont acceptées, ou les exigences initiales sont fausses et il est logique de laisser les utilisateurs entrer des valeurs en virgule flottante.
none
L'utilisateur a mal compris que lorsqu'on lui demandait l'espace que la tâche pourrait occuper, l'application s'attendait à un numéro. Cela pourrait indiquer une mauvaise interface utilisateur. Par exemple, demander à l'utilisateur "Combien d'espace disque la tâche devrait-il occuper?" Invite à ce type d'entrée, alors qu'un champ suivi du signe de pourcentage recevrait moins de ce type d'entrée, car "aucun%" ne génère pas beaucoup de sens.
150
L'utilisateur a mal compris ce que le pourcentage signifie dans ce cas. Peut-être que l'utilisateur voulait dire que la tâche peut occuper 150% de l'espace actuellement utilisé. Si un disque de 2 To, 100 Go sont utilisés, la tâche peut utiliser 150 Go. Encore une fois, une meilleure interface utilisateur pourrait aider. Par exemple, au lieu d’avoir un champ de saisie nu auquel est ajouté un signe de pourcentage, on pourrait avoir ceci:
[____] % of disk space (2 TB)
Lorsque l'utilisateur commence à taper, le texte à la volée change pour devenir ceci:
[5___] % of disk space (102.4 GB of 2 TB)
Représentations
Les grands nombres ou les nombres avec une virgule flottante peuvent être représentés différemment. Par exemple, un certain nombre 1234,56 pourrait être écrit comme ça: 1,234.56
. Selon la culture, la représentation textuelle du même nombre serait différente. En français, le même nombre sera écrit comme ceci: 1 234,56
. Vous voyez, une virgule où vous ne vous attendez pas, et un espace.
Attendre toujours qu'un format spécifique en utilisant des paramètres régionaux spécifiques vous cause des problèmes tôt ou tard, car les utilisateurs de différents pays auront des habitudes différentes d'écriture des chiffres, des dates et des heures, etc.
Les humains contre les ordinateurs
Twenty-four
Les humains ordinaires ne pensent pas de la même manière que les ordinateurs. "Vingt-quatre" est un nombre réel, indépendamment de ce qu'un PC vous dirait.
Bien que (1) la plupart des systèmes ne gèrent pas du tout ce type d'entrée et (2) presque tous les utilisateurs n'imaginent pas entrer un nombre écrit en lettres entières, cela ne veut pas dire qu'une telle entrée est stupide. Dans À propos de Face 3 , Alan Cooper souligne que le fait de ne pas manipuler de telles entrées est révélateur de l'incapacité des ordinateurs à s'adapter aux humains. Idéalement, l'interface devrait pouvoir gérer ces entrées correctement.
La seule chose que je dois ajouter au livre d'Alan Cooper est que, dans de nombreux cas, les nombres sont écrits en chiffres par erreur . Le fait que les ordinateurs s’attendent à ce que leurs utilisateurs fassent des erreurs (et ne tolèrent pas un utilisateur qui écrit correctement) est agaçant.
Unicode
5𝟨
Unicode réserve ses propres surprises: des personnages qui pourraient se ressembler ne sont pas les mêmes. Pas convaincu? Copiez-collez "5𝟨" === "56"
dans les outils de développement de votre navigateur et appuyez sur Enter.
La raison pour laquelle ces chaînes ne sont pas égales, c'est que le caractère Unicode 𝟨
n'est pas identique au caractère 6
. Cela créerait une situation dans laquelle un client en colère appellerait, disant que votre application ne fonctionnait pas, fournissant une capture d'écran d'une entrée qui semblait légitime, et votre application prétendant que l'entrée était invalide.
Pourquoi quelqu'un voudrait-il entrer un caractère Unicode qui ressemble à un chiffre, demandez-vous? Bien que je ne m'attende pas à ce qu'un utilisateur en saisisse un par inadvertance, un copier-coller provenant d'une source différente peut le provoquer, et j'ai eu le cas où l'utilisateur a réellement fait un tel copier-coller d'une chaîne contenant un caractère Unicode qui ne le ferait pas. apparaissent à l'écran.
Conclusion
Ce sont les cas que vous obtenez pour un champ de saisie de numéro élémentaire. Je vous laisse imaginer ce que vous pouvez avoir à manipuler pour des formulaires plus complexes, tels qu'une date ou une adresse.
Ma réponse est axée sur ce que vous avez appelé une entrée «stupide». Les tests ne consistent pas à vérifier les chemins heureux; Il s'agit également de vérifier que votre application ne se casse pas lorsqu'un utilisateur malveillant entre intentionnellement des choses étranges, en essayant de le casser. Cela signifie que lorsque vous demandez un pourcentage, vous devez également tester ce qui se passe lorsque l'utilisateur répond avec une chaîne contenant 1 000 000 caractères, un nombre négatif ou une table de Bobby .