← Retour aux projets



Étude de cas
Tests Java & livraison TDD (Parkit)
Correction de bugs, tests unitaires TDD et tests d'intégration JUnit pour l'application Park'it chez Move'it.
Contexte
Move'it développe Park'it, un système de paiement de parking automatisé. Le développeur précédent, Tek, a laissé plusieurs bugs critiques et des fonctionnalités à implémenter. Mission : corriger les erreurs existantes, livrer 2 nouvelles fonctionnalités en TDD strict, et atteindre une couverture de tests supérieure à 70% validée par JaCoCo et Surefire.
Problèmes & Périmètre
- Bug critique : calcul de durée erroné pour les stationnements > 24h (valeurs négatives)
- Fonctionnalité manquante : gratuité des 30 premières minutes de stationnement
- Fonctionnalité manquante : réduction de 5% pour les utilisateurs récurrents
- Couverture de tests insuffisante sur ParkingService
- Absence de tests d intégration sur la base de données réelle
Solution & Livrables
- Correction du bug de durée : remplacement de la logique de calcul pour les séjours > 24h
- TDD Feature 1 : tests écrits en premier → prix à 0 pour stationnement < 30 min
- TDD Feature 2 : tests écrits en premier → réduction 5% après vérification de la plaque d immatriculation
- Tests unitaires ParkingService avec Mockito — couverture > 90%
- Tests d intégration ParkingDataBaseIT sur base de données réelle — couverture globale > 70%
- Rapports JaCoCo et Surefire générés et validés par le jury
Stack & Technologies
- Java + Maven — build et gestion des dépendances
- JUnit 5 — framework de tests unitaires
- Mockito — mocks (TicketDAO, ParkingSpotDAO, InputReaderUtil)
- JaCoCo — rapport de couverture de code
- Surefire — rapport d exécution des tests
- MySQL — base de données pour les tests d intégration
- Git — versionning avec branches feature/fix
Étapes du projet
- 1Analyse du codeLecture du projet existant, identification du bug de durée et des fonctionnalités manquantes
- 2Bug fixCorrection du calcul de durée négatif pour les stationnements supérieurs à 24h
- 3TDD Feature 1Écriture des tests d abord → implémentation de la gratuité des 30 premières minutes
- 4TDD Feature 2Écriture des tests d abord → implémentation de la remise 5% pour les utilisateurs récurrents
- 5Tests unitairesMockito mocks sur ParkingService — couverture > 90%
- 6Tests d intégrationParkingDataBaseIT sur base réelle — couverture globale > 70%, soutenance validée 4/4
Résultats de la soutenance
4/4
Compétences validées
>70%
Couverture globale (JaCoCo)
>90%
Couverture ParkingService
2
Fonctionnalités TDD livrées
Captures d'écran
