Développer une caisse utile : le terrain avant les fonctionnalités

Illustration graphique abstraite pour Développement & SIG — GEEKKECH

En bref. Une caisse se juge sur des gestes concrets : saisir, encaisser, corriger et expliquer un écart à la clôture. Voici comment tester ces opérations.

Une caisse se juge à la fin d’un service. Le total est-il compréhensible ? Une opération interrompue peut-elle être reprise ? Le responsable retrouve-t-il ce qui a été annulé ? Dans mon travail sur les outils de gestion et la facturation, ces questions passent avant la liste des fonctionnalités.

Le problème ne commence pas dans le code

Mon activité informatique m’amène à relier développement, solutions de caisse et besoins de petites structures. Le projet VSC Facturation s’inscrit dans ce travail. Ce carnet présente les exigences qui doivent guider un tel outil ; il ne constitue pas l’annonce d’une application finalisée.

Un besoin formulé comme « je veux une facture » cache souvent plusieurs opérations : sélectionner des produits, corriger une quantité, appliquer une remise autorisée, choisir un règlement et retrouver le document plus tard. Dessiner ce parcours sur une feuille révèle les décisions que dix écrans supplémentaires ne régleront pas.

Partir d’une journée réelle

Je commence par trois moments : l’ouverture, le service et la clôture. À l’ouverture, il faut savoir qui utilise l’outil et avec quelles données. Pendant le service, la saisie doit rester lisible sous pression. À la clôture, les chiffres doivent pouvoir être expliqués sans reconstituer la journée de mémoire.

Prenons un exemple fictif : une commande comporte deux boissons, puis une boisson est retirée avant le règlement. L’outil doit distinguer cette correction d’une annulation après encaissement. Confondre les deux transforme un geste normal en anomalie comptable difficile à interpréter.

Les garanties à écrire avant les écrans

  • Une validation identifiable. Un double appui ne doit pas créer deux ventes.
  • Un historique explicite. Une correction indique son auteur, son moment et sa raison lorsque cela est nécessaire.
  • Des montants cohérents. Les arrondis et les totaux suivent la même règle sur l’écran, le document et l’export.
  • Une reprise possible. Une interruption ne doit pas laisser l’utilisateur deviner ce qui a été enregistré.
  • Une sortie des données. Un export lisible et une sauvegarde restaurable font partie du produit.

Ces règles doivent être adaptées au métier. Elles ne suffisent pas à établir la conformité fiscale d’un logiciel ; celle-ci demande une vérification distincte selon le cadre applicable.

Un test plus parlant qu’une démonstration parfaite

Le parcours idéal est nécessaire, mais il ne raconte qu’une partie de l’histoire. Je préfère ajouter un scénario d’incident : créer une opération, interrompre l’application avant sa confirmation, la rouvrir, puis vérifier son état. L’opération existe-t-elle une seule fois ? Son total est-il identique ? L’utilisateur sait-il s’il doit recommencer ?

Autre essai utile : exporter une journée, restaurer une copie de sauvegarde dans un environnement de test et comparer les mêmes totaux. Une sauvegarde dont on n’a jamais vérifié la restauration reste une hypothèse rassurante.

Ce que cela change dans le développement

Le premier livrable à viser est un parcours court et explicable : saisir, vérifier, valider, retrouver. Le second est la preuve que ce parcours résiste aux erreurs prévues. Les tableaux de bord viennent ensuite, quand les données qui les alimentent méritent confiance.

Pour un café, un restaurant ou une petite structure touristique, un logiciel utile réduit les ambiguïtés entre les personnes. C’est cette qualité que je veux documenter ici : le code au contact des usages, avec ses choix et ses limites.

Passer du besoin au test de caisse

Créez une vente fictive, partagez son paiement entre espèces et carte, puis annulez une ligne avec un motif. À la clôture, comparez séparément le total des ventes, les règlements par mode et le mouvement physique du tiroir. Le test est réussi si chaque écart peut être expliqué à partir d’une pièce ou d’un événement horodaté.

Les pannes à simuler sont une interruption avant enregistrement, une interruption après enregistrement et une reprise depuis un autre poste. Les traces doivent permettre de distinguer les trois cas.

À lire aussi sur Geekkech. Modifier le rapport printer.closecash dans uniCenta oPOS.

Le fonctionnement en images

Panier de démonstration ITMOR POS avec deux thés, un café, la note Sans sucre et un total de 48 MAD
Mode démonstration ITMOR POS 0.2.0. Deux thés à 15 MAD et un café à 18 MAD donnent 48 MAD. Interface exécutée dans un navigateur, aucune commande réelle envoyée.

Complément ajouté le 7 novembre 2026. Cette capture du prototype ITMOR POS 0.2.0 illustre les principes de caisse évoqués dans l’article.