# Cahier de Tests - OptiqueStock
## Application de Gestion de Magasin d'Optique

**Version:** 1.0  
**Date de création:** 27 février 2026  
**Auteur:** Z.ai Code  
**Application:** OptiqueStock - Next.js 16 + Prisma + SQLite

---

## Table des Matières

1. [Introduction](#introduction)
2. [Environnement de Test](#environnement-de-test)
3. [Module 1: Gestion des Clients](#module-1-gestion-des-clients)
4. [Module 2: Gestion des Produits](#module-2-gestion-des-produits)
5. [Module 3: Gestion des Fournisseurs](#module-3-gestion-des-fournisseurs)
6. [Module 4: Achats & Stock](#module-4-achats--stock)
7. [Module 5: Point de Vente (POS)](#module-5-point-de-vente-pos)
8. [Module 6: Atelier](#module-6-atelier)
9. [Module 7: Rapports](#module-7-rapports)
10. [Tests Intégrateurs](#tests-intégrateurs)
11. [Tests de Performance](#tests-de-performance)

---

## Introduction

### Objectif du Cahier de Tests
Ce cahier de tests définit l'ensemble des tests fonctionnels à effectuer pour valider le bon fonctionnement de l'application OptiqueStock. Il couvre tous les modules de l'application et permet de s'assurer que chaque fonctionnalité répond aux spécifications requises.

### Périmètre
- Tests fonctionnels de tous les modules
- Tests d'intégration entre modules
- Tests de flux métier complets
- Validation des calculs optiques
- Vérification des exports de données

### Conventions
- ✅ = Test réussi
- ❌ = Test échoué
- ⚠️ = Test avec avertissements
- 🔄 = En cours
- N/A = Non applicable

---

## Environnement de Test

### Pré-requis Techniques
- [ ] Navigateur moderne (Chrome, Firefox, Safari, Edge)
- [ ] Connexion internet active
- [ ] JavaScript activé
- [ ] Cookies autorisés

### Pré-requis Données
- [ ] Base de données SQLite initialisée
- [ ] Schéma Prisma synchronisé
- [ ] Aucun compte admin requis pour ce test

### Accès à l'Application
- **URL de développement:** Panneau de prévisualisation à droite
- **Environnement:** Développement local

---

## Module 1: Gestion des Clients

### 1.1 Liste des Clients

#### Test 1.1.1: Affichage de la liste des clients
**ID:** TC-CLI-001  
**Priorité:** Critique  
**Type:** Fonctionnel

**Description:** Vérifier que la liste des clients s'affiche correctement avec toutes les informations.

**Préconditions:**
- Avoir au moins un client en base de données
- Être connecté à l'application

**Étapes de test:**
1. Cliquer sur le module "Gestion Clients" depuis la page d'accueil
2. Observer l'affichage de la liste des clients
3. Vérifier les colonnes visibles: Nom, Prénom, Téléphone, Ville, Date de création, Actions

**Résultats attendus:**
- [ ] La liste des clients s'affiche immédiatement
- [ ] Les colonnes sont présentes et bien alignées
- [ ] Les données sont correctes pour chaque client
- [ ] Un bouton "Nouveau Client" est visible
- [ ] Une barre de recherche est présente
- [ ] Le nombre total de clients est affiché

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 1.1.2: Recherche de clients
**ID:** TC-CLI-002  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Vérifier que la recherche de clients fonctionne correctement.

**Préconditions:**
- Avoir au moins 3 clients en base de données
- Être sur la page de la liste des clients

**Étapes de test:**
1. Dans la barre de recherche, saisir le nom d'un client existant (ex: "Dupont")
2. Observer le filtrage des résultats
3. Saisir un numéro de téléphone existant
4. Observer le filtrage des résultats
5. Saisir un texte qui ne correspond à aucun client
6. Vérifier l'affichage

**Résultats attendus:**
- [ ] La recherche par nom fonctionne
- [ ] La recherche par téléphone fonctionne
- [ ] Les résultats se mettent à jour en temps réel
- [ ] Un message "Aucun client trouvé" s'affiche si aucun résultat
- [ ] La recherche est insensible à la casse

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 1.2 Création d'un Client

#### Test 1.2.1: Création client valide
**ID:** TC-CLI-003  
**Priorité:** Critique  
**Type:** Fonctionnel

**Description:** Créer un nouveau client avec toutes les informations valides.

**Préconditions:**
- Être sur la page de la liste des clients

**Étapes de test:**
1. Cliquer sur le bouton "Nouveau Client"
2. Remplir le formulaire avec:
   - Nom: "Martin"
   - Prénom: "Sophie"
   - Email: "sophie.martin@test.com"
   - Téléphone: "0612345678"
   - Adresse: "15 Rue de la Paix"
   - Ville: "Paris"
   - Code postal: "75001"
   - Date de naissance: "15/05/1985"
   - Notes: "Client VIP"
3. Cliquer sur "Enregistrer"
4. Vérifier que le client apparaît dans la liste
5. Cliquer sur le bouton "Voir" pour ce client

**Résultats attendus:**
- [ ] Le formulaire s'ouvre dans une boîte de dialogue
- [ ] Tous les champs sont remplis correctement
- [ ] Le bouton "Enregistrer" est actif
- [ ] Le client est créé avec succès
- [ ] Un message de confirmation s'affiche
- [ ] Le nouveau client apparaît dans la liste
- [ ] Les détails du client s'affichent correctement

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 1.2.2: Création client avec champs obligatoires manquants
**ID:** TC-CLI-004  
**Priorité:** Haute  
**Type:** Validation

**Description:** Vérifier que la validation empêche la création sans nom ou prénom.

**Préconditions:**
- Être sur le formulaire de création de client

**Étapes de test:**
1. Cliquer sur "Nouveau Client"
2. Ne remplir que l'email et le téléphone
3. Cliquer sur "Enregistrer"
4. Vérifier les messages d'erreur

**Résultats attendus:**
- [ ] Le formulaire ne se valide pas
- [ ] Des messages d'erreur s'affichent pour le nom
- [ ] Des messages d'erreur s'affichent pour le prénom
- [ ] Le client n'est pas créé
- [ ] Le formulaire reste ouvert

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 1.3 Modification d'un Client

#### Test 1.3.1: Modification client existant
**ID:** TC-CLI-005  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Modifier les informations d'un client existant.

**Préconditions:**
- Avoir un client existant
- Être sur la page de détail du client

**Étapes de test:**
1. Cliquer sur le bouton "Voir" d'un client
2. Cliquer sur le bouton "Modifier"
3. Changer le téléphone: "0698765432"
4. Ajouter des notes: "Préférence pour montures en titane"
5. Cliquer sur "Mettre à jour"
6. Vérifier que les modifications sont enregistrées

**Résultats attendus:**
- [ ] Le formulaire pré-rempli avec les données actuelles
- [ ] Les modifications sont enregistrées avec succès
- [ ] Les informations mises à jour s'affichent
- [ ] Un message de confirmation s'affiche
- [ ] La date de modification est mise à jour

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 1.4 Suppression d'un Client

#### Test 1.4.1: Suppression client sans données associées
**ID:** TC-CLI-006  
**Priorité:** Moyenne  
**Type:** Fonctionnel

**Description:** Supprimer un client qui n'a pas de ventes associées.

**Préconditions:**
- Avoir un client sans vente
- Être sur la page de détail du client

**Étapes de test:**
1. Cliquer sur "Voir" pour un client sans vente
2. Cliquer sur le bouton "Supprimer"
3. Confirmer la suppression dans la boîte de dialogue
4. Vérifier que le client n'est plus dans la liste

**Résultats attendus:**
- [ ] Une confirmation est demandée
- [ ] Le client est supprimé avec succès
- [ ] Un message de confirmation s'affiche
- [ ] Le client n'apparaît plus dans la liste
- [ ] La page revient à la liste des clients

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 1.5 Fiches de Vision

#### Test 1.5.1: Création d'une fiche de vision
**ID:** TC-CLI-007  
**Priorité:** Critique  
**Type:** Fonctionnel

**Description:** Créer une nouvelle fiche de vision pour un client.

**Préconditions:**
- Avoir un client existant
- Être sur la page de détail du client

**Étapes de test:**
1. Cliquer sur "Voir" pour un client
2. Cliquer sur le bouton "Nouvelle Fiche"
3. Remplir les mesures OD:
   - Sphère: "-2.00"
   - Cylindre: "-0.50"
   - Axe: "90"
4. Remplir les mesures OG:
   - Sphère: "-1.75"
   - Cylindre: "-0.75"
   - Axe: "95"
5. Remplir les paramètres additionnels:
   - Addition: "1.50"
   - DP: "62"
   - Hauteur: "22"
6. Ajouter des notes: "Prescription pour lecture"
7. Cliquer sur "Enregistrer la fiche"
8. Vérifier que la fiche apparaît dans la liste

**Résultats attendus:**
- [ ] Le formulaire de fiche de vision s'ouvre
- [ ] Les champs OD et OG sont clairement séparés
- [ ] Toutes les valeurs sont acceptées
- [ ] La fiche est créée avec succès
- [ ] Le compteur de fiches s'incrémente
- [ ] La nouvelle fiche apparaît dans la liste
- [ ] Les valeurs s'affichent correctement

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 1.5.2: Modification d'une fiche de vision
**ID:** TC-CLI-008  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Modifier une fiche de vision existante.

**Préconditions:**
- Avoir un client avec au moins une fiche de vision
- Être sur la page de détail du client

**Étapes de test:**
1. Cliquer sur "Voir" pour un client avec une fiche
2. Cliquer sur le bouton "Modifier" de la fiche de vision
3. Changer la sphère OD: "-2.25"
4. Changer l'axe OG: "100"
5. Cliquer sur "Mettre à jour"
6. Vérifier que les modifications sont enregistrées

**Résultats attendus:**
- [ ] Le formulaire pré-rempli avec les données actuelles
- [ ] Les modifications sont enregistrées
- [ ] Les nouvelles valeurs s'affichent
- [ ] Un message de confirmation s'affiche

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 1.5.3: Suppression d'une fiche de vision
**ID:** TC-CLI-009  
**Priorité:** Moyenne  
**Type:** Fonctionnel

**Description:** Supprimer une fiche de vision.

**Préconditions:**
- Avoir un client avec au moins une fiche de vision
- Être sur la page de détail du client

**Étapes de test:**
1. Cliquer sur "Voir" pour un client
2. Cliquer sur le bouton "Supprimer" d'une fiche
3. Confirmer la suppression
4. Vérifier que la fiche n'est plus dans la liste

**Résultats attendus:**
- [ ] Une confirmation est demandée
- [ ] La fiche est supprimée
- [ ] Le compteur de fiches se décrémente
- [ ] Un message de confirmation s'affiche

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

## Module 2: Gestion des Produits

### 2.1 Liste des Produits

#### Test 2.1.1: Affichage de la liste des produits
**ID:** TC-PRD-001  
**Priorité:** Critique  
**Type:** Fonctionnel

**Description:** Vérifier l'affichage complet de la liste des produits.

**Préconditions:**
- Avoir au moins un produit en base de données
- Être connecté à l'application

**Étapes de test:**
1. Cliquer sur le module "Gestion Produits"
2. Observer l'affichage de la liste
3. Vérifier les colonnes visibles
4. Vérifier les statistiques en haut de page

**Résultats attendus:**
- [ ] La liste des produits s'affiche
- [ ] Les colonnes suivantes sont présentes: Référence, Désignation, Catégorie, Marque, Stock, Prix HT, Prix TTC, Actions
- [ ] Les statistiques sont visibles: Total produits, Stock bas, Valeur stock
- [ ] Les badges de catégorie sont colorés
- [ ] Les alertes de stock bas sont visibles (icône rouge)
- [ ] Un bouton "Nouveau Produit" est disponible

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 2.1.2: Filtrage par catégorie
**ID:** TC-PRD-002  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Vérifier le filtrage des produits par catégorie.

**Préconditions:**
- Avoir des produits dans différentes catégories (MONTURE, VERRE, LENTILLE, ACCESSOIRE)
- Être sur la page de la liste des produits

**Étapes de test:**
1. Sélectionner la catégorie "MONTURE"
2. Vérifier que seules les montures s'affichent
3. Sélectionner la catégorie "VERRE"
4. Vérifier que seuls les verres s'affichent
5. Sélectionner "Toutes"
6. Vérifier que tous les produits s'affichent

**Résultats attendus:**
- [ ] Le filtre par catégorie fonctionne
- [ ] Les résultats se mettent à jour immédiatement
- [ ] Le nombre de produits correspondant s'affiche
- [ ] Le filtre "Toutes" affiche tous les produits

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 2.1.3: Filtrage par stock
**ID:** TC-PRD-003  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Vérifier le filtrage des produits par niveau de stock.

**Préconditions:**
- Avoir des produits avec différents niveaux de stock
- Être sur la page de la liste des produits

**Étapes de test:**
1. Sélectionner le filtre "Stock bas"
2. Vérifier que seuls les produits sous le stock minimum s'affichent
3. Sélectionner "En rupture"
4. Vérifier que seuls les produits avec stock = 0 s'affichent
5. Sélectionner "Tous"

**Résultats attendus:**
- [ ] Le filtre de stock fonctionne
- [ ] Les produits en stock bas sont correctement identifiés
- [ ] Les produits en rupture sont correctement identifiés
- [ ] Un badge d'alerte s'affiche pour les produits en stock bas

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 2.1.4: Recherche de produits
**ID:** TC-PRD-004  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Vérifier la recherche de produits par référence, désignation ou marque.

**Préconditions:**
- Avoir au moins 5 produits en base
- Être sur la page de la liste des produits

**Étapes de test:**
1. Saisir une référence de produit existante
2. Vérifier que le produit correspondant s'affiche
3. Saisir une partie de désignation (ex: "titane")
4. Vérifier les résultats
5. Saisir une marque
6. Vérifier les résultats
7. Saisir un code-barres

**Résultats attendus:**
- [ ] La recherche par référence fonctionne
- [ ] La recherche par désignation fonctionne
- [ ] La recherche par marque fonctionne
- [ ] La recherche par code-barres fonctionne
- [ ] Les résultats sont mis à jour en temps réel
- [ ] La recherche est insensible à la casse

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 2.2 Création d'un Produit

#### Test 2.2.1: Création d'une monture
**ID:** TC-PRD-005  
**Priorité:** Critique  
**Type:** Fonctionnel

**Description:** Créer un nouveau produit de type monture.

**Préconditions:**
- Avoir au moins un fournisseur en base
- Être sur la page de la liste des produits

**Étapes de test:**
1. Cliquer sur "Nouveau Produit"
2. Onglet "Général":
   - Référence: "MNT-001"
   - Désignation: "Monture Titane Ray-Ban"
   - Catégorie: "MONTURE"
   - Fournisseur: Sélectionner un fournisseur existant
   - Marque: "Ray-Ban"
   - Code-barres: "1234567890123"
3. Onglet "Pricing":
   - Prix achat HT: "45.00"
   - Prix vente TTC: "120.00"
   - TVA: "20%"
4. Onglet "Stock":
   - Stock actuel: "10"
   - Stock minimum: "3"
   - Emplacement: "A-01-05"
5. Onglet "Détails":
   - Type de monture: "Complète"
   - Dimensions: "52-18-140"
   - Matériau: "Titane"
   - Couleur: "Noir"
   - Description: "Monture légère et résistante"
6. Cliquer sur "Enregistrer"

**Résultats attendus:**
- [ ] Le formulaire s'ouvre avec les 4 onglets
- [ ] Les champs spécifiques aux montures apparaissent
- [ ] La marge est calculée automatiquement
- [ ] Le produit est créé avec succès
- [ ] Un message de confirmation s'affiche
- [ ] Le produit apparaît dans la liste
- [ ] La valeur du stock est mise à jour dans les statistiques

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 2.2.2: Création d'un verre
**ID:** TC-PRD-006  
**Priorité:** Critique  
**Type:** Fonctionnel

**Description:** Créer un nouveau produit de type verre.

**Préconditions:**
- Avoir au moins un fournisseur en base
- Être sur le formulaire de création de produit

**Étapes de test:**
1. Cliquer sur "Nouveau Produit"
2. Onglet "Général":
   - Référence: "VR-001"
   - Désignation: "Verre Progressif 1.67"
   - Catégorie: "VERRE"
   - Fournisseur: Sélectionner un fournisseur
   - Marque: "Essilor"
   - Code-barres: "2345678901234"
3. Onglet "Pricing":
   - Prix achat HT: "80.00"
   - Prix vente TTC: "180.00"
   - TVA: "20%"
4. Onglet "Stock":
   - Stock actuel: "20"
   - Stock minimum: "5"
   - Emplacement: "B-03-10"
5. Onglet "Détails":
   - Type de verre: "Progressif"
   - Indice: "1.67"
   - Matériau: "Organique"
   - Couleur: "Incolore"
   - Description: "Verre haute qualité pour forte correction"
6. Cliquer sur "Enregistrer"

**Résultats attendus:**
- [ ] Les champs spécifiques aux verres apparaissent
- [ ] Le champ "Indice" est disponible
- [ ] Le produit est créé avec succès
- [ ] Le type de verre est correctement enregistré

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 2.2.3: Validation des références uniques
**ID:** TC-PRD-007  
**Priorité:** Haute  
**Type:** Validation

**Description:** Vérifier que deux produits ne peuvent pas avoir la même référence.

**Préconditions:**
- Avoir un produit existant avec référence "MNT-001"
- Être sur le formulaire de création de produit

**Étapes de test:**
1. Cliquer sur "Nouveau Produit"
2. Saisir la référence "MNT-001" (déjà utilisée)
3. Remplir les autres champs obligatoires
4. Cliquer sur "Enregistrer"

**Résultats attendus:**
- [ ] Un message d'erreur s'affiche
- [ ] L'erreur indique que la référence existe déjà
- [ ] Le produit n'est pas créé
- [ ] Le formulaire reste ouvert

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 2.3 Modification d'un Produit

#### Test 2.3.1: Modification des informations d'un produit
**ID:** TC-PRD-008  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Modifier les informations d'un produit existant.

**Préconditions:**
- Avoir un produit existant
- Être sur la page de la liste des produits

**Étapes de test:**
1. Cliquer sur le bouton "Modifier" d'un produit
2. Changer le prix vente TTC: "135.00"
3. Changer le stock actuel: "8"
4. Ajouter une description: "Nouveau modèle 2026"
5. Cliquer sur "Mettre à jour"
6. Vérifier que les modifications sont enregistrées

**Résultats attendus:**
- [ ] Le formulaire pré-rempli avec les données actuelles
- [ ] Les modifications sont enregistrées
- [ ] Les nouvelles valeurs s'affichent dans la liste
- [ ] La valeur du stock est mise à jour dans les statistiques

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 2.4 Gestion des Images

#### Test 2.4.1: Ajout d'images à un produit
**ID:** TC-PRD-009  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Ajouter des images à un produit existant.

**Préconditions:**
- Avoir un produit existant
- Avoir une image sur l'ordinateur (JPEG ou PNG)
- Être sur la page de la liste des produits

**Étapes de test:**
1. Cliquer sur le bouton "Images" d'un produit
2. Cliquer sur "Ajouter une image"
3. Sélectionner une image (JPEG, max 5MB)
4. Répéter pour une deuxième image
5. Vérifier que les images s'affichent

**Résultats attendus:**
- [ ] La galerie d'images s'ouvre
- [ ] Le sélecteur de fichier fonctionne
- [ ] L'image est téléchargée avec succès
- [ ] L'image s'affiche dans la galerie
- [ ] Plusieurs images peuvent être ajoutées
- [ ] Le type et la taille du fichier sont affichés

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 2.4.2: Suppression d'une image
**ID:** TC-PRD-010  
**Priorité:** Moyenne  
**Type:** Fonctionnel

**Description:** Supprimer une image d'un produit.

**Préconditions:**
- Avoir un produit avec au moins une image
- Être dans la galerie d'images

**Étapes de test:**
1. Ouvrir la galerie d'images d'un produit
2. Cliquer sur le bouton "Supprimer" d'une image
3. Confirmer la suppression
4. Vérifier que l'image n'est plus dans la galerie

**Résultats attendus:**
- [ ] Une confirmation est demandée
- [ ] L'image est supprimée
- [ ] La galerie est mise à jour
- [ ] Un message de confirmation s'affiche

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 2.5 Génération de QR Codes

#### Test 2.5.1: Génération de QR code
**ID:** TC-PRD-011  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Générer un QR code pour un produit.

**Préconditions:**
- Avoir un produit existant
- Être sur la page de la liste des produits

**Étapes de test:**
1. Cliquer sur le bouton "QR Code" d'un produit
2. Vérifier que le QR code s'affiche
3. Vérifier les informations affichées
4. Cliquer sur "Télécharger PNG"
5. Cliquer sur "Imprimer"

**Résultats attendus:**
- [ ] La boîte de dialogue QR code s'ouvre
- [ ] Le QR code est généré et visible
- [ ] La référence du produit est affichée
- [ ] La désignation du produit est affichée
- [ ] Le prix est affiché
- [ ] Le téléchargement en PNG fonctionne
- [ ] L'impression fonctionne

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 2.6 Activation/Désactivation

#### Test 2.6.1: Désactivation d'un produit
**ID:** TC-PRD-012  
**Priorité:** Moyenne  
**Type:** Fonctionnel

**Description:** Désactiver un produit (ne plus afficher dans le POS).

**Préconditions:**
- Avoir un produit actif existant
- Être sur la page de la liste des produits

**Étapes de test:**
1. Cliquer sur le bouton "Désactiver" d'un produit
2. Confirmer la désactivation
3. Vérifier que le produit est marqué comme inactif
4. Vérifier que le produit n'apparaît plus dans le POS

**Résultats attendus:**
- [ ] Une confirmation est demandée
- [ ] Le produit est marqué comme inactif
- [ ] Un badge "Inactif" s'affiche
- [ ] Le produit n'apparaît plus dans le catalogue POS
- [ ] Le produit reste visible dans la liste (avec badge)

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 2.6.2: Réactivation d'un produit
**ID:** TC-PRD-013  
**Priorité:** Moyenne  
**Type:** Fonctionnel

**Description:** Réactiver un produit désactivé.

**Préconditions:**
- Avoir un produit inactif
- Être sur la page de la liste des produits

**Étapes de test:**
1. Cliquer sur le bouton "Activer" d'un produit inactif
2. Vérifier que le produit est marqué comme actif
3. Vérifier que le produit réapparaît dans le POS

**Résultats attendus:**
- [ ] Le produit est réactivé
- [ ] Le badge "Inactif" disparaît
- [ ] Le produit réapparaît dans le catalogue POS

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

## Module 3: Gestion des Fournisseurs

### 3.1 Liste des Fournisseurs

#### Test 3.1.1: Affichage de la liste des fournisseurs
**ID:** TC-FRN-001  
**Priorité:** Critique  
**Type:** Fonctionnel

**Description:** Vérifier l'affichage de la liste des fournisseurs.

**Préconditions:**
- Avoir au moins un fournisseur en base
- Être connecté à l'application

**Étapes de test:**
1. Accéder au module Fournisseurs
2. Observer l'affichage de la liste
3. Vérifier les colonnes visibles

**Résultats attendus:**
- [ ] La liste des fournisseurs s'affiche
- [ ] Les colonnes sont: Nom, Contact, Téléphone, Email, Ville, Actions
- [ ] Un bouton "Nouveau Fournisseur" est visible
- [ ] Une barre de recherche est présente

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 3.2 Création d'un Fournisseur

#### Test 3.2.1: Création fournisseur valide
**ID:** TC-FRN-002  
**Priorité:** Critique  
**Type:** Fonctionnel

**Description:** Créer un nouveau fournisseur.

**Préconditions:**
- Être sur la page des fournisseurs

**Étapes de test:**
1. Cliquer sur "Nouveau Fournisseur"
2. Remplir le formulaire:
   - Nom: "Essilor France"
   - Contact: "Jean Dupont"
   - Téléphone: "0123456789"
   - Email: "contact@essilor.fr"
   - Adresse: "10 Rue de l'Optique"
   - Ville: "Paris"
   - Code postal: "75015"
   - Notes: "Fournisseur principal verres"
3. Cliquer sur "Enregistrer"

**Résultats attendus:**
- [ ] Le formulaire s'ouvre
- [ ] Le fournisseur est créé avec succès
- [ ] Un message de confirmation s'affiche
- [ ] Le fournisseur apparaît dans la liste

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 3.3 Modification d'un Fournisseur

#### Test 3.3.1: Modification fournisseur
**ID:** TC-FRN-003  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Modifier les informations d'un fournisseur.

**Préconditions:**
- Avoir un fournisseur existant
- Être sur la page des fournisseurs

**Étapes de test:**
1. Cliquer sur "Modifier" d'un fournisseur
2. Changer le numéro de téléphone
3. Ajouter des notes
4. Cliquer sur "Mettre à jour"

**Résultats attendus:**
- [ ] Le formulaire pré-rempli s'ouvre
- [ ] Les modifications sont enregistrées
- [ ] Les nouvelles valeurs s'affichent

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 3.4 Suppression d'un Fournisseur

#### Test 3.4.1: Suppression fournisseur sans factures
**ID:** TC-FRN-004  
**Priorité:** Moyenne  
**Type:** Fonctionnel

**Description:** Supprimer un fournisseur sans factures associées.

**Préconditions:**
- Avoir un fournisseur sans facture
- Être sur la page des fournisseurs

**Étapes de test:**
1. Cliquer sur "Supprimer" d'un fournisseur
2. Confirmer la suppression
3. Vérifier que le fournisseur n'est plus dans la liste

**Résultats attendus:**
- [ ] Une confirmation est demandée
- [ ] Le fournisseur est supprimé
- [ ] Un message de confirmation s'affiche

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

## Module 4: Achats & Stock

### 4.1 Liste des Factures d'Achat

#### Test 4.1.1: Affichage des factures d'achat
**ID:** TC-ACH-001  
**Priorité:** Critique  
**Type:** Fonctionnel

**Description:** Vérifier l'affichage de la liste des factures d'achat.

**Préconditions:**
- Avoir au moins une facture d'achat en base
- Être connecté à l'application

**Étapes de test:**
1. Cliquer sur le module "Achats & Stock"
2. Observer l'affichage
3. Vérifier les onglets et colonnes

**Résultats attendus:**
- [ ] L'onglet "Factures d'achat" est actif par défaut
- [ ] L'onglet "Nouvelle facture" est présent
- [ ] Les colonnes sont: N° Facture, Date, Fournisseur, Statut, Date réception, Total TTC, Actions
- [ ] Les badges de statut sont colorés (BROUILLON: jaune, VALIDE: vert)
- [ ] Un bouton "Nouvelle facture" est visible

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 4.1.2: Filtrage par statut
**ID:** TC-ACH-002  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Vérifier le filtrage des factures par statut.

**Préconditions:**
- Avoir des factures avec différents statuts
- Être sur la liste des factures

**Étapes de test:**
1. Sélectionner le filtre "Brouillon"
2. Vérifier que seules les factures en brouillon s'affichent
3. Sélectionner "Validé"
4. Vérifier que seules les factures validées s'affichent
5. Sélectionner "Tous"

**Résultats attendus:**
- [ ] Le filtre par statut fonctionne
- [ ] Les résultats se mettent à jour immédiatement
- [ ] Le filtre "Tous" affiche toutes les factures

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 4.1.3: Recherche de factures
**ID:** TC-ACH-003  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Vérifier la recherche de factures par numéro ou fournisseur.

**Préconditions:**
- Avoir plusieurs factures en base
- Être sur la liste des factures

**Étapes de test:**
1. Saisir un numéro de facture existant
2. Vérifier que la facture s'affiche
3. Saisir le nom d'un fournisseur
4. Vérifier les résultats

**Résultats attendus:**
- [ ] La recherche par numéro de facture fonctionne
- [ ] La recherche par fournisseur fonctionne
- [ ] Les résultats sont mis à jour en temps réel

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 4.2 Création d'une Facture d'Achat

#### Test 4.2.1: Création facture avec lignes
**ID:** TC-ACH-004  
**Priorité:** Critique  
**Type:** Fonctionnel

**Description:** Créer une nouvelle facture d'achat avec plusieurs lignes de produits.

**Préconditions:**
- Avoir au moins un fournisseur en base
- Avoir au moins un produit en base
- Être sur le module Achats

**Étapes de test:**
1. Cliquer sur l'onglet "Nouvelle facture"
2. Sélectionner un fournisseur
3. Sélectionner la date du jour
4. Ajouter une note: "Commande mensuelle"
5. Ajouter une ligne:
   - Produit: Sélectionner "Monture Titane Ray-Ban"
   - Quantité: "5"
   - Prix unitaire HT: "45.00" (pré-rempli)
   - TVA: "20%"
   - Cliquer sur "Ajouter"
6. Ajouter une deuxième ligne:
   - Produit: Sélectionner "Verre Progressif 1.67"
   - Quantité: "10"
   - Prix unitaire HT: "80.00"
   - TVA: "20%"
   - Cliquer sur "Ajouter"
7. Vérifier les totaux
8. Cliquer sur "Enregistrer"
9. Vérifier que la facture apparaît dans l'onglet "Factures d'achat"

**Résultats attendus:**
- [ ] Le formulaire de création s'ouvre
- [ ] Le sélecteur de fournisseur affiche les fournisseurs
- [ ] Le sélecteur de produit affiche les produits actifs
- [ ] Les lignes s'ajoutent correctement
- [ ] Les totaux (HT, TVA, TTC) sont calculés automatiquement
- [ ] La facture est créée avec le statut "BROUILLON"
- [ ] Le numéro de facture est généré automatiquement (format: AYYYYMM####)
- [ ] La facture apparaît dans la liste

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 4.2.2: Modification de quantité dans une ligne
**ID:** TC-ACH-005  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Modifier la quantité d'une ligne dans une facture en cours de création.

**Préconditions:**
- Être en cours de création d'une facture avec au moins une ligne

**Étapes de test:**
1. Cliquer sur le bouton "+" d'une ligne (quantité: 5)
2. Vérifier que la quantité passe à 6
3. Vérifier que le total ligne est recalculé
4. Cliquer sur le bouton "-" 2 fois
5. Vérifier que la quantité passe à 4

**Résultats attendus:**
- [ ] La quantité s'incrémente correctement
- [ ] La quantité se décrémente correctement
- [ ] Le total ligne est recalculé automatiquement
- [ ] Le total facture est recalculé automatiquement

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 4.2.3: Suppression d'une ligne
**ID:** TC-ACH-006  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Supprimer une ligne de produit dans une facture en cours de création.

**Préconditions:**
- Être en cours de création d'une facture avec au moins 2 lignes

**Étapes de test:**
1. Cliquer sur le bouton "Supprimer" d'une ligne
2. Confirmer la suppression
3. Vérifier que la ligne disparaît
4. Vérifier que les totaux sont recalculés

**Résultats attendus:**
- [ ] Une confirmation est demandée
- [ ] La ligne est supprimée
- [ ] Les totaux sont recalculés

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 4.3 Validation et Réception de Stock

#### Test 4.3.1: Validation d'une facture et réception de stock
**ID:** TC-ACH-007  
**Priorité:** Critique  
**Type:** Fonctionnel

**Description:** Valider une facture d'achat et réceptionner le stock.

**Préconditions:**
- Avoir une facture en statut "BROUILLON" avec des lignes
- Être sur l'onglet "Factures d'achat"

**Étapes de test:**
1. Noter le stock actuel des produits de la facture
2. Cliquer sur le bouton "Voir" de la facture
3. Cliquer sur "Valider et Réceptionner Stock"
4. Confirmer la validation
5. Vérifier que le statut passe à "VALIDE"
6. Vérifier que la date de réception est enregistrée
7. Aller dans le module Produits
8. Vérifier que le stock des produits a augmenté

**Résultats attendus:**
- [ ] Une confirmation est demandée
- [ ] Le statut passe à "VALIDE"
- [ ] La date de réception est enregistrée
- [ ] Le stock de chaque produit est incrémenté de la quantité de la ligne
- [ ] Les totaux de stock dans les statistiques sont mis à jour
- [ ] Un message de confirmation s'affiche

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 4.3.2: Tentative de validation d'une facture déjà validée
**ID:** TC-ACH-008  
**Priorité:** Moyenne  
**Type:** Validation

**Description:** Vérifier qu'une facture déjà validée ne peut pas être validée à nouveau.

**Préconditions:**
- Avoir une facture en statut "VALIDE"
- Être sur le détail de la facture

**Étapes de test:**
1. Ouvrir une facture validée
2. Vérifier que le bouton "Valider et Réceptionner Stock" n'est pas visible

**Résultats attendus:**
- [ ] Le bouton de validation n'est pas visible
- [ ] Le bouton de suppression n'est pas visible
- [ ] Seul le bouton de fermeture est disponible

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 4.4 Suppression d'une Facture

#### Test 4.4.1: Suppression d'une facture en brouillon
**ID:** TC-ACH-009  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Supprimer une facture en statut brouillon.

**Préconditions:**
- Avoir une facture en statut "BROUILLON"
- Être sur l'onglet "Factures d'achat"

**Étapes de test:**
1. Cliquer sur le bouton "Supprimer" d'une facture brouillon
2. Confirmer la suppression
3. Vérifier que la facture n'est plus dans la liste

**Résultats attendus:**
- [ ] Une confirmation est demandée
- [ ] La facture est supprimée
- [ ] Les lignes sont supprimées en cascade
- [ ] Un message de confirmation s'affiche

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 4.4.2: Tentative de suppression d'une facture validée
**ID:** TC-ACH-010  
**Priorité:** Haute  
**Type:** Validation

**Description:** Vérifier qu'une facture validée ne peut pas être supprimée.

**Préconditions:**
- Avoir une facture en statut "VALIDE"
- Être sur l'onglet "Factures d'achat"

**Étapes de test:**
1. Cliquer sur le bouton "Voir" d'une facture validée
2. Vérifier que le bouton "Supprimer" n'est pas visible

**Résultats attendus:**
- [ ] Le bouton de suppression n'est pas visible
- [ ] Un message indique que la facture est validée

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 4.5 Attachement de Facture Fournisseur

#### Test 4.5.1: Upload de facture PDF
**ID:** TC-ACH-011  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Attacher un fichier PDF de facture fournisseur.

**Préconditions:**
- Avoir un fichier PDF de facture (max 10MB)
- Être en cours de création d'une facture

**Étapes de test:**
1. Dans le formulaire de création, cliquer sur "Ajouter une facture"
2. Sélectionner un fichier PDF
3. Vérifier que le fichier est attaché
4. Enregistrer la facture

**Résultats attendus:**
- [ ] Le sélecteur de fichier s'ouvre
- [ ] Seuls les fichiers PDF sont acceptés
- [ ] Le nom du fichier s'affiche
- [ ] Le fichier est sauvegardé
- [ ] Le fichier reste attaché à la facture

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

## Module 5: Point de Vente (POS)

### 5.1 Interface POS

#### Test 5.1.1: Affichage de l'interface POS
**ID:** TC-POS-001  
**Priorité:** Critique  
**Type:** Fonctionnel

**Description:** Vérifier l'affichage complet de l'interface du Point de Vente.

**Préconditions:**
- Avoir des produits actifs en base
- Être connecté à l'application

**Étapes de test:**
1. Cliquer sur le module "Point de Vente"
2. Observer l'affichage
3. Vérifier les 3 colonnes principales

**Résultats attendus:**
- [ ] L'interface POS s'affiche
- [ ] Colonne gauche: Recherche et catalogue de produits
- [ ] Colonne centrale: Panier d'achat avec lignes
- [ ] Colonne droite: Résumé et paiement
- [ ] Un onglet "Vente" est actif
- [ ] Un onglet "Historique" est présent
- [ ] Les totaux (HT, TVA, TTC) s'affichent

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 5.1.2: Recherche de produits dans le POS
**ID:** TC-POS-002  
**Priorité:** Critique  
**Type:** Fonctionnel

**Description:** Rechercher et ajouter des produits dans le panier.

**Préconditions:**
- Avoir des produits actifs en base
- Être sur l'interface POS

**Étapes de test:**
1. Dans la barre de recherche, saisir "titane"
2. Observer les résultats
3. Cliquer sur un produit pour l'ajouter au panier
4. Vérifier que le produit apparaît dans le panier
5. Rechercher par code-barres si disponible

**Résultats attendus:**
- [ ] Les produits correspondants s'affichent
- [ ] Le produit s'ajoute au panier
- [ ] Le panier se met à jour
- [ ] Les totaux sont recalculés

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 5.2 Gestion du Panier

#### Test 5.2.1: Ajout de multiples produits au panier
**ID:** TC-POS-003  
**Priorité:** Critique  
**Type:** Fonctionnel

**Description:** Ajouter plusieurs produits différents dans le panier.

**Préconditions:**
- Avoir au moins 3 produits actifs en base
- Être sur l'interface POS

**Étapes de test:**
1. Ajouter une monture (quantité: 1)
2. Ajouter deux verres (quantité: 2 chacun)
3. Vérifier que 3 lignes apparaissent dans le panier
4. Vérifier les totaux

**Résultats attendus:**
- [ ] Chaque produit apparaît sur une ligne distincte
- [ ] Les quantités sont correctes
- [ ] Les totaux par ligne sont corrects
- [ ] Le total TTC est la somme des lignes

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 5.2.2: Modification de quantité dans le panier
**ID:** TC-POS-004  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Modifier les quantités des produits dans le panier.

**Préconditions:**
- Avoir un panier avec au moins un produit
- Être sur l'interface POS

**Étapes de test:**
1. Cliquer sur "+" pour augmenter la quantité d'un produit
2. Vérifier que le total est recalculé
3. Cliquer sur "-" pour diminuer la quantité
4. Vérifier que le total est recalculé
5. Passer la quantité à 0
6. Vérifier que la ligne est supprimée

**Résultats attendus:**
- [ ] La quantité s'incrémente correctement
- [ ] La quantité se décrémente correctement
- [ ] Les totaux sont recalculés en temps réel
- [ ] Une ligne avec quantité 0 est supprimée

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 5.2.3: Suppression d'une ligne du panier
**ID:** TC-POS-005  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Supprimer une ligne de produit du panier.

**Préconditions:**
- Avoir un panier avec au moins une ligne
- Être sur l'interface POS

**Étapes de test:**
1. Cliquer sur le bouton "Supprimer" (icône poubelle) d'une ligne
2. Confirmer si nécessaire
3. Vérifier que la ligne disparaît
4. Vérifier que les totaux sont recalculés

**Résultats attendus:**
- [ ] La ligne est supprimée
- [ ] Les totaux sont recalculés
- [ ] Le panier se met à jour

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 5.2.4: Application d'une remise globale
**ID:** TC-POS-006  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Appliquer une remise sur le total de la vente.

**Préconditions:**
- Avoir un panier avec des produits
- Être sur l'interface POS

**Étapes de test:**
1. Noter le total TTC actuel
2. Saisir une remise de "10%" dans le champ remise
3. Vérifier que le nouveau total TTC est calculé
4. Changer la remise en valeur fixe: "20"
5. Vérifier le calcul

**Résultats attendus:**
- [ ] La remise en pourcentage fonctionne
- [ ] La remise en valeur fixe fonctionne
- [ ] Le nouveau total TTC est correct
- [ ] Le montant de la remise s'affiche

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 5.3 Sélection de Client

#### Test 5.3.1: Association d'un client existant
**ID:** TC-POS-007  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Associer un client existant à la vente.

**Préconditions:**
- Avoir un panier avec des produits
- Avoir au moins un client en base
- Être sur l'interface POS

**Étapes de test:**
1. Dans la section "Client", cliquer sur le sélecteur
2. Choisir un client existant
3. Vérifier que le client est affiché

**Résultats attendus:**
- [ ] La liste des clients s'affiche
- [ ] Le client sélectionné s'affiche
- [ ] Le nom du client est visible

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 5.3.2: Création d'un nouveau client depuis le POS
**ID:** TC-POS-008  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Créer un nouveau client directement depuis le POS.

**Préconditions:**
- Avoir un panier avec des produits
- Être sur l'interface POS

**Étapes de test:**
1. Cliquer sur "Nouveau Client"
2. Remplir le formulaire avec:
   - Nom: "Durand"
   - Prénom: "Marie"
   - Téléphone: "0687654321"
3. Cliquer sur "Créer"
4. Vérifier que le client est associé à la vente

**Résultats attendus:**
- [ ] Le formulaire de création s'ouvre
- [ ] Le client est créé
- [ ] Le client est automatiquement associé à la vente
- [ ] Le nom du client s'affiche

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 5.4 Processus de Paiement

#### Test 5.4.1: Paiement avec un seul mode
**ID:** TC-POS-009  
**Priorité:** Critique  
**Type:** Fonctionnel

**Description:** Effectuer un paiement complet avec un seul mode de paiement.

**Préconditions:**
- Avoir un panier avec des produits
- Avoir sélectionné un client (optionnel)
- Être sur l'interface POS

**Étapes de test:**
1. Vérifier le total TTC à payer
2. Sélectionner le mode de paiement: "Carte"
3. Saisir le montant: total TTC
4. Cliquer sur "Enregistrer le paiement"
5. Vérifier que la vente est enregistrée
6. Vérifier l'affichage de la facture

**Résultats attendus:**
- [ ] Le paiement est enregistré
- [ ] Le statut de la vente passe à "PAYEE"
- [ ] La facture s'affiche avec tous les détails
- [ ] Le numéro de vente est généré (format: VYYYYMM####)
- [ ] Le stock des produits est décrémenté
- [ ] Le panier est vidé

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 5.4.2: Paiement multiple (échéancier)
**ID:** TC-POS-010  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Effectuer un paiement avec plusieurs modes de paiement.

**Préconditions:**
- Avoir un panier avec un total TTC > 100€
- Être sur l'interface POS

**Étapes de test:**
1. Noter le total TTC (ex: 300€)
2. Premier paiement:
   - Mode: "Carte"
   - Montant: "200"
   - Cliquer sur "Ajouter"
3. Vérifier le reste à payer (100€)
4. Deuxième paiement:
   - Mode: "Espèces"
   - Montant: "100"
   - Cliquer sur "Ajouter"
5. Vérifier que le reste à payer est 0€
6. Cliquer sur "Enregistrer le paiement"
7. Vérifier que la vente est enregistrée

**Résultats attendus:**
- [ ] Le premier paiement est ajouté
- [ ] Le reste à payer est calculé correctement
- [ ] Le deuxième paiement est ajouté
- [ ] Le reste à passe à 0€
- [ ] La vente est enregistrée
- [ ] Les deux paiements apparaissent sur la facture

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 5.4.3: Paiement partiel avec statut EN ATTENTE
**ID:** TC-POS-011  
**Priorité:** Moyenne  
**Type:** Fonctionnel

**Description:** Enregistrer un paiement partiel et laisser la vente en attente.

**Préconditions:**
- Avoir un panier avec un total TTC > 100€
- Être sur l'interface POS

**Étapes de test:**
1. Noter le total TTC (ex: 300€)
2. Premier paiement:
   - Mode: "Espèces"
   - Montant: "100"
   - Cliquer sur "Ajouter"
3. Cliquer sur "Enregistrer (Paiement partiel)"
4. Vérifier le statut de la vente

**Résultats attendus:**
- [ ] Le paiement est enregistré
- [ ] Le statut de la vente est "INITIEE"
- [ ] Le reste à payer est conservé
- [ ] La vente peut être complétée plus tard

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 5.5 Historique des Ventes

#### Test 5.5.1: Affichage de l'historique
**ID:** TC-POS-012  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Afficher et consulter l'historique des ventes.

**Préconditions:**
- Avoir au moins une vente enregistrée
- Être sur l'interface POS

**Étapes de test:**
1. Cliquer sur l'onglet "Historique"
2. Observer la liste des ventes
3. Vérifier les colonnes et badges

**Résultats attendus:**
- [ ] La liste des ventes s'affiche
- [ ] Les colonnes sont: N° Vente, Date, Client, Total TTC, Statut, Actions
- [ ] Les badges de statut sont colorés (INITIEE: jaune, PAYEE: vert)
- [ ] Les ventes sont triées par date décroissante

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 5.5.2: Consultation d'une vente
**ID:** TC-POS-013  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Consulter les détails d'une vente passée.

**Préconditions:**
- Avoir une vente enregistrée
- Être sur l'onglet "Historique"

**Étapes de test:**
1. Cliquer sur le bouton "Voir" d'une vente
2. Vérifier les détails affichés

**Résultats attendus:**
- [ ] La boîte de dialogue s'ouvre
- [ ] Le numéro de vente est affiché
- [ ] La date et l'heure sont affichées
- [ ] Le client est affiché
- [ ] Les lignes de vente sont détaillées
- [ ] Les paiements sont listés
- [ ] Les totaux sont affichés

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 5.5.3: Annulation d'une vente
**ID:** TC-POS-014  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Annuler une vente et restaurer le stock.

**Préconditions:**
- Avoir une vente payée avec des produits
- Être sur l'onglet "Historique"

**Étapes de test:**
1. Noter le stock actuel des produits de la vente
2. Cliquer sur "Annuler" pour une vente
3. Confirmer l'annulation
4. Vérifier que le statut passe à "ANNULEE"
5. Vérifier dans le module Produits que le stock est restauré

**Résultats attendus:**
- [ ] Une confirmation est demandée
- [ ] Le statut passe à "ANNULEE"
- [ ] Le stock de chaque produit est restauré
- [ ] Un message de confirmation s'affiche

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

## Module 6: Atelier

### 6.1 Liste des Commandes Atelier

#### Test 6.1.1: Affichage des commandes atelier
**ID:** TC-ATE-001  
**Priorité:** Critique  
**Type:** Fonctionnel

**Description:** Vérifier l'affichage de la liste des commandes d'atelier.

**Préconditions:**
- Avoir au moins une vente payée avec des montures ou verres
- Être connecté à l'application

**Étapes de test:**
1. Cliquer sur le module "Atelier"
2. Observer l'affichage
3. Vérifier les statistiques en haut de page

**Résultats attendus:**
- [ ] L'onglet "Commandes Atelier" est actif par défaut
- [ ] L'onglet "Prêtes pour retrait" est présent
- [ ] Les statistiques s'affichent: En attente, En cours, Terminé, Prêt
- [ ] La liste des commandes s'affiche
- [ ] Les colonnes sont: N° Vente, Client, Date, Statut, Montant, Actions

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 6.1.2: Filtrage par statut
**ID:** TC-ATE-002  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Filtrer les commandes par statut d'atelier.

**Préconditions:**
- Avoir des commandes avec différents statuts
- Être sur la liste des commandes

**Étapes de test:**
1. Sélectionner "En attente"
2. Vérifier que seules les commandes en attente s'affichent
3. Sélectionner "En cours"
4. Vérifier les résultats
5. Sélectionner "Terminé"
6. Vérifier les résultats
7. Sélectionner "Toutes"

**Résultats attendus:**
- [ ] Le filtre par statut fonctionne
- [ ] Les résultats se mettent à jour immédiatement
- [ ] Le nombre de commandes par statut est correct dans les statistiques

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 6.2 Détail d'une Commande

#### Test 6.2.1: Consultation du détail d'une commande
**ID:** TC-ATE-003  
**Priorité:** Critique  
**Type:** Fonctionnel

**Description:** Consulter tous les détails d'une commande d'atelier.

**Préconditions:**
- Avoir une vente payée avec monture/verre
- Être sur la liste des commandes

**Étapes de test:**
1. Cliquer sur le bouton "Voir" d'une commande
2. Vérifier toutes les informations affichées

**Résultats attendus:**
- [ ] La boîte de dialogue s'ouvre
- [ ] Le statut actuel est affiché avec un badge coloré
- [ ] Les informations client sont affichées (nom, téléphone, email)
- [ ] Les mesures de vision OD/OG sont affichées
- [ ] Les produits à monter sont listés (montures et verres)
- [ ] La date de vente est affichée
- [ ] La dernière mise à jour atelier est affichée
- [ ] Les notes sont affichées si présentes

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 6.3 Workflow de Montage

#### Test 6.3.1: Démarrage du montage (EN_ATTENTE → EN_COURS)
**ID:** TC-ATE-004  
**Priorité:** Critique  
**Type:** Fonctionnel

**Description:** Marquer une commande comme "en cours de montage".

**Préconditions:**
- Avoir une commande en statut "EN_ATTENTE"
- Être sur le détail de la commande

**Étapes de test:**
1. Ouvrir une commande en statut "EN_ATTENTE"
2. Cliquer sur le bouton "Commencer le montage"
3. Vérifier que le statut passe à "EN_COURS"
4. Vérifier que les statistiques sont mises à jour

**Résultats attendus:**
- [ ] Le bouton "Commencer le montage" est visible
- [ ] Le statut passe à "EN_COURS"
- [ ] La date de mise à jour est enregistrée
- [ ] Les statistiques "En attente" et "En cours" sont mises à jour
- [ ] Un message de confirmation s'affiche

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 6.3.2: Marquage comme terminé (EN_COURS → TERMINE)
**ID:** TC-ATE-005  
**Priorité:** Critique  
**Type:** Fonctionnel

**Description:** Marquer une commande comme terminée.

**Préconditions:**
- Avoir une commande en statut "EN_COURS"
- Être sur le détail de la commande

**Étapes de test:**
1. Ouvrir une commande en statut "EN_COURS"
2. Cliquer sur le bouton "Marquer comme terminé"
3. Vérifier que le statut passe à "TERMINE"
4. Vérifier les statistiques

**Résultats attendus:**
- [ ] Le bouton "Marquer comme terminé" est visible
- [ ] Le statut passe à "TERMINE"
- [ ] La date de mise à jour est enregistrée
- [ ] Les statistiques sont mises à jour
- [ ] Un message de confirmation s'affiche

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 6.3.3: Marquage comme prêt (TERMINE → PRET)
**ID:** TC-ATE-006  
**Priorité:** Critique  
**Type:** Fonctionnel

**Description:** Marquer une commande comme prête pour le retrait et notifier le client.

**Préconditions:**
- Avoir une commande en statut "TERMINE"
- Être sur le détail de la commande

**Étapes de test:**
1. Ouvrir une commande en statut "TERMINE"
2. Cliquer sur le bouton "Marquer comme prêt"
3. Vérifier que la boîte de dialogue de notification s'ouvre
4. Confirmer que le client a été notifié
5. Vérifier que le statut passe à "PRET"
6. Aller dans l'onglet "Prêtes pour retrait"
7. Vérifier que la commande apparaît

**Résultats attendus:**
- [ ] Le bouton "Marquer comme prêt" est visible
- [ ] La boîte de dialogue de notification s'ouvre
- [ ] Les informations de contact du client sont affichées
- [ ] Le statut passe à "PRET"
- [ ] La commande apparaît dans l'onglet "Prêtes pour retrait"
- [ ] Un message de confirmation s'affiche

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 6.4 Onglet "Prêtes pour Retrait"

#### Test 6.4.1: Affichage des commandes prêtes
**ID:** TC-ATE-007  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Afficher et gérer les commandes prêtes pour retrait.

**Préconditions:**
- Avoir au moins une commande en statut "PRET"
- Être sur le module Atelier

**Étapes de test:**
1. Cliquer sur l'onglet "Prêtes pour retrait"
2. Observer la liste
3. Vérifier les informations affichées

**Résultats attendus:**
- [ ] L'onglet s'affiche
- [ ] Seules les commandes en statut "PRET" sont listées
- [ ] Les informations client sont visibles
- [ ] Le numéro de téléphone est affiché
- [ ] La date de mise à jour est affichée

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 6.4.2: Confirmation de retrait par le client
**ID:** TC-ATE-008  
**Priorité:** Moyenne  
**Type:** Fonctionnel

**Description:** Marquer une commande comme retirée par le client.

**Préconditions:**
- Avoir une commande en statut "PRET"
- Être sur l'onglet "Prêtes pour retrait"

**Étapes de test:**
1. Cliquer sur le bouton "Confirmer le retrait" d'une commande
2. Confirmer l'action
3. Vérifier que la commande disparaît de la liste

**Résultats attendus:**
- [ ] Une confirmation est demandée
- [ ] La commande est marquée comme retirée
- [ ] La commande disparaît de la liste "Prêtes pour retrait"
- [ ] Un message de confirmation s'affiche

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

## Module 7: Rapports

### 7.1 Dashboard

#### Test 7.1.1: Affichage du dashboard
**ID:** TC-RAP-001  
**Priorité:** Critique  
**Type:** Fonctionnel

**Description:** Vérifier l'affichage du dashboard avec les KPIs.

**Préconditions:**
- Avoir des données de vente et de stock
- Être connecté à l'application

**Étapes de test:**
1. Cliquer sur le module "Rapports"
2. Observer l'onglet "Dashboard"
3. Vérifier toutes les cartes KPI
4. Vérifier les alertes

**Résultats attendus:**
- [ ] Les 8 KPIs s'affichent:
  - Ventes du jour
  - Ventes de la semaine
  - Ventes du mois
  - CA du jour (HT et TTC)
  - CA du mois (HT et TTC)
  - Total clients
  - Commandes atelier en attente
- [ ] Les alertes de stock bas s'affichent avec icônes rouges
- [ ] Le top 5 des produits vendus s'affiche
- [ ] Le sélecteur de période est disponible

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 7.1.2: Filtrage par période
**ID:** TC-RAP-002  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Vérifier que les données du dashboard se mettent à jour selon la période.

**Préconditions:**
- Avoir des données de vente sur plusieurs périodes
- Être sur le Dashboard

**Étapes de test:**
1. Noter les KPIs actuels (Aujourd'hui)
2. Changer la période pour "Semaine"
3. Vérifier que les KPIs changent
4. Changer la période pour "Mois"
5. Vérifier que les KPIs changent
6. Changer la période pour "Année"
7. Vérifier que les KPIs changent

**Résultats attendus:**
- [ ] Les KPIs se mettent à jour pour chaque période
- [ ] Les graphiques se mettent à jour
- [ ] Les top produits se mettent à jour
- [ ] Les alertes de stock restent affichées (indépendantes de la période)

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 7.2 Rapports de Ventes

#### Test 7.2.1: Affichage des graphiques de ventes
**ID:** TC-RAP-003  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Vérifier l'affichage des graphiques de ventes.

**Préconditions:**
- Avoir des données de vente
- Être sur le module Rapports

**Étapes de test:**
1. Cliquer sur l'onglet "Ventes"
2. Observer les graphiques
3. Vérifier les tableaux

**Résultats attendus:**
- [ ] Le graphique "Évolution des ventes" s'affiche
- [ ] Le graphique "Répartition par catégorie" s'affiche
- [ ] Le graphique "Répartition par mode de paiement" s'affiche
- [ ] Le tableau "Performance des employés" s'affiche
- [ ] Les graphiques sont interactifs (tooltips)
- [ ] Les légendes sont claires

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 7.2.2: Export CSV des ventes
**ID:** TC-RAP-004  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Exporter les données de ventes en CSV.

**Préconditions:**
- Avoir des données de vente
- Être sur l'onglet "Ventes"

**Étapes de test:**
1. Sélectionner la période "Mois"
2. Cliquer sur le bouton "Exporter CSV"
3. Vérifier que le fichier est téléchargé
4. Ouvrir le fichier CSV
5. Vérifier le contenu

**Résultats attendus:**
- [ ] Le fichier CSV est téléchargé
- [ ] Le fichier contient toutes les colonnes attendues
- [ ] Les données correspondent à la période sélectionnée
- [ ] Les montants sont au bon format
- [ ] Les dates sont au format français

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### 7.3 Rapports de Stock

#### Test 7.3.1: Affichage des rapports de stock
**ID:** TC-RAP-005  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Vérifier l'affichage des rapports d'inventaire.

**Préconditions:**
- Avoir des produits en stock
- Être sur le module Rapports

**Étapes de test:**
1. Cliquer sur l'onglet "Stock"
2. Observer les affichages
3. Vérifier les totaux

**Résultats attendus:**
- [ ] La valeur totale du stock s'affiche
- [ ] La répartition par catégorie s'affiche
- [ ] Le graphique "Valeur du stock par catégorie" s'affiche
- [ ] Le tableau "Détail par catégorie" s'affiche
- [ ] La liste des produits en stock bas s'affiche
- [ ] Les valeurs de réapprovisionnement sont calculées

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 7.3.2: Export CSV de l'inventaire
**ID:** TC-RAP-006  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Exporter l'inventaire complet en CSV.

**Préconditions:**
- Avoir des produits en base
- Être sur l'onglet "Stock"

**Étapes de test:**
1. Cliquer sur le bouton "Exporter l'inventaire"
2. Vérifier que le fichier est téléchargé
3. Ouvrir le fichier CSV
4. Vérifier le contenu

**Résultats attendus:**
- [ ] Le fichier CSV est téléchargé
- [ ] Tous les produits actifs sont inclus
- [ ] Les colonnes incluent: Référence, Désignation, Catégorie, Stock, Valeur, etc.
- [ ] Les données sont complètes et exactes

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test 7.3.3: Export CSV des stocks bas
**ID:** TC-RAP-007  
**Priorité:** Haute  
**Type:** Fonctionnel

**Description:** Exporter la liste des produits en stock bas.

**Préconditions:**
- Avoir des produits sous le stock minimum
- Être sur l'onglet "Stock"

**Étapes de test:**
1. Cliquer sur le bouton "Exporter les stocks bas"
2. Vérifier que le fichier est téléchargé
3. Ouvrir le fichier CSV
4. Vérifier le contenu

**Résultats attendus:**
- [ ] Le fichier CSV est téléchargé
- [ ] Seuls les produits en stock bas sont inclus
- [ ] Les colonnes incluent: Référence, Désignation, Stock actuel, Stock minimum, Quantité à commander
- [ ] Les données sont utiles pour la réapprovisionnement

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

## Tests Intégrateurs

### TI-1: Flux complet Vente → Atelier → Retrait

#### Test TI-1.1: Cycle complet de vente à la livraison
**ID:** TC-INT-001  
**Priorité:** Critique  
**Type:** Intégration

**Description:** Valider le flux complet d'une vente avec montage jusqu'au retrait par le client.

**Préconditions:**
- Avoir un client avec une fiche de vision
- Avoir des montures et verres en stock
- Être sur la page d'accueil

**Étapes de test:**
1. **Module Clients**: Vérifier que le client "Sophie Martin" a une fiche de vision avec des mesures
2. **Module POS**:
   - Sélectionner le client "Sophie Martin"
   - Ajouter une monture au panier
   - Ajouter deux verres au panier
   - Payer en totalité par "Carte"
   - Noter le numéro de vente (ex: V2026020001)
3. **Module Produits**: Vérifier que le stock a diminué
4. **Module Atelier**:
   - Vérifier que la commande apparaît en statut "EN_ATTENTE"
   - Ouvrir la commande
   - Vérifier que les mesures de vision du client sont affichées
   - Cliquer sur "Commencer le montage"
   - Cliquer sur "Marquer comme terminé"
   - Cliquer sur "Marquer comme prêt"
5. **Module Atelier**: Aller dans l'onglet "Prêtes pour retrait"
6. Vérifier que la commande apparaît
7. Cliquer sur "Confirmer le retrait"

**Résultats attendus:**
- [ ] La client est correctement associé à la vente
- [ ] La fiche de vision est accessible depuis l'atelier
- [ ] Le stock est décrémenté après la vente
- [ ] La commande d'atelier est automatiquement créée
- [ ] Les produits (monture + verres) sont listés dans l'atelier
- [ ] Les mesures de vision sont correctement affichées
- [ ] Le workflow de statut fonctionne: EN_ATTENTE → EN_COURS → TERMINE → PRET
- [ ] La commande apparaît dans l'onglet "Prêtes pour retrait"
- [ ] Le retrait est confirmé

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### TI-2: Flux Achat → Stock → Vente

#### Test TI-2.1: Réapprovisionnement et vente
**ID:** TC-INT-002  
**Priorité:** Critique  
**Type:** Intégration

**Description:** Valider le flux complet de réapprovisionnement et vente.

**Préconditions:**
- Avoir un fournisseur en base
- Avoir un produit avec stock bas
- Être sur la page d'accueil

**Étapes de test:**
1. **Module Produits**: Noter le stock actuel d'un produit (ex: Monture, stock = 2)
2. **Module Achats**:
   - Créer une nouvelle facture d'achat
   - Sélectionner le fournisseur
   - Ajouter une ligne avec le produit (quantité: 10)
   - Enregistrer la facture (statut: BROUILLON)
3. **Module Achats**: Valider la facture et réceptionner le stock
4. **Module Produits**: Vérifier que le stock est maintenant de 12 (2 + 10)
5. **Module POS**:
   - Créer une nouvelle vente
   - Ajouter 3 fois ce produit
   - Payer la vente
6. **Module Produits**: Vérifier que le stock est maintenant de 9 (12 - 3)

**Résultats attendus:**
- [ ] La facture d'achat est créée en brouillon
- [ ] La validation de la facture incrémente le stock
- [ ] Le stock est correctement mis à jour dans les produits
- [ ] Les statistiques de stock sont mises à jour
- [ ] Le produit est disponible dans le POS
- [ ] La vente décrémente le stock
- [ ] Le stock final est correct (initial + achat - vente)

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### TI-3: Gestion des stocks bas

#### Test TI-3.1: Alertes de stock et réapprovisionnement
**ID:** TC-INT-003  
**Priorité:** Haute  
**Type:** Intégration

**Description:** Vérifier que les alertes de stock bas fonctionnent et disparaissent après réapprovisionnement.

**Préconditions:**
- Avoir un produit avec stock = 0 et stock minimum = 3
- Être sur la page d'accueil

**Étapes de test:**
1. **Module Produits**: Vérifier que le produit a une alerte de stock bas
2. **Module Rapports**:
   - Aller dans l'onglet "Stock"
   - Vérifier que le produit apparaît dans la liste des stocks bas
   - Exporter le CSV des stocks bas
3. **Module Achats**:
   - Créer une facture d'achat
   - Ajouter ce produit (quantité: 10)
   - Valider la facture
4. **Module Produits**: Vérifier que l'alerte a disparu
5. **Module Rapports**: Vérifier que le produit n'est plus dans la liste des stocks bas

**Résultats attendus:**
- [ ] L'alerte de stock bas s'affiche sur le produit
- [ ] Le produit apparaît dans les alertes du Dashboard
- [ ] Le produit apparaît dans le rapport des stocks bas
- [ ] L'export CSV contient le produit
- [ ] Après réapprovisionnement, l'alerte disparaît
- [ ] Le produit est retiré des alertes du Dashboard
- [ ] Le produit disparaît du rapport des stocks bas

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### TI-4: Historique client complet

#### Test TI-4.1: Consultation de l'historique d'achat d'un client
**ID:** TC-INT-004  
**Priorité:** Haute  
**Type:** Intégration

**Description:** Vérifier que l'historique complet d'un client est accessible.

**Préconditions:**
- Avoir un client avec plusieurs ventes
- Être sur la page d'accueil

**Étapes de test:**
1. **Module Clients**:
   - Rechercher un client avec plusieurs achats
   - Ouvrir le détail du client
   - Vérifier que les fiches de vision sont affichées
2. **Module POS**:
   - Aller dans l'onglet "Historique"
   - Filtrer par ce client
   - Vérifier que toutes ses ventes apparaissent
   - Ouvrir une vente et vérifier le lien vers le client

**Résultats attendus:**
- [ ] Les fiches de vision du client sont accessibles
- [ ] L'historique des ventes du client est complet
- [ ] Le filtrage par client fonctionne dans l'historique POS
- [ ] Les détails de chaque vente sont accessibles
- [ ] Les montants totaux par client sont cohérents

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

## Tests de Performance

### TP-1: Chargement des listes

#### Test TP-1.1: Chargement avec 100+ clients
**ID:** TC-PER-001  
**Priorité:** Moyenne  
**Type:** Performance

**Description:** Vérifier que la liste des clients se charge rapidement avec beaucoup de données.

**Préconditions:**
- Avoir au moins 100 clients en base
- Être connecté à l'application

**Étapes de test:**
1. Cliquer sur le module "Gestion Clients"
2. Mesurer le temps de chargement
3. Tester la recherche

**Résultats attendus:**
- [ ] La liste se charge en moins de 2 secondes
- [ ] La navigation est fluide (pas de lag)
- [ ] La recherche réagit en moins de 500ms
- [ ] Le défilement est fluide

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

#### Test TP-1.2: Chargement avec 200+ produits
**ID:** TC-PER-002  
**Priorité:** Moyenne  
**Type:** Performance

**Description:** Vérifier que la liste des produits se charge rapidement.

**Préconditions:**
- Avoir au moins 200 produits en base
- Être connecté à l'application

**Étapes de test:**
1. Cliquer sur le module "Gestion Produits"
2. Mesurer le temps de chargement
3. Tester les filtres

**Résultats attendus:**
- [ ] La liste se charge en moins de 3 secondes
- [ ] Les filtres réagissent en moins de 500ms
- [ ] La navigation est fluide

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

### TP-2: Rapports

#### Test TP-2.1: Génération de rapports avec beaucoup de données
**ID:** TC-PER-003  
**Priorité:** Moyenne  
**Type:** Performance

**Description:** Vérifier que les rapports se génèrent rapidement.

**Préconditions:**
- Avoir au moins 50 ventes sur plusieurs mois
- Être connecté à l'application

**Étapes de test:**
1. Cliquer sur le module "Rapports"
2. Mesurer le temps de chargement du Dashboard
3. Changer la période et mesurer
4. Générer un export CSV

**Résultats attendus:**
- [ ] Le Dashboard se charge en moins de 3 secondes
- [ ] Le changement de période prend moins de 1 seconde
- [ ] L'export CSV se génère en moins de 5 secondes

**Critère de réussite:** Tous les critères ci-dessus doivent être validés

---

## Résumé des Tests

### Statistiques Globales

| Module | Tests Critiques | Tests Haute | Tests Moyenne | Total Tests |
|--------|----------------|-------------|---------------|-------------|
| Gestion Clients | 4 | 5 | 2 | 11 |
| Gestion Produits | 3 | 7 | 3 | 13 |
| Fournisseurs | 2 | 1 | 1 | 4 |
| Achats & Stock | 2 | 6 | 3 | 11 |
| Point de Vente (POS) | 3 | 8 | 1 | 12 |
| Atelier | 3 | 3 | 2 | 8 |
| Rapports | 2 | 5 | 0 | 7 |
| Tests Intégrateurs | 3 | 1 | 0 | 4 |
| Tests de Performance | 0 | 0 | 3 | 3 |
| **TOTAL** | **22** | **36** | **15** | **73** |

### Critères de Validation Globale

L'application OptiqueStock est considérée comme **VALIDÉE** si:

- [ ] Tous les tests critiques (22) sont réussis
- [ ] Au moins 90% des tests haute priorité sont réussis
- [ ] Au moins 80% des tests moyenne priorité sont réussis
- [ ] Tous les tests intégrateurs (4) sont réussis

---

## Notes et Observations

**Date du test:** _______________  
**Testeur:** _______________  
**Environnement:** Développement / Production  

**Résultats globaux:**
- Tests réussis: _____ / 73
- Tests échoués: _____ / 73
- Taux de réussite: _____ %

**Problèmes rencontrés:**
1. ___________________________________________________________________
2. ___________________________________________________________________
3. ___________________________________________________________________

**Recommandations:**
1. ___________________________________________________________________
2. ___________________________________________________________________
3. ___________________________________________________________________

---

**Signature du Testeur:** _______________  
**Date:** _______________
