Aller au contenu

Content slides

Introduction à SonarQube

SonarQube est une plateforme d'analyse statique de code (SAST) qui aide à maintenir une haute qualité et sécurité applicative

  • Identifie les bugs, les vulnérabilités et les mauvaises pratiques
  • Mesure la dette technique et la couverture de tests
  • S'intègre nativement dans les pipelines CI/CD pour automatiser les contrôles

Méthodologie "Clean as You Code"

La force de SonarQube réside dans sa philosophie de gestion de la qualité :

  • Focus sur le nouveau code : L'objectif est de ne plus introduire de nouveaux problèmes
  • Leak Period : Seules les modifications récentes sont soumises à la Quality Gate
  • Amélioration continue : Le projet s'assainit progressivement au fil des développements
  • Évite le découragement face à l'historique de la dette technique

Détection des Problèmes

  • Bugs : Erreurs de logique ou comportements inattendus
  • Vulnérabilités : Failles de sécurité basées sur les standards OWASP et SANS
  • Hotspots de sécurité : Zones de code sensibles nécessitant une revue manuelle
  • Code Smells : Mauvaises pratiques impactant la maintenabilité du code
  • Duplication : Détection des copier-coller pour réduire la dette technique

Métriques et Qualité

  • Complexité Cognitive : Évalue si le code est facile à comprendre pour un humain (supérieur à la complexité cyclomatique)
  • Coverage : Pourcentage de lignes de code couvertes par les tests unitaires
  • Reliability, Security, Maintainability : Notes de A à E pour chaque pilier
  • Technical Debt : Estimation du temps nécessaire pour corriger les problèmes

Quality Gates

La Quality Gate est le "feu tricolore" de votre projet :

  • Ensemble de seuils à respecter (ex : 0 bug critique, > 80% de coverage sur le nouveau code)
  • Si un critère échoue, l'analyse passe au statut FAILED
  • Permet de bloquer automatiquement la fusion (Merge Request) ou le déploiement

L'écosystème Sonar

  • SonarLint : Extension IDE pour corriger les problèmes en temps réel pendant le codage (Shift Left ultime)
  • SonarQube : Serveur centralisé pour la gouvernance et les Quality Gates
  • SonarCloud : Version SaaS pour les projets open-source et les entreprises

Intégration avec GitLab CI

Exemple de job utilisant le scanner officiel :

sonarqube-check:
  stage: test
  image:
    name: sonarsource/sonar-scanner-cli:latest
    entrypoint: [""]
  variables:
    GIT_DEPTH: "0" # Requis pour l'analyse des branches
  script:
    - sonar-scanner 
      -Dsonar.projectKey=$CI_PROJECT_NAME 
      -Dsonar.sources=. 
      -Dsonar.host.url=$SONAR_HOST_URL 
      -Dsonar.token=$SONAR_TOKEN 
      -Dsonar.qualitygate.wait=true

Conclusion

  • SonarQube est indispensable pour transformer le code en actif plutôt qu'en dette
  • Prioriser la correction sur le nouveau code pour un impact immédiat
  • Combiner avec SonarLint pour un cycle de feedback ultra-court
  • Utiliser les Quality Gates comme gardiens de la production

☕️ Si tu souhaites soutenir mon travail, tu peux m'offrir un café ici.