# Kit de smoke test -- Beta-testeur v11.0

**Date** : 29 mai 2026
**Version** : Pseudonymisation v11.0
**Audience** : beta-testeur (non technique)
**Objet** : verifier que l'anonymisation fonctionne correctement avant mise en production

---

## 1. Specification du PDF de test synthetique

Le PDF de test doit etre un document d'1 a 3 pages qui ressemble a un compte-rendu medical courant (compte-rendu d'hospitalisation, lettre de liaison, ou compte-rendu de consultation). Il doit contenir **deliberement** les donnees personnelles listees ci-dessous, placees dans des contextes realistes.

### 1.1 Donnees obligatoires a inclure

| # | Type de donnee | Exemple exact a inserer | Attendu apres anonymisation |
|---|---|---|---|
| 1 | **Nom de medecin** (titre + NOM en majuscules) | `DR. MARTIN` | `DR. [NOM]` |
| 2 | **Nom de patiente** (titre civilite + NOM) | `MME DUPONT` | `MME [NOM]` |
| 3 | **Date de naissance** | `nee le 14/03/1985` ou `Date de naissance : 14/03/1985` | `nee le [DATE]` ou `Date de naissance : [DATE]` |
| 4 | **NIR** (13 chiffres + cle 2 chiffres, espaces acceptes) | `1 85 03 75 108 042 37` | `[NIR]` |
| 5 | **Telephone** (format francais avec espaces) | `01 42 68 53 17` ou `06 12 34 56 78` | `[TEL]` |
| 6 | **Email** | `jean.martin@chu-reunion.fr` | `[EMAIL]` |
| 7 | **FINESS** (9 chiffres avec label) | `FINESS : 123450123` | `[FINESS]` |
| 8 | **Etablissement** (nom complet) | `CENTRE HOSPITALIER UNIVERSITAIRE DE LA REUNION` | `[ETABLISSEMENT]` ou masque selon profil |
| 9 | **Adresse complete** (numero + voie + ville + CP) | `12 rue de la Republique, 12345 Springfield` | `[ADRESSE]` |

### 1.2 Donnees supplementaires recommandees

| # | Type | Exemple | Attendu |
|---|---|---|---|
| 10 | **IPP** (identifiant patient) | `IPP : 1234512345` | `[IPP]` |
| 11 | **RPPS** (numero medecin, 11 chiffres) | `RPPS : 10000234567` | `[RPPS]` |
| 12 | **IBAN** | `FR76 3000 2005 0000 0123 4567 890` | `[IBAN]` |
| 13 | **Nom compose** (trait d'union) | `M. DURAND-MARTIN` | `M. [NOM]` ou `[NOM]-[NOM]` |
| 14 | **Nom INSEE ambigu** (test fix "GRAND") | `DR. GRAND` ou `BILLON-GRAND Sylvie` | `DR. [NOM]` / `[NOM]-[NOM] Sylvie` |
| 15 | **Deuxieme email** (dans un contexte different) | `Contact : secretariat@hopital.fr` | `Contact : [EMAIL]` |

### 1.3 Conseils de creation du PDF

- **Ne pas** faire un PDF scanne (image) -- utiliser un PDF textuel genere depuis un traitement de texte (Word, LibreOffice, Google Docs).
- Repartir les PII sur **au moins 2 pages** differentes pour valider la propagation globale (un nom detecte page 1 doit etre masque page 2).
- Inclure au moins un paragraphe de texte medical banal entre les PII (ex : « Le patient presente une hypertension arterielle moderee. Traitement propose : Amlodipine 5 mg. ») pour verifier que le texte medical n'est **pas** masque par erreur.
- Le document doit contenir **au moins 200 caracteres de texte** (hors PII) pour ne pas etre place en quarantaine automatiquement.

### 1.4 Exemple de squelette de document

```
COMPTE RENDU D'HOSPITALISATION

Patient : MME DUPONT Marie
Nee le : 14/03/1985
NIR : 1 85 03 75 108 042 37
IPP : 1234512345
Adresse : 12 rue de la Republique, 12345 Springfield
Telephone : 06 12 34 56 78
Email : marie.dupont@email.fr

Medecin traitant : DR. MARTIN Philippe
RPPS : 10000234567
Email : jean.martin@chu-reunion.fr

Etablissement : CENTRE HOSPITALIER UNIVERSITAIRE DE LA REUNION
FINESS : 123450123
Adresse : 12 rue de la Republique, 12345 Springfield

---

Motif d'hospitalisation :
La patiente MME DUPONT a ete admise le 20/05/2026 pour des douleurs
thoraciques recurrentes. Antecedents : hypertension arterielle,
diabete de type 2.

DR. GRAND a realise un ECG qui ne montre pas d'anomalie particuliere.
Le Dr BILLON-GRAND Sylvie a complete l'examen clinique.

Traitement prescrit :
- Amlodipine 5 mg, 1 comprime par jour
- Metformine 1000 mg, matin et soir

Rendez-vous de controle prevu le 15/06/2026.
Contacter le secretariat au 01 42 68 53 17 ou par email a
secretariat@chu-reunion.fr.

IBAN pour la facturation : FR76 3000 2005 0000 0123 4567 890

Dr MARTIN Philippe
Centre Hospitalier Universitaire de la Reunion
```

---

## 2. Procedure de validation manuelle

### 2.1 Preparation

1. Installer le logiciel selon la procedure fournie (decompression + premier lancement).
2. Creer un dossier de test vide sur le bureau, par exemple `C:\TestsBeta\Sortie\`.
3. Placer le PDF de test decrit ci-dessus dans un dossier source, par exemple `C:\TestsBeta\Source\`.

### 2.2 Lancement

1. Ouvrir l'application **Pseudonymisation**.
2. Dans le panneau **Dossier source**, selectionner `C:\TestsBeta\Source\`.
3. Dans le panneau **Dossier de sortie**, selectionner `C:\TestsBeta\Sortie\`.
4. Laisser le profil sur **standard_local** (par defaut).
5. Cliquer sur le bouton **Anonymiser**.
6. Attendre la fin du traitement (indicateur de progression).

### 2.3 Verification des fichiers produits

Une fois le traitement termine, ouvrir le dossier de sortie (`C:\TestsBeta\Sortie\`).

**Ce que vous devez trouver :**

| Fichier | Description |
|---|---|
| `mon_test.pseudonymise.txt` | Texte complet du document avec les PII remplaces par des balises |
| `mon_test.audit.jsonl` | Journal d'audit (une ligne par PII detectee) |
| `mon_test.redacted.pdf` | PDF caviarde (zones sensibles masquee par des rectangles noirs) |
| `mon_test.log` | Journal detaille du traitement |

**Ce que vous ne devez PAS trouver (si tout va bien) :**

- Pas de dossier `quarantaine/` -- il ne doit apparaitre que si un document a pose probleme.

### 2.4 Verification du contenu anonymise

Ouvrir le fichier `mon_test.pseudonymise.txt` et verifier point par point :

1. **Aucun** des noms, emails, telephones, NIR, adresses, FINESS, etc. du document original n'apparait en clair.
2. A la place, vous voyez des balises comme `[NOM]`, `[TEL]`, `[EMAIL]`, `[NIR]`, `[ADRESSE]`, `[FINESS]`, `[DATE]`, etc.
3. Le texte medical normal (diagnostics, traitements, observations) est **conserve intact** -- seules les donnees personnelles sont remplacees.
4. Si un nom apparaissait sur plusieurs pages dans le document original, il est masque sur **toutes** les pages.

### 2.5 Verification du PDF caviarde

1. Ouvrir `mon_test.redacted.pdf` dans un lecteur PDF classique.
2. Les zones contenant des PII doivent etre recouvertes de **rectangles noirs**.
3. Le reste du document (texte medical, mise en page) doit etre lisible.

### 2.6 En cas de quarantaine

Si un dossier `quarantaine/` est apparu dans le dossier de sortie :

1. Ouvrir le fichier `quarantaine/INDEX.md` avec un editeur de texte (Bloc-notes).
2. Ce fichier indique **quels documents** ont ete places en quarantaine et **pourquoi**.
3. Chaque document en quarantaine a son propre fichier `.reason.txt` qui explique le probleme en langage lisible.
4. **Action recommandee** : noter la raison et envoyer les fichiers de quarantaine au support pour analyse.

---

## 3. Checklist OK / KO

Cochez chaque case apres execution. Une seule case KO = le test est considere comme **echoue**.

### Fichiers de sortie

- [ ] Le fichier `.pseudonymise.txt` existe dans le dossier de sortie
- [ ] Le fichier `.audit.jsonl` existe dans le dossier de sortie
- [ ] Le fichier `.redacted.pdf` existe dans le dossier de sortie
- [ ] Le fichier `.log` existe dans le dossier de sortie
- [ ] Aucun dossier `quarantaine/` n'a ete cree (pour un document valide)

### Detection des PII (dans le .pseudonymise.txt)

- [ ] `DR. MARTIN` → masque en `DR. [NOM]` (ou equivalent)
- [ ] `MME DUPONT` → masque en `MME [NOM]` (ou equivalent)
- [ ] La date de naissance `14/03/1985` → masque en `[DATE]`
- [ ] Le NIR `1 85 03 75 108 042 37` → masque en `[NIR]`
- [ ] Le telephone `06 12 34 56 78` → masque en `[TEL]`
- [ ] L'email `jean.martin@chu-reunion.fr` → masque en `[EMAIL]`
- [ ] Le FINESS `123450123` → masque en `[FINESS]`
- [ ] L'adresse `12 rue de la Republique, 12345 Springfield` → masque en `[ADRESSE]`
- [ ] Le nom compose `DURAND-MARTIN` → masque (pas en clair)
- [ ] `DR. GRAND` → masque en `DR. [NOM]` (fix regression v11)
- [ ] `BILLON-GRAND` → masque (pas de fuite du mot "GRAND")
- [ ] L'IPP `1234512345` → masque en `[IPP]`
- [ ] Le RPPS `10000234567` → masque en `[RPPS]`
- [ ] L'IBAN → masque en `[IBAN]`

### Qualite du resultat

- [ ] Le texte medical non sensible est conserve intact (pas de sur-masquage)
- [ ] La propagation globale fonctionne : un nom masque page 1 l'est aussi page 2
- [ ] Le PDF caviarde est lisible (rectangles noirs sur les zones sensibles)
- [ ] Aucune donnee personnelle du document original n'apparait en clair dans le fichier de sortie

### Resultat global

| Critere | Statut |
|---|---|
| Tous les fichiers de sortie produits | OK / KO |
| Tous les PII masques | OK / KO |
| Aucun faux positif majeur | OK / KO |
| PDF caviarde lisible | OK / KO |
| Pas de quarantaine inattendue | OK / KO |
| **TEST GLOBAL** | **REUSSI / ECHOUE** |

---

## 4. Cas de test "erreur attendue" -- Document en quarantaine

Ce cas de test verifie que le systeme de **quarantaine differentielle** (nouveau en v11.0) fonctionne correctement : un document qui ne peut pas etre traite correctement ne doit **pas** sortir comme "anonymise" sans signal d'alerte.

### 4.1 Comment creer un PDF qui DOIT aller en quarantaine

**Methode 1 -- Document vide ou quasi-vide (pre-flight) :**

1. Creer un PDF qui ne contient que **quelques caracteres** (moins de 100).
   - Exemple : un PDF avec juste le mot `Test` ou un logo image sans texte extractible.
   - Depuis Word : taper 3 mots, exporter en PDF.
2. Ce PDF va etre detecte comme "texte insuffisant" et place en quarantaine automatique.
3. **Resultat attendu :**
   - Pas de fichier `.pseudonymise.txt` en sortie
   - Pas de fichier `.redacted.pdf` en sortie
   - Un dossier `quarantaine/` est cree avec un fichier `nom_du_doc.reason.txt` indiquant `preflight_text_too_short`
   - Le fichier `quarantaine/INDEX.md` liste ce document avec la raison

**Methode 2 -- PDF avec image uniquement (scan non-OCRise) :**

1. Prendre une photo d'un document medical avec un telephone.
2. L'inserer dans Word sans ajouter de texte.
3. Exporter en PDF.
4. Ce PDF est une **image pure** -- si l'OCR ne parvient pas a extraire au moins 100 caracteres, le document va en quarantaine.
5. **Resultat attendu :** meme resultat que Methode 1.

**Methode 3 -- PDF chiffre (protection par mot de passe) :**

1. Creer un PDF normal avec des PII (comme le document de test ci-dessus).
2. Le proteger par un mot de passe via Word ou un outil PDF (interdire l'extraction de texte).
3. **Resultat attendu :**
   - Soit le texte est quand meme extrait et le document est traite normalement
   - Soit l'extraction echoue et le document va en quarantaine avec la raison `extraction_total_failure`

### 4.2 Verification de la quarantaine

Apres avoir traite l'un des documents ci-dessus :

- [ ] Le dossier `quarantaine/` existe dans le dossier de sortie
- [ ] Le fichier `quarantaine/INDEX.md` existe et contient le nom du document teste
- [ ] Le fichier `quarantaine/<nom>.reason.txt` existe et explique la raison (lisible en langage clair)
- [ ] Le fichier `.reason.txt` contient :
  - [ ] Le type de probleme (ex : `preflight_text_too_short`)
  - [ ] L'horodatage du traitement
  - [ ] Une suggestion d'action pour l'operateur
- [ ] Aucun fichier `.pseudonymise.txt` ou `.redacted.pdf` n'a ete genere pour ce document dans le dossier de sortie principal
- [ ] Le fichier `errors.log` existe dans le dossier de sortie (journal cumulatif des erreurs)

### 4.3 Exemple de fichier .reason.txt attendu

```
Document       : doc_vide
Sévérité       : full (le document entier a été placé en quarantaine)
Raison         : preflight_text_too_short
Détail         : Seulement 12 caracteres extraits (seuil minimum = 100)
Horodatage     : 2026-05-30T14:32:11+02:00
Version code   : 0.11.0
Caractères extraits : 12
Suggestion opérateur : Verifier que le document contient du texte extractible.
                       Si c'est un scan, verifier que l'OCR est active.
```

---

## 5. Resume rapide pour le beta-testeur

| Action | Ce qu'il faut faire | Ce qu'il faut verifier |
|---|---|---|
| **Test normal** | Anonymiser le PDF de test (section 1) | Tous les PII sont masques, 3 fichiers de sortie produits |
| **Test quarantaine** | Anonymiser un PDF vide ou image (section 4) | Le dossier `quarantaine/` est cree avec explication |
| **En cas de probleme** | Envoyer au support | Le dossier `quarantaine/` complet + `errors.log` + profil utilise |

---

*Document genere le 29/05/2026 pour la beta v11.0 -- Pseudonymisation de documents medicaux*
