Aller au contenu
Retour aux projets
Cover
Étude de cas

Tests Java & livraison TDD (Parkit)

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

  1. 1
    Analyse du code
    Lecture du projet existant, identification du bug de durée et des fonctionnalités manquantes
  2. 2
    Bug fix
    Correction du calcul de durée négatif pour les stationnements supérieurs à 24h
  3. 3
    TDD Feature 1
    Écriture des tests d abord → implémentation de la gratuité des 30 premières minutes
  4. 4
    TDD Feature 2
    Écriture des tests d abord → implémentation de la remise 5% pour les utilisateurs récurrents
  5. 5
    Tests unitaires
    Mockito mocks sur ParkingService — couverture > 90%
  6. 6
    Tests d intégration
    ParkingDataBaseIT 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

Screenshot 1