# Plan de test proposé — alertes de stock

**Statut : scénarios à exécuter, tests non exécutés.** Toutes les données sont synthétiques et fictives. Les contrôles de notification doivent utiliser un transport simulé; ce plan ne prouve aucune intégration ni aucun envoi réel.

## Données de base fictives

| Champ | Valeur de test |
| --- | --- |
| Article | Kit de joint EX-042 (fictif) |
| SKU | AZ-EX-042 (fictif) |
| Lieu | Démo Nord (fictif) |
| Stock physique | 12 unités (fictif) |
| Quantité réservée | 9 unités (fictive) |
| Quantité disponible | 3 unités (calcul fictif : 12 − 9) |
| Seuil | 5 unités (fictif) |
| Âge de l’horodatage frais | 2 minutes (exemple fictif) |
| Durée du compte rendu | 2,8 s simulées, pas une mesure réelle |

Pour chaque scénario, injecter un enregistrement synthétique, exécuter le contrôle en environnement isolé, puis comparer la décision et le statut obtenus au résultat attendu. Ne pas appeler de système de stock ou de notification réel.

## Cas à vérifier

| ID | Préparation et action | Résultat attendu |
| --- | --- | --- |
| T01 — seuil dépassé vers le bas | Données de base, horodatage vieux de 2 minutes; calculer puis comparer. | 12 − 9 = 3; 3 ≤ 5; alerte préparée une fois, état simulé, aucun message envoyé. Le compte rendu peut indiquer 2,8 s simulées. |
| T02 — égalité au seuil | Utiliser un disponible de 5 et un seuil de 5. | L’égalité déclenche la préparation de l’alerte puisque la règle est disponible ≤ seuil. |
| T03 — au-dessus du seuil | Utiliser un stock physique de 15 et 9 réservés, soit 6 disponibles pour un seuil de 5. | Aucune nouvelle alerte n’est préparée. |
| T04 — horodatage absent | Omettre l’horodatage de la source. | Le contrôle est marqué incomplet et suspendu; aucune décision de seuil n’est publiée comme vérifiée. |
| T05 — données trop anciennes | Fournir un horodatage vieux de 4 heures. Pour rendre ce scénario déterministe, proposer une limite de test de 60 minutes, **à confirmer avant configuration**. | Donnée signalée comme obsolète; contrôle suspendu. La limite proposée n’est pas une configuration active. |
| T06a — quantité absente | Omettre le stock physique, puis répéter en omettant la quantité réservée. | Erreur de complétude; aucun calcul ni alerte. |
| T06b — quantité non numérique | Fournir une valeur non numérique pour le stock physique, puis pour la quantité réservée. | Valeur rejetée; aucun calcul ni alerte. |
| T07 — seuil absent | Omettre le seuil de l’article et du lieu. | Comparaison impossible; statut incomplet, aucune alerte de seuil. |
| T08 — alerte déjà ouverte | Reprendre T01 avec une alerte ouverte pour le même SKU et le même lieu. | Aucun doublon; l’alerte existante est conservée. La politique de répétition reste à définir. |
| T09 — destinataire absent | Reprendre T01 sans personne destinataire configurée. | Conserver l’alerte avec un statut proposé « notification bloquée / destinataire à définir »; aucun message n’est envoyé. Le libellé définitif du statut reste à définir. |
| T10 — canal indisponible | Reprendre T01 avec un canal simulé indisponible. | Échec de notification visible; aucune remise déclarée réussie. |
| T11 — délai dépassé | Simuler un transport qui ne répond pas avant le délai de test proposé de 2 secondes. | Délai dépassé et échec visible; ne pas marquer la notification comme envoyée. Le délai proposé est propre au test et reste à confirmer. |

## Critères de clôture

Vérifier que le calcul utilise stock physique − quantité réservée, que l’égalité déclenche l’alerte, que les données manquantes ou obsolètes bloquent une décision fiable, qu’une alerte ouverte évite un doublon et que tout échec de remise reste visible. Répétitions et escalade sont **à définir** avant de les tester comme comportements configurés.
