petit push
This commit is contained in:
+464
@@ -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 ! 🚀
|
||||
Reference in New Issue
Block a user