TimeTrack Pro - Checklist de Tests Manuels
Ce document decrit les tests manuels a effectuer pour valider le bon fonctionnement de TimeTrack Pro.
1. Tests Base de Donnees (BDD)
1.1 Table tbl_Clients
| Test |
Action |
Resultat Attendu |
OK |
| CREATE |
Ajouter un nouveau client |
Enregistrement cree avec ID auto-incremente |
[ ] |
| READ |
Lire la liste des clients |
4+ clients affiches |
[ ] |
| UPDATE |
Modifier l'email d'un client |
Email mis a jour |
[ ] |
| DELETE |
Supprimer un client sans projets |
Client supprime |
[ ] |
| FK CHECK |
Supprimer un client avec projets |
Erreur ou cascade selon config |
[ ] |
Commandes MCP pour tester:
# CREATE
run_access_query(file_path, sql="INSERT INTO tbl_Clients (Nom, Email) VALUES ('Test Client', 'test@example.com')")
# READ
get_worksheet_data(file_path, "tbl_Clients")
# UPDATE
run_access_query(file_path, sql="UPDATE tbl_Clients SET Email = 'nouveau@example.com' WHERE Nom = 'Test Client'")
# DELETE
run_access_query(file_path, sql="DELETE FROM tbl_Clients WHERE Nom = 'Test Client'")
1.2 Table tbl_Projets
| Test |
Action |
Resultat Attendu |
OK |
| CREATE |
Ajouter un projet lie a un client |
Projet cree avec FK valide |
[ ] |
| READ |
Lire les projets d'un client |
Projets filtres correctement |
[ ] |
| UPDATE |
Modifier le taux horaire |
Taux mis a jour |
[ ] |
| DELETE |
Supprimer un projet sans temps |
Projet supprime |
[ ] |
| FK CHECK |
Ajouter projet avec ClientID inexistant |
Erreur attendue |
[ ] |
Commandes MCP pour tester:
# CREATE
run_access_query(file_path, sql="INSERT INTO tbl_Projets (ClientID, Nom, TauxHoraire) VALUES (1, 'Projet Test', 75)")
# READ avec filtre
get_worksheet_data(file_path, "tbl_Projets", where_clause="ClientID = 1")
# UPDATE
run_access_query(file_path, sql="UPDATE tbl_Projets SET TauxHoraire = 85 WHERE Nom = 'Projet Test'")
# DELETE
run_access_query(file_path, sql="DELETE FROM tbl_Projets WHERE Nom = 'Projet Test'")
1.3 Table tbl_Temps
| Test |
Action |
Resultat Attendu |
OK |
| CREATE |
Ajouter une entree de temps |
Entree creee |
[ ] |
| READ |
Lire les entrees par date |
Filtrage correct |
[ ] |
| UPDATE |
Modifier la duree |
Duree mise a jour |
[ ] |
| DELETE |
Supprimer une entree |
Entree supprimee |
[ ] |
| VALIDATION |
Ajouter duree negative |
Erreur ou valeur positive |
[ ] |
Commandes MCP pour tester:
# CREATE
run_access_query(file_path, sql="INSERT INTO tbl_Temps (ProjetID, Date, Duree, Description) VALUES (1, #2025-12-30#, 2.5, 'Test entree')")
# READ avec filtre date
get_worksheet_data(file_path, "tbl_Temps", where_clause="Date >= #2025-12-01#")
# UPDATE
run_access_query(file_path, sql="UPDATE tbl_Temps SET Duree = 3.0 WHERE Description = 'Test entree'")
# DELETE
run_access_query(file_path, sql="DELETE FROM tbl_Temps WHERE Description = 'Test entree'")
2. Tests Modules VBA
2.1 mod_Config
| Test |
Verification |
OK |
| APP_NAME |
Constante definie = "TimeTrack Pro" |
[ ] |
| APP_VERSION |
Constante definie = "0.1.0" |
[ ] |
| DEFAULT_TAUX |
Constante definie = 50 |
[ ] |
2.2 mod_Utils
| Test |
Fonction |
Resultat Attendu |
OK |
| Format date |
FormatDateFR(#01/15/2025#) |
"15/01/2025" |
[ ] |
| Format monnaie |
FormatMonnaie(1234.56) |
"1 234,56 EUR" |
[ ] |
| Validation email |
IsValidEmail("test@test.com") |
True |
[ ] |
| Email invalide |
IsValidEmail("invalid") |
False |
[ ] |
2.3 mod_Calculs
| Test |
Fonction |
Resultat Attendu |
OK |
| Total heures projet |
GetTotalHeuresByProjet(1) |
Nombre > 0 |
[ ] |
| Total heures client |
GetTotalHeuresByClient(1) |
Nombre > 0 |
[ ] |
| Montant projet |
GetMontantByProjet(1) |
Heures * TauxHoraire |
[ ] |
| Montant client |
GetMontantByClient(1) |
Somme projets |
[ ] |
2.4 mod_DataAccess
| Test |
Fonction |
Resultat Attendu |
OK |
| Get client |
GetClientByID(1) |
Recordset valide |
[ ] |
| Get projet |
GetProjetByID(1) |
Recordset valide |
[ ] |
| List clients |
GetAllClients() |
Recordset avec 4+ items |
[ ] |
| List projets actifs |
GetProjetsActifs() |
Recordset filtre |
[ ] |
2.5 mod_Navigation
| Test |
Fonction |
Resultat Attendu |
OK |
| Ouvrir accueil |
OpenFormAccueil() |
Formulaire ouvert |
[ ] |
| Ouvrir clients |
OpenFormClients() |
Formulaire ouvert |
[ ] |
| Fermer tout |
CloseAllForms() |
Tous fermes |
[ ] |
2.6 mod_Export
| Test |
Fonction |
Resultat Attendu |
OK |
| Export Excel |
ExportToExcel("tbl_Clients", path) |
Fichier .xlsx cree |
[ ] |
| Export PDF |
ExportToPDF("rpt_Recap", path) |
Fichier .pdf cree |
[ ] |
3. Tests d'Integration
3.1 Requetes Agregees
| Test |
Requete |
Resultat Attendu |
OK |
| Total global heures |
SELECT SUM(Duree) FROM tbl_Temps |
58 heures |
[ ] |
| Total par client |
qry_TotalByClient |
Groupement correct |
[ ] |
| Total par projet |
qry_TotalByProjet |
Groupement correct |
[ ] |
| Montant total |
Heures * Taux |
4732.50 EUR |
[ ] |
Commandes MCP pour tester:
# Total heures
run_access_query(file_path, sql="SELECT SUM(Duree) AS TotalHeures FROM tbl_Temps")
# Total par client
run_access_query(file_path, sql="""
SELECT c.Nom, SUM(t.Duree) AS Heures, SUM(t.Duree * p.TauxHoraire) AS Montant
FROM (tbl_Clients c
INNER JOIN tbl_Projets p ON c.ClientID = p.ClientID)
INNER JOIN tbl_Temps t ON p.ProjetID = t.ProjetID
GROUP BY c.Nom
""")
# Total par projet
run_access_query(file_path, sql="""
SELECT p.Nom, SUM(t.Duree) AS Heures, p.TauxHoraire, SUM(t.Duree * p.TauxHoraire) AS Montant
FROM tbl_Projets p
INNER JOIN tbl_Temps t ON p.ProjetID = t.ProjetID
GROUP BY p.Nom, p.TauxHoraire
""")
3.2 Coherence des Donnees
| Test |
Verification |
OK |
| FK Integrite |
Tous les ProjetID dans tbl_Temps existent dans tbl_Projets |
[ ] |
| FK Integrite |
Tous les ClientID dans tbl_Projets existent dans tbl_Clients |
[ ] |
| Dates valides |
Toutes les dates sont dans le passe ou aujourd'hui |
[ ] |
| Durees positives |
Toutes les durees > 0 |
[ ] |
Commandes MCP pour valider:
# Verifier FK projets orphelins
run_access_query(file_path, sql="""
SELECT t.* FROM tbl_Temps t
LEFT JOIN tbl_Projets p ON t.ProjetID = p.ProjetID
WHERE p.ProjetID IS NULL
""")
# Resultat attendu: 0 lignes
# Verifier FK clients orphelins
run_access_query(file_path, sql="""
SELECT p.* FROM tbl_Projets p
LEFT JOIN tbl_Clients c ON p.ClientID = c.ClientID
WHERE c.ClientID IS NULL
""")
# Resultat attendu: 0 lignes
# Verifier durees invalides
run_access_query(file_path, sql="SELECT * FROM tbl_Temps WHERE Duree <= 0")
# Resultat attendu: 0 lignes
4. Tests Formulaires (Apres Phase 5)
4.1 frm_Accueil
| Test |
Action |
Resultat Attendu |
OK |
| Affichage stats |
Ouvrir formulaire |
Stats affichees (clients, projets, heures) |
[ ] |
| Navigation clients |
Clic bouton Clients |
Ouvre frm_Clients |
[ ] |
| Navigation projets |
Clic bouton Projets |
Ouvre frm_Projets |
[ ] |
| Navigation saisie |
Clic bouton Saisie |
Ouvre frm_SaisieTemps |
[ ] |
4.2 frm_Clients
| Test |
Action |
Resultat Attendu |
OK |
| Liste clients |
Ouvrir formulaire |
Tous clients affiches |
[ ] |
| Ajout client |
Remplir + Enregistrer |
Client ajoute |
[ ] |
| Edition client |
Modifier + Enregistrer |
Client modifie |
[ ] |
| Suppression |
Supprimer client |
Client supprime (si pas de projets) |
[ ] |
4.3 frm_Projets
| Test |
Action |
Resultat Attendu |
OK |
| Liste projets |
Ouvrir formulaire |
Tous projets affiches |
[ ] |
| Filtre client |
Selectionner client |
Projets filtres |
[ ] |
| Ajout projet |
Remplir + Enregistrer |
Projet ajoute |
[ ] |
| Edition projet |
Modifier taux |
Projet modifie |
[ ] |
4.4 frm_SaisieTemps
| Test |
Action |
Resultat Attendu |
OK |
| Saisie rapide |
Projet + Date + Duree + Save |
Entree creee en < 30s |
[ ] |
| Date par defaut |
Ouvrir formulaire |
Date = Aujourd'hui |
[ ] |
| Validation duree |
Entrer duree negative |
Erreur affichee |
[ ] |
4.5 frm_Historique
| Test |
Action |
Resultat Attendu |
OK |
| Liste entrees |
Ouvrir formulaire |
Toutes entrees affichees |
[ ] |
| Filtre date |
Selectionner periode |
Entrees filtrees |
[ ] |
| Filtre client |
Selectionner client |
Entrees filtrees |
[ ] |
| Export |
Clic Export Excel |
Fichier genere |
[ ] |
5. Performance
| Test |
Critere |
Seuil |
OK |
| Ouverture BDD |
Temps d'ouverture |
< 3 secondes |
[ ] |
| Requete agregee |
Temps d'execution |
< 1 seconde |
[ ] |
| Saisie temps |
Temps total operation |
< 30 secondes |
[ ] |
| Export Excel |
Temps de generation |
< 5 secondes |
[ ] |
6. Validation Finale
| Critere |
Verification |
OK |
| Toutes tables creees |
3 tables presentes |
[ ] |
| Tous modules injectes |
6 modules presents |
[ ] |
| Donnees de demo |
4 clients, 6 projets, 58h |
[ ] |
| Montant total |
4732.50 EUR |
[ ] |
| Aucune erreur BDD |
Pas d'erreurs SQL |
[ ] |
| Documentation complete |
README, PLAN, CHANGELOG |
[ ] |
Notes
- Chemin fichier:
C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb
- Date de creation: 2025-12-30
- Version testee: 0.1.0
- Testeur: _______________
Resultats
| Section |
Tests |
Passes |
Echecs |
| BDD - Clients |
5 |
|
|
| BDD - Projets |
5 |
|
|
| BDD - Temps |
5 |
|
|
| VBA - Modules |
16 |
|
|
| Integration |
8 |
|
|
| Formulaires |
18 |
|
|
| Performance |
4 |
|
|
| TOTAL |
61 |
|
|
Statut global: [ ] PASSE / [ ] ECHEC
Commentaires: