petit push

This commit is contained in:
AlgaLaptop
2026-01-07 23:36:24 +01:00
parent 0291e9b0dd
commit d84c6cd08f
9 changed files with 554 additions and 103 deletions
+464
View File
@@ -0,0 +1,464 @@
Parfait ! Voici un plan de tests complet et structuré ! 🧪
## 📋 Plan de tests exhaustif
### 🧹 Phase 1 : Préparation
```bash
# 1. Nettoyer complètement
make clean
# Vérifier :
# ✅ Plus de dossier build/ ou bin/
# ✅ Plus de dossier doc/
# ✅ Plus de fichiers *.jar
# ✅ Plus de sources.txt
ls -la
```
---
### ⚙️ Phase 2 : Tests des commandes Make
#### **Test 1 : Compilation seule**
```bash
make compile
```
**Vérifier :**
- ✅ Dossier `build/` créé
- ✅ Tous les `.class` présents dans `build/fr/iutfbleau/sae/`
- ✅ Pas d'erreurs de compilation
- ✅ Message "Compilation terminée !"
```bash
# Compter les fichiers compilés
find build -name "*.class" | wc -l
# Doit correspondre au nombre de fichiers .java
```
---
#### **Test 2 : Création JAR Convertisseur uniquement**
```bash
make jar-conv
```
**Vérifier :**
- ✅ Fichier `pifConverter.jar` créé
- ✅ Message "Création de pifConverter.jar..."
- ✅ Pas d'erreur
```bash
ls -lh pifConverter.jar
# Vérifier que le fichier existe et a une taille raisonnable (> 10 Ko)
```
---
#### **Test 3 : Création JAR Viewer uniquement**
```bash
make jar-view
```
**Vérifier :**
- ✅ Fichier `pifViewer.jar` créé
- ✅ Message "Création de pifViewer.jar..."
```bash
ls -lh pifViewer.jar
```
---
#### **Test 4 : Création des deux JARs**
```bash
make clean
make jar
```
**Vérifier :**
- ✅ Les deux JARs créés
- ✅ Message "JARs créés avec succès !"
```bash
ls -lh *.jar
# Doit afficher pifConverter.jar et pifViewer.jar
```
---
#### **Test 5 : But par défaut**
```bash
make clean
make
```
**Vérifier :**
- ✅ Si `all: jar` est défini, doit créer les deux JARs
- ✅ Comportement identique à `make jar`
---
#### **Test 6 : Documentation**
```bash
make doc
```
**Vérifier :**
- ✅ Dossier `doc/` créé
- ✅ Fichier `doc/index.html` existe
- ✅ Sous-dossiers créés pour chaque package
- ✅ Message "Documentation disponible : doc/index.html"
```bash
# Ouvrir la documentation
xdg-open doc/index.html # Linux
open doc/index.html # macOS
start doc/index.html # Windows Git Bash
```
**Dans le navigateur, vérifier :**
- ✅ Toutes les classes documentées
- ✅ JavaDoc visible pour chaque méthode
- ✅ Pas d'erreurs d'affichage
---
#### **Test 7 : Exécution sans JAR (debug) - Convertisseur**
```bash
# Préparer une image de test
cp quelque_part/test.jpg ./temp/
make runnotjar-conv ARGS="./temp/test.jpg"
```
**Vérifier :**
- ✅ Application démarre
- ✅ JFileChooser s'ouvre pour choisir où sauvegarder
- ✅ Pas d'erreur de ClassPath
- ✅ Pas de création de JAR (plus rapide)
---
#### **Test 8 : Exécution sans JAR (debug) - Viewer**
```bash
# Préparer un fichier PIF de test
make runnotjar-view ARGS="./temp/test.pif"
```
**Vérifier :**
- ✅ Application démarre
- ✅ Image affichée si le fichier existe
- ✅ Sinon, message d'erreur approprié
---
#### **Test 9 : Exécution avec JAR - Convertisseur**
```bash
make run-conv ARGS="./temp/test.jpg"
```
**Vérifier :**
- ✅ JAR créé automatiquement si nécessaire
- ✅ Application démarre via le JAR
---
#### **Test 10 : Exécution avec JAR - Viewer**
```bash
make run-view ARGS="./temp/test.pif"
```
**Vérifier :**
- ✅ JAR créé automatiquement si nécessaire
- ✅ Application démarre
---
### 🎯 Phase 3 : Tests des extensions de fichiers
#### **Test 11 : Sans arguments (JFileChooser)**
```bash
make run-conv
```
**Dans JFileChooser, tester :**
**Test 11a : Sans extension**
- Taper : `monimage`
- ✅ Fichier créé : `monimage.pif`
**Test 11b : Extension minuscule**
- Taper : `monimage.pif`
- ✅ Fichier créé : `monimage.pif` (pas de doublon)
**Test 11c : Extension majuscule**
- Taper : `monimage.PIF`
- ✅ Fichier créé : `monimage.pif` (converti)
**Test 11d : Extension mixte**
- Taper : `monimage.Pif`
- ✅ Fichier créé : `monimage.pif` (converti)
**Test 11e : Autre extension**
- Taper : `monimage.jpg`
- ✅ Fichier créé : `monimage.jpg.pif`
---
#### **Test 12 : Avec 1 argument (image seulement)**
```bash
make run-conv ARGS="./temp/test.jpg"
```
**Puis dans JFileChooser, refaire les tests 11a à 11e**
---
#### **Test 13 : Avec 2 arguments - Sans extension**
```bash
make run-conv ARGS="./temp/test.jpg ./temp/output"
```
**Cliquer sur "Exporter en .pif" :**
- ✅ Sauvegarde directe (pas de JFileChooser)
- ✅ Popup "Sauvegarde en cours..."
- ✅ Fichier créé : `./temp/output.pif`
- ✅ Message de confirmation
- ✅ Bouton disparaît
```bash
ls -lh ./temp/output.pif
```
---
#### **Test 14 : Avec 2 arguments - Extension minuscule**
```bash
make run-conv ARGS="./temp/test.jpg ./temp/output.pif"
```
**Vérifier :**
- ✅ Fichier créé : `./temp/output.pif`
- ✅ Pas de doublon (.pif.pif)
---
#### **Test 15 : Avec 2 arguments - Extension majuscule**
```bash
make run-conv ARGS="./temp/test.jpg ./temp/OUTPUT.PIF"
```
**Vérifier :**
- ✅ Fichier créé : `./temp/OUTPUT.pif` (corrigé en minuscule)
```bash
ls -lh ./temp/OUTPUT.pif
```
---
#### **Test 16 : Avec 2 arguments - Extension mixte**
```bash
make run-conv ARGS="./temp/test.jpg ./temp/MixedCase.Pif"
```
**Vérifier :**
- ✅ Fichier créé : `./temp/MixedCase.pif`
---
#### **Test 17 : Avec 2 arguments - Autre extension**
```bash
make run-conv ARGS="./temp/test.jpg ./temp/output.png"
```
**Vérifier :**
- ✅ Fichier créé : `./temp/output.png.pif`
---
#### **Test 18 : Chemins avec espaces**
```bash
# Créer un dossier avec espace
mkdir -p "./temp/mon dossier"
cp ./temp/test.jpg "./temp/mon dossier/"
make run-conv ARGS="./temp/mon dossier/test.jpg ./temp/mon dossier/sortie.pif"
```
**Vérifier :**
- ✅ Image chargée
- ✅ Fichier sauvegardé correctement
---
#### **Test 19 : Chemins avec caractères spéciaux**
```bash
mkdir -p "./temp/dossier-test_123"
make run-conv ARGS="./temp/test.jpg ./temp/dossier-test_123/output.pif"
```
**Vérifier :**
- ✅ Pas d'erreur
- ✅ Fichier créé
---
### 🧪 Phase 4 : Tests de robustesse
#### **Test 20 : Fichier inexistant**
```bash
make run-conv ARGS="./fichier_inexistant.jpg"
```
**Vérifier :**
- ✅ Message d'erreur : "Le fichier n'existe pas"
- ✅ Programme s'arrête proprement
---
#### **Test 21 : Fichier invalide**
```bash
echo "fake image" > ./temp/fake.jpg
make run-conv ARGS="./temp/fake.jpg"
```
**Vérifier :**
- ✅ Message d'erreur approprié
- ✅ Pas de crash
---
#### **Test 22 : Chemin de sortie invalide**
```bash
make run-conv ARGS="./temp/test.jpg /root/impossible.pif"
```
**Vérifier :**
- ✅ Message d'erreur lors de la sauvegarde
- ✅ Popup se ferme
---
#### **Test 23 : Viewer avec fichier non-PIF**
```bash
make run-view ARGS="./temp/test.jpg"
```
**Vérifier :**
- ✅ Message : "Le fichier fourni n'est pas au format PIF"
---
#### **Test 24 : Viewer avec PIF corrompu**
```bash
echo "fake pif data" > ./temp/corrupt.pif
make run-view ARGS="./temp/corrupt.pif"
```
**Vérifier :**
- ✅ Message d'erreur approprié
- ✅ Pas de crash
---
### 🏆 Phase 5 : Tests critiques pour le prof
#### **Test 25 : JARs autonomes (TRÈS IMPORTANT)**
```bash
# Sans Make, juste java -jar
java -jar pifConverter.jar ./temp/test.jpg ./temp/final.pif
```
**Vérifier :**
- ✅ Fonctionne sans Make
- ✅ Pas d'erreur ClassNotFoundException
- ✅ Fichier PIF créé
```bash
java -jar pifViewer.jar ./temp/final.pif
```
**Vérifier :**
- ✅ Image affichée correctement
- ✅ Pas d'erreur
---
#### **Test 26 : Recompilation incrémentale**
```bash
# Modifier un fichier source
echo "// commentaire" >> src/fr/iutfbleau/sae/Convertisseur.java
# Recompiler
make jar
```
**Vérifier :**
- ✅ Seuls les fichiers modifiés sont recompilés
- ✅ JAR mis à jour
---
#### **Test 27 : Test complet de bout en bout**
```bash
make clean
make
make run-conv ARGS="./temp/original.jpg ./temp/compressed.pif"
# Cliquer sur Exporter
make run-view ARGS="./temp/compressed.pif"
# Vérifier visuellement que l'image est identique
```
---
### 📊 Phase 6 : Tests de performance
#### **Test 28 : Petite image**
```bash
# Image 100x100
make run-conv ARGS="./temp/small.jpg ./temp/small.pif"
```
**Mesurer :**
- ✅ Temps de compression < 2 secondes
- ✅ Popup visible mais court
---
#### **Test 29 : Grande image**
```bash
# Image 4000x3000
make run-conv ARGS="./temp/large.jpg ./temp/large.pif"
```
**Mesurer :**
- ✅ Popup "Sauvegarde en cours..." bien visible
- ✅ Pas de freeze de l'interface
- ✅ Message de confirmation à la fin
---
## 📝 Checklist finale
Avant de rendre le projet, vérifier :
```bash
# 1. Nettoyage complet
make clean
# 2. Compilation
make
# 3. JARs créés
ls -lh *.jar
# 4. JARs autonomes fonctionnels
java -jar pifConverter.jar ./temp/test.jpg ./temp/test.pif
java -jar pifViewer.jar ./temp/test.pif
# 5. Documentation générée
make doc
xdg-open doc/index.html
# 6. Pas de fichiers .class dans Git
git status
# 7. hernand est collaborateur
# Vérifier sur Gitea
# 8. Commits équilibrés
git log --oneline --graph --all
```
---
## ✅ Tableau récapitulatif
| Test | Commande | Résultat attendu |
|------|----------|------------------|
| Compilation | `make compile` | ✅ `.class` créés |
| JAR Conv | `make jar-conv` | ✅ `pifConverter.jar` |
| JAR View | `make jar-view` | ✅ `pifViewer.jar` |
| Les deux | `make jar` | ✅ Les deux JARs |
| Doc | `make doc` | ✅ Dossier `doc/` |
| Clean | `make clean` | ✅ Tout supprimé |
| Sans extension | `monimage` | ✅ `monimage.pif` |
| Avec .PIF | `image.PIF` | ✅ `image.pif` |
| JAR autonome | `java -jar *.jar` | ✅ Fonctionne |
Bonne chance pour les tests ! 🚀