Menu

Liste de contrôle de test des formulaires d'adresse internationaux par pays

Comment l'ordre des lignes d'adresse, les formats de codes postaux, les préfixes téléphoniques et la concaténation CJK diffèrent selon les pays, et où les formulaires internationaux cassent.

Publié le

  • formulaires
  • internationalisation
  • adresses
  • codes postaux

Un formulaire d’adresse qui fonctionne pour un pays est généralement un formulaire écrit pour le pays où vit son auteur. Ajoutez un deuxième pays et les hypothèses commencent à entrer en collision : combien de lignes une adresse nécessite, quel champ porte le code postal, si une région est obligatoire, et quels caractères l’utilisateur est autorisé à saisir. Les défaillances sont rarement des plantages. Ce sont des adresses qui s’enregistrent sans se plaindre et ne peuvent pas être livrées.

Ce guide est une liste de contrôle de ce qui diffère réellement dans le monde et de l’endroit où les formulaires cassent habituellement sur chaque point. Il est écrit pour la personne qui doit produire les cas de test, et chaque élément qu’il contient est quelque chose qu’un relecteur peut vérifier avant une livraison.

Ce qui change lorsqu’un second pays est ajouté

Trois hypothèses se brisent d’un coup, et elles tendent à se briser dans le même ordre pour presque tous les formulaires.

La première est la forme. Un modèle construit autour de ligne d’adresse un, ligne d’adresse deux, ville, État et code postal encode un nombre de lignes et un ordre de champs que tous les pays n’utilisent pas. La deuxième est l’obligation : des champs marqués obligatoires pour tout le monde sont faux pour les pays qui ne les utilisent pas. La troisième est le contenu : une règle écrite pour le format d’un pays rejette des valeurs légitimes d’un autre, et le rejet est au moins visible, ce qui est plus qu’on ne peut dire des alternatives.

La rupture silencieuse est la catégorie qu’il faut tester le plus durement. Un code postal tronqué, un code mis en majuscules alors qu’il était sensible à la casse, ou une ville placée dans le mauvais emplacement produisent tous un enregistrement qui s’enregistre proprement et échoue bien plus tard, dans un système de transporteur ou un calcul de taxe que personne dans l’équipe du formulaire ne peut voir. Le guide sur la validation et la normalisation des adresses est l’endroit où ce travail de nettoyage doit se faire.

Ordre des lignes d’adresse et nombre de lignes

Les adresses occidentales vont du plus petit au plus grand : nom, rue, ville, région, code postal, pays. Les adresses japonaises, chinoises et coréennes vont dans l’autre sens, du pays vers la préfecture ou la province, la ville et l’arrondissement, jusqu’à la rue et le bâtiment. Un formulaire qui affiche un modèle occidental figé et y comprime une adresse japonaise produit quelque chose qui se lit mal pour un humain, même lorsque chaque champ est rempli.

Le nombre de lignes varie aussi. Une adresse britannique nécessite couramment quatre ou cinq lignes, post town compris, une adresse américaine tient habituellement en trois, et une adresse japonaise a souvent besoin de deux lignes pour le détail du bloc et du bâtiment à lui seul. Deux lignes d’adresse générales constituent un minimum défendable, une seule ne l’est pas, et quatre est généreux plutôt qu’excessif.

Le libellé de la couche intermédiaire n’est pas le même mot partout non plus. C’est une province, une région, une préfecture, un oblast, un gouvernorat, un émirat, un département ou un comté selon l’endroit. Le libellé importe moins que le fait de permettre au champ d’être facultatif pour les pays qui n’en utilisent pas dans l’adressage postal. L’article sur le format d’adresse internationale traite les noms de champs eux-mêmes.

Où se situe le code postal, et quelle forme a-t-il ?

La position et le motif diffèrent tous les deux, et une règle écrite pour un seul pays est le défaut classique dans ce domaine.

Pays Position dans l’adresse affichée Forme
Allemagne Avant la ville Chiffres uniquement
France Avant la ville Chiffres uniquement
Japon Avant la ville Chiffres avec un trait d’union à l’intérieur
États-Unis Après la ville et la région Chiffres, avec une extension facultative séparée par un trait d’union
Royaume-Uni Après la post town Lettres et chiffres, avec une espace interne porteuse de sens
Canada Après la province Alternance de lettre et de chiffre
Pays-Bas Après la ville Chiffres suivis de lettres
Irlande Après la ville Un code alphanumérique de son propre type

Deux autres cas déjouent entièrement la correspondance de motifs. Le premier est un pays dont le code est réellement alphanumérique, de sorte qu’une règle à chiffres uniquement refuse une saisie valide. Le second est un pays sans système de codes postaux d’usage courant, où le champ doit être facultatif ou masqué plutôt qu’obligatoire, car un champ obligatoire sans réponse valide force les utilisateurs à en inventer une.

Les limites de longueur sont le même bug pointé dans l’autre sens. Un code qui comporte une espace interne est plus long que les chiffres ou les lettres seuls, de sorte qu’une saisie plafonnée à cinq ou six caractères tronque une valeur parfaitement correcte au moment de la frappe. La troncature est pire que le rejet, car le formulaire signale un succès et les dégâts sont découverts par quelqu’un d’autre.

Les codes postaux sont-ils un motif ou une géographie ?

C’est une géographie, et le motif n’en est que la surface. Un code postal identifie une zone de distribution, et ses premiers caractères portent une localisation dans la plupart des systèmes.

Cela a une conséquence directe pour les tests. Un code peut satisfaire la règle de forme et rester impossible pour la ville voisine : un code dont les premiers caractères appartiennent à une partie du pays ne peut pas être correct pour une ville située dans une autre, et les deux passent une expression régulière sans se plaindre. La validation par motif attrape les fautes de frappe. La relation entre le code et la région nécessite des données de référence, et c’est le contrôle qui attrape une adresse réellement erronée plutôt qu’une adresse mal saisie. Les formes par pays sont cataloguées dans les formats de codes postaux par pays.

Si vous ne pouvez en tester qu’un des deux, testez la relation. Un échec de motif est visible pour l’utilisateur et se fait corriger ; un code valide selon le motif mais situé au mauvais endroit reste invisible jusqu’à ce qu’un transporteur ou un moteur de taxe recherche l’adresse.

Numéros de téléphone, préfixes de ligne et nombre de chiffres

Les formulaires d’adresse collectent généralement un numéro de téléphone, et il se comporte différemment selon le pays pour deux raisons.

Le préfixe national de ligne est le premier chiffre utilisé pour la numérotation domestique, et le format international l’omet. Un formulaire qui stocke ce que l’utilisateur a saisi et préfixe un indicatif de pays produit un numéro qui ne peut pas être appelé. Acceptez la saisie nationale, retirez le préfixe de ligne lorsqu’il est présent, et stockez le résultat au format international. Le même principe est développé dans indicatif téléphonique et appariement avec la localité.

La longueur n’est pas uniforme non plus, de sorte que la validation devrait consulter la fiche du pays plutôt que de supposer une règle mondiale unique. L’indicatif de pays est une troisième variable : un sélecteur qui change l’indicatif de numérotation sans changer la longueur nationale attendue acceptera volontiers un numéro de la mauvaise taille pour le pays choisi. Faites dériver le code du pays sélectionné et validez le numéro national pour lui-même.

Qu’est-ce qui casse lorsque des adresses latines et CJK partagent un formulaire ?

C’est ici que la plupart des formulaires internationaux abandonnent discrètement. Les adresses CJK sont concaténées sans espaces entre les couches administratives et s’écrivent du plus grand au plus petit ; la version romanisée va du plus petit au plus grand et gagne des espaces. Un formulaire qui joint les champs avec une virgule et une espace et imprime le résultat sur une seule ligne se trompe sur les deux versions.

La largeur des caractères ajoute une seconde défaillance. Les chiffres et les lettres latines tapés sur un clavier japonais ou chinois peuvent arriver en pleine largeur, ce qui échoue à un contrôle numérique même si la valeur est correcte. Normaliser le texte avant de valider résout le problème, et l’ordre compte : normaliser d’abord, vérifier ensuite.

L’ordre des noms est le troisième. Les noms écrits avec le nom de famille en premier cassent toute routine qui divise une valeur en un prénom et un nom de famille et la recompose dans l’ordre inverse, et un nom qui ne se divise pas du tout en deux parties ne peut pas être représenté par une paire de champs.

Quelles classes de saisie cassent les validateurs naïfs ?

Trois, et aucune n’est exotique.

  • Les chiffres et lettres en pleine largeur, qui paraissent presque identiques à l’écran et ne sont pas reconnus comme des chiffres par un analyseur.
  • Les diacritiques et les lettres spéciales, du eszett allemand aux voyelles nordiques et aux lettres turques sans point, qui se comptent différemment dans une limite de caractères et dans une colonne limitée en octets, et qu’une romanisation bien intentionnée réécrit sans demander.
  • Les titres honorifiques et les noms composés, qui appartiennent au bloc d’adresse plutôt que d’être une décoration et qu’une division du nom en deux champs ne peut pas contenir.

Testez les trois avec de vraies chaînes dans la vraie écriture plutôt qu’avec une translittération. Un formulaire qui gère un nom romanisé n’est pas la preuve qu’il gère les caractères que l’utilisateur tapera réellement.

Une passe manuelle de vingt minutes sur trois pays

Les contrôles automatisés attrapent les régressions ; une passe manuelle attrape les hypothèses. Trois pays qui ne s’accordent sur presque aucun axe révéleront plus de choses en vingt minutes qu’une semaine de tests unitaires écrits par la personne qui a construit le formulaire.

  • États-Unis : code postal après la ville, une région à deux lettres, un code à chiffres uniquement avec une extension facultative séparée par un trait d’union, et un numéro de téléphone national à dix chiffres. Confirmez que la deuxième ligne d’adresse est honnêtement facultative.
  • Allemagne : code postal avant la ville, chiffres uniquement, et un Land que la plupart des utilisateurs ne saisissent jamais parce que le code l’implique déjà. Confirmez qu’un champ État obligatoire n’est pas une impasse pour les résidents étrangers.
  • Brésil : un code écrit avec un trait d’union, une abréviation d’État à deux lettres, et un champ quartier que beaucoup de modèles n’ont pas. Confirmez que le quartier a un endroit où aller.

Répétez ensuite cinq opérations pour chaque pays : saisissez un échantillon valide et confirmez qu’il s’enregistre ; saisissez un code postal d’une autre région et voyez si quelque chose proteste ; collez une adresse entière dans la première ligne et observez ce qui se passe ; changez le sélecteur de pays après la saisie et observez ce que le formulaire efface ; rechargez l’enregistrement sauvegardé et comparez-le à ce qui a été saisi. Exécutez toute la passe une fois sur une largeur téléphone, car la moitié de ces défaillances n’apparaissent que lorsque la mise en page s’effondre. L’article sur les cas de test du formulaire d’adresse au paiement étend cette passe au reste du parcours de paiement.

Où ces formulaires cassent habituellement

  • Un champ région obligatoire pour tous les pays, y compris ceux qui n’en utilisent aucun.
  • Un motif de code postal codé en dur selon la forme d’un seul pays, plus une longueur maximale qui tronque les codes valides plus longs.
  • Des transformations de casse qui réécrivent un code valide uniquement tel qu’il a été saisi.
  • Un sélecteur de pays placé après les champs d’adresse, forçant à remplir le formulaire dans le mauvais ordre.
  • Une deuxième ligne d’adresse étiquetée comme champ appartement alors que c’est le seul endroit où un numéro de bâtiment CJK peut aller.
  • Des textes indicatifs utilisés comme libellés, qui disparaissent dès que la frappe commence et emportent l’indice de format avec eux.
  • Aucune place pour les noms de divisions longs, ordinaires dans de nombreux pays et rares dans ceux avec lesquels un formulaire est habituellement testé.

Étapes suivantes

Triez la liste de contrôle par risque plutôt que par champ. À chaque livraison, testez un échantillon valide et un échantillon invalide par pays pris en charge, confirmez que le caractère obligatoire suit le pays, poussez chaque champ de texte libre vers sa valeur réaliste la plus longue, et faites un aller-retour enregistrement-rechargement. Vérifiez ensuite la mise en page autant que le validateur, car l’ordre des champs, le texte des libellés, le caractère facultatif et les longueurs maximales sont ce que l’utilisateur rencontre réellement.

Générez les échantillons plutôt que de les taper à la main. Le générateur d’adresses renvoie le même enregistrement pour la même clé, ce qui garde un instantané stable d’une exécution à l’autre, et le répertoire des pays vous indique quelles divisions et quelles villes un échantillon pour un pays donné devrait utiliser. Les échantillons tapés à la main dérivent, et la dérive reste invisible jusqu’à ce qu’un changement de formulaire les casse.

Chaque valeur décrite sur cette page est inventée pour tester des logiciels. Aucun des échantillons ne représente une adresse réelle, et les règles de pays citées ici décrivent des formats plutôt que la résidence de quiconque.

Continuer la lecture

Articles sur Générateur d'adresses fictives