Sprindo est un gestionnaire de projets développé en Java.
Ce projet vise à démontrer l’application de bonnes pratiques de développement logiciel, en mettant l’accent sur :
-
Intégration Continue et Déploiement Automatisé (CI/CD) :
Mise en place d’un pipeline automatisé pour compiler, tester et générer la documentation du projet à chaque push ou Merge Request, garantissant la stabilité du code et l’automatisation des tâches répétitives. -
Tests Avancés et Assurance Qualité :
Implémentation de tests unitaires, tests d’intégration et tests de mutation pour assurer la robustesse de la base de code. Utilisation de JUnit 4, Failsafe, Surefire, et PITest pour mesurer la couverture et l’efficacité des tests. -
Analyse statique et qualité du code :
Intégration d’outils d’analyse statique (Checkstyle, PMD, SpotBugs) pour détecter les violations de règles, les bugs potentiels et les problèmes de style avant même l’exécution des tests. -
Automatisation de la documentation :
Génération automatique de la JavaDoc et des rapports de tests à travers le pipeline CI/CD, facilitant la traçabilité et la compréhension du projet pour les membres de l’équipe et les évaluateurs. -
Gestion Agile et collaboration en équipe :
Suivi des tâches et planification via Jira, utilisation des Merge Requests protégées, et respect d’une stratégie de branchement professionnelle avec protection de la branche principale et historique préservé.
Ce projet constitue un exemple concret d’application des meilleures pratiques de développement logiciel, en combinant automatisation, tests avancés, analyses statiques et gestion agile.
- Nicolas David Lazarte Vela
- Yehi Audrey Stephy Datcha
- Fawzi Ouakkouche
Le projet Sprindo a pour objectif de fournir un gestionnaire de projets en Java intégrant des bonnes pratiques de développement logiciel :
- Mise en place d'un pipeline CI/CD complet avec GitHub/GitLab pour automatiser les builds, tests et déploiement.
- Intégration de tests de mutation avec PITest pour mesurer la qualité de la suite de tests.
- Réalisation d'analyses statiques avec Checkstyle, PMD et SpotBugs pour assurer la qualité et la conformité du code.
- Développement et exécution de tests unitaires et tests d’intégration avec JUnit 4, Surefire et Failsafe.
- Publication automatique de la JavaDoc pour documenter le code source.
- Protection de la branche principale et validation des modifications via Merge Requests.
Le projet est organisé de façon standard pour un projet Maven en Java avec intégration continue :
- Code source :
src/main/java - Tests unitaires :
src/test/java - Tests d’intégration :
src/integration-test/java - Pipeline CI/CD :
.gitlab-ci.yml - Rapports générés :
target/(JaCoCo, PITest, Checkstyle, PMD, SpotBugs, JavaDoc) - Documentation et rapports PDF :
docs/
- Java 25 – langage principal du projet
- Maven – gestion des dépendances et exécution des builds/tests
- Git & GitHub/GitLab – gestion du code source et intégration continue
- JUnit 5 – framework de tests unitaires
- PITest – tests de mutation pour mesurer la robustesse des tests
- JaCoCo – couverture de code
- Checkstyle, PMD, SpotBugs – analyses statiques de code
- Docker – pour l’environnement de build reproductible
- Jira – gestion agile des sprints et suivi des tâches
Les indicateurs principaux de qualité pour ce sprint sont :
- Couverture de code JaCoCo : ≥ 90%
- Tests de mutation PITest : 80% des mutants tués
- Analyses statiques : 0 violation détectée (Checkstyle, PMD, SpotBugs)
- Tests d’intégration et unitaires : 100% de réussite sur les cas testés
Tous les résultats sont générés automatiquement dans le pipeline CI/CD et accessibles dans le dossier target/.
Le projet est géré avec une méthodologie agile :
- Backlog et suivi des tâches via Jira : Lien vers le board Jira
- Merge Requests protégées avec pipeline obligatoire pour valider les modifications
- Historique complet des commits et suivi des contributions de chaque membre
Le projet produit automatiquement plusieurs rapports et documents pour le suivi de la qualité :
- Rapports de tests unitaires et d’intégration (Surefire/Failsafe)
- Rapports de couverture de code (JaCoCo)
- Rapports de tests de mutation (PITest)
- Analyses statiques (Checkstyle, PMD, SpotBugs)
- JavaDoc générée automatiquement via le pipeline
- Rapport PDF Sprint 3 disponible dans
docs/rapport_sprint3.pdf
- L’ensemble du pipeline CI/CD est automatisé et déclenché à chaque push ou Merge Request.
- Les artefacts générés incluent tous les rapports et la documentation pour assurer une traçabilité complète.
- La branche principale est protégée pour garantir la qualité du code et la sécurité de l’historique.