Menu

Cas de test de formulaire de facturation : une matrice qui trouve les bugs

Une matrice de cas de test de formulaire de facturation couvre entreprise contre particulier, TVA présente contre absente, et national contre transfrontalier. Voici comment tester correctement les champs de facturation.

Publié le

  • formulaire de facturation
  • cas de test
  • facturation

Les cas de test de formulaire de facturation sont les contrôles qui décident si votre écran de facturation survit au contact d’un vrai client professionnel. L’écran paraît simple — un nom, une adresse, deux ou trois numéros — et c’est là que se cachent les défauts les plus coûteux, parce que les défaillances sont discrètes : une facture qui s’affiche, s’envoie et est erronée.

Cet article expose ce qu’un formulaire de facturation professionnel collecte réellement, quelles branches du formulaire sont le plus souvent sous-testées, comment construire une matrice de cas qui les couvre, et ce qu’il faut surveiller au-delà du formulaire lui-même.

Que collecte réellement un formulaire de facturation professionnel ?

Plus qu’un tunnel d’achat grand public, et sous une forme différente. Un formulaire de facturation grand public veut un nom et une adresse. Un formulaire de facturation professionnel veut savoir quelle organisation est facturée, à quel titre et sous quel régime fiscal.

Les champs varient selon le pays, mais ils se regroupent en catégories familières :

  • Qui est facturé — la raison sociale de l’entreprise, et souvent un nom commercial qui en diffère.
  • Les identifiants — le numéro d’immatriculation de la société, un identifiant fiscal et un numéro de TVA lorsque le pays en délivre un.
  • L’adresse de facturation — l’adresse que la facture doit afficher, qui n’est pas toujours l’adresse de livraison ni le siège social.
  • Le contact — la personne à qui envoyer la facture, et souvent une adresse distincte pour l’envoi de la facture.
  • Les conditions de paiement — la devise, une référence de bon de commande et tout ce que le service comptable du client exige.

Le point structurel important est que le même écran sert deux populations très différentes. Un client professionnel a besoin des champs d’identifiant ; un particulier n’en a pas besoin et ne peut généralement pas les remplir. Un formulaire qui présente un ensemble fixe de champs aux deux soit collectera des absurdités auprès des particuliers, soit bloquera les entreprises.

Quelles sont les quatre branches par lesquelles tout formulaire de facturation doit être testé ?

Tout formulaire de facturation professionnel comporte au moins quatre chemins réellement différents, et la plupart des défauts se situent aux frontières entre eux.

Branche Ce qui change Ce qui casse habituellement
Entreprise avec numéro de TVA Les champs d’identifiant sont obligatoires et validés Les contrôles de format transfrontaliers rejettent un numéro légitime
Entreprise sans numéro de TVA Le champ doit être réellement facultatif Un attribut de champ obligatoire rend la soumission impossible
Transfrontalier Le traitement fiscal et les règles d’identifiant suivent le pays de l’acheteur Des hypothèses nationales sont appliquées à une adresse étrangère
Acheteur particulier Les champs professionnels devraient disparaître entièrement Des champs à moitié obligatoires subsistent et bloquent l’achèvement

Testez chaque branche deux fois : une fois avec une saisie valide et une fois avec une saisie délibérément erronée d’une seule manière. La seconde passe est celle où la gestion des erreurs est exercée, et la gestion des erreurs sur les formulaires de facturation est l’endroit où les clients abandonnent.

Un minimum pratique est de huit cas — quatre branches, chacune sous une forme valide et une forme invalide — plus les paires de part et d’autre de chaque frontière : passer du particulier à l’entreprise en cours de formulaire, changer de pays après avoir saisi les identifiants, et revenir à un brouillon enregistré. Ces cas de transition attrapent l’état que les cas individuels ne touchent jamais.

Pourquoi le même champ se comporte-t-il différemment selon les pays ?

Parce que l’exigence provient des règles fiscales et de facturation nationales, et que ces règles diffèrent sur les champs qu’une facture doit porter et sur ce que chaque champ doit contenir.

Certaines juridictions attendent l’identifiant fiscal de l’acheteur sur une facture professionnelle ; d’autres ne l’exigent pas dans les mêmes circonstances. Certaines exigent un numéro d’immatriculation, certaines un numéro fiscal, et certaines les deux. Le caractère obligatoire d’un champ peut aussi dépendre de la nature de la prestation et pas seulement de l’acheteur, ce qui signifie qu’un formulaire qui code en dur les exigences d’un seul pays sera simultanément trop strict à l’étranger et trop laxiste dans son propre pays.

La réponse d’ingénierie n’est pas d’encoder les règles mais de router selon le pays. Déterminez d’abord le pays et le type d’acheteur, puis déduisez quels champs sont obligatoires, lesquels sont facultatifs et lesquels doivent être masqués. Gardez cette dérivation en un seul endroit, parce que disperser des conditions par pays dans un gabarit produit exactement la dérive qui fait qu’un formulaire se comporte différemment sur deux écrans censés concorder.

Que se passe-t-il de travers au-delà du formulaire ?

Une part surprenante des défauts de facturation ne touche jamais à la validation. Ils résident dans ce qui se passe après la soumission du formulaire.

La numérotation des factures est l’exemple classique. Le numéro doit être unique et il doit être stable. S’il est généré au moment de la soumission à partir d’un compteur lu puis écrit, deux soumissions simultanées peuvent produire le même numéro, et le doublon est découvert des semaines plus tard par une équipe comptable. S’il est régénéré lorsqu’un document est réimprimé, vous avez désormais deux numéros pour une seule transaction.

Les nouvelles tentatives sont le second exemple classique. Un client soumet, la requête expire, le client soumet à nouveau, et deux factures existent pour une seule commande. Le remède est l’idempotence : une soumission devrait porter une clé, et une seconde soumission avec la même clé devrait renvoyer le premier résultat plutôt que de créer une seconde facture. Tester cela correctement signifie envoyer délibérément deux fois la même soumission et vérifier que le nombre de factures est bien de une.

Le troisième est le placement des erreurs. Un échec de validation sur un long formulaire de facturation doit indiquer quel champ est erroné et pourquoi, et il ne doit pas effacer ce que le client a déjà saisi. Testez avec un formulaire rempli jusqu’au dernier champ et une erreur implantée tôt dans celui-ci, puis confirmez que le message d’échec pointe vers la bonne saisie et que rien n’est perdu.

Pour les développeurs : la matrice de cas et les jeux de données

Construisez la matrice comme des données plutôt que comme un amas de tests écrits à la main, afin que l’ajout d’un pays ou d’une branche soit une ligne plutôt qu’une réécriture. Chaque ligne devrait porter le type d’acheteur, le pays, quels champs d’identifiant sont renseignés, l’exigence attendue pour chaque champ et le résultat attendu. Laissez ensuite un seul corps de test parcourir la matrice, ce qui garde les assertions cohérentes d’une branche à l’autre.

Utilisez des enregistrements de test manifestement synthétiques. Un test de facturation qui utilise un nom de société réelle d’apparence plausible invite à la confusion dès qu’une capture d’écran est collée dans un ticket, et utiliser les identifiants d’une vraie entreprise dans un environnement de test est un véritable risque juridique, et pas seulement un manque de propreté. Les entités générées par le générateur de données d’entreprise portent des noms neutres et manifestement fabriqués et des identifiants qui ne résolvent rien, ce qui est exactement ce dont un jeu de données de facturation a besoin.

Séparez aussi les préoccupations dans les jeux de données. Un enregistrement pour une entreprise nationale avec un numéro de TVA, un pour une entreprise étrangère sans, un pour un travailleur indépendant, un pour un particulier : quatre enregistrements couvrent les axes de la matrice, et ils peuvent être réutilisés dans chaque formulaire du produit. Gardez-les sous gestion de version avec une note indiquant qu’ils sont fabriqués, qu’aucune activité réelle n’est décrite, et qu’ils ne doivent pas servir à ouvrir des comptes ni à émettre de vrais documents.

Deux habitudes supplémentaires raccourcissent la boucle de retour. Validez dans l’ordre dans lequel le client remplit le formulaire plutôt que dans l’ordre où les champs se trouvent déclarés, afin que la première erreur rencontrée par l’utilisateur soit la première qu’il puisse corriger. Et consignez une clé de corrélation pour chaque tentative de soumission — la même que celle utilisée pour l’idempotence — afin qu’un signalement de facture en double puisse être rattaché à la paire de requêtes qui l’a causé.

Des champs testés isolément échouent encore en combinaison, ce qui explique pourquoi la discussion sur les formats de numéro de TVA et celle sur la validation de l’identifiant fiscal aboutissent toutes deux au même point : contrôlez la forme localement, confirmez l’immatriculation officiellement, et ne laissez jamais la première tenir lieu de la seconde.

Prochaines étapes

Prenez votre écran de facturation et écrivez les quatre branches sur une feuille de papier, puis parcourez chacune avec un enregistrement d’entreprise synthétique et notez chaque champ qui vous bloque. Les branches qui ne peuvent pas être complétées avec des données générées sont celles que vos vrais clients professionnels ne peuvent pas compléter non plus. Lorsque la matrice fonctionne, étendez-la avec un cas transfrontalier utilisant un pays dont vous n’avez jamais vu le format et vérifiez que le formulaire demande les bonnes choses plutôt que les choses familières.

Continuer la lecture

Articles sur Générateur de données d'entreprise pour les tests