
Ces dernières années, SonarQube est devenu le standard de facto pour le contrôle de la qualité et de la sécurité du code au sein des entreprises de la tech et des grands comptes (Enterprise), y compris en France.
L’un des indicateurs les plus importants affichés par SonarQube est la Couverture de code (Code Coverage),
c’est-à-dire dans quelle mesure vos tests automatisés s’exécutent réellement sur le code déployé.
Dans cet article, nous allons expliquer aux développeurs, développeuses, tech leads et directeurs R&D :
- Qu’est-ce que la couverture de code (Code Coverage) et comment SonarQube l’utilise ?
- Comment SonarQube fonctionne concrètement avec la couverture de code (JaCoCo, Cobertura, Coverage.py, Jest, etc.) ?
- Quels sont les avantages pour chaque rôle : développeurs, tech leads, directeurs R&D et équipes DevOps ?
- Quelles fonctionnalités de couverture de code sont disponibles dans chaque édition de SonarQube (Community / Developer / Enterprise) ?
- Des conseils pratiques pour configurer les Quality Gates et les seuils de couverture, y compris l’intégration avec GitLab / GitHub / Azure DevOps.
Qu’est-ce que la couverture de code (Code Coverage) et pourquoi s’y intéresser ?
La couverture de code mesure quelle partie de votre code est réellement exécutée par vos tests unitaires, d’intégration et de bout en bout (End-to-End).
Elle ne garantit pas que vos tests sont “bons”, mais elle indique si le code sensible est au moins testé avant d’être poussé en production.
SonarQube utilise la couverture de code comme un indicateur clé dans la Quality Gate (barrière de qualité) –
le mécanisme qui détermine si une version ou une Pull/Merge Request est assez saine pour être fusionnée et déployée.
Ainsi, vous pouvez par exemple décider de bloquer une fusion si la couverture du nouveau code (Coverage on New Code) est inférieure à 80 %.
Important à comprendre : SonarQube ne lance pas de tests – il analyse des rapports
Point critique : SonarQube n’exécute pas vos tests et ne calcule pas la couverture lui-même. Il s’appuie sur des rapports de couverture déjà générés par vos outils habituels :
- Pour Java : généralement JaCoCo.
- Pour JavaScript / TypeScript : généralement Jest / nyc / Istanbul au format lcov.
- Pour Python : Coverage.py (avec pytest-cov, etc.).
- Pour .NET : Visual Studio Coverage, dotCover, OpenCover, etc.
Votre outil d’intégration continue (GitLab CI, GitHub Actions, Jenkins, Azure DevOps, etc.) exécute les tests et génère les rapports de couverture. Le SonarScanner lit ensuite ces rapports, les importe dans SonarQube et les présente de manière unifiée,
avec un impact direct sur la Quality Gate et la décoration des Pull/Merge Requests (PR/MR decoration).
Quels indicateurs de couverture SonarQube affiche-t-il ?
Contrairement aux outils qui n’affichent que la couverture de lignes (Line Coverage), SonarQube calcule un score global de couverture (Coverage) combinant la couverture des lignes et celle des branches (conditions).
En arrière-plan, il utilise une formule prenant en compte les lignes exécutables, les lignes couvertes, ainsi que les conditions évaluées à vrai (true) et faux (false).
Voici les principaux indicateurs que vous verrez sur le tableau de bord :
- Coverage : le pourcentage combiné de couverture (lignes + branches) au niveau du projet, du module ou du fichier.
- Lines to cover / Uncovered lines : le nombre de lignes de code qui devraient être couvertes et le nombre de lignes qui ne sont pas encore testées.
- Conditions to cover / Uncovered conditions : la couverture des branches (conditions) et des expressions booléennes.
- Coverage on New Code : la couverture du code nouveau ou modifié par rapport à la version de référence (baseline) définie dans votre gestionnaire de versions (SCM) (selon la méthodologie Clean as You Code).
La couverture du nouveau code est l’indicateur le plus important pour SonarQube – c’est sur lui que se base la Quality Gate par défaut « Sonar way ».
Aperçu visuel : Tableaux de bord, fichiers et Pull Requests
SonarQube affiche la couverture de code à différents niveaux de granularité :
- Au niveau du projet – couverture globale, couverture du nouveau code, tendances temporelles et période de fuite (Leak Period – date à partir de laquelle le code est considéré comme « nouveau »).

- Au niveau du fichier – mise en évidence des lignes colorées (couvertes en vert, non couvertes en rouge), décompte des lignes et branches non testées, et navigation rapide vers les zones problématiques.

- Au niveau de la Pull/Merge Request – pourcentage de couverture du nouveau code, nombre de lignes et de branches non couvertes, et résultat de la Quality Gate (Passed / Failed) affiché directement dans l’interface de votre PR sur GitLab / GitHub / Azure DevOps / Bitbucket.
Si la couverture s’affiche sur le tableau de bord mais pas dans la décoration de la PR, c’est généralement le signe d’un problème de configuration (liaison du projet, paramètres sonar.pullrequest.* ou format du rapport), et non d’une limitation de SonarQube.
💡 Vous pouvez télécharger un guide complet sur les graphiques de mesures dans SonarQube ici.
La couverture de code par rôle : développeurs, tech leads, directeurs R&D
Pour les développeurs et développeuses
- Identifiez facilement où manquent les tests : lignes rouges, branches non couvertes, couches logicielles ou modules signalés en rouge.
- La Quality Gate sur le nouveau code fait office de garde-fou : si vos tests sont insuffisants, la PR est automatiquement rejetée.
- Avec SonarLint / SonarQube for IDE, visualisez les problèmes de couverture et de qualité directement dans votre IDE avant même de pousser (push) votre code (disponible principalement dans les éditions commerciales).
Pour les Tech Leads et responsables d’équipe
- Transparence totale : visualisez la couverture par modules, bibliothèques et équipes pour identifier facilement les failles dans l’automatisation.
- Définition d’une Quality Gate commune à toute l’équipe : par exemple, 80-90 % de couverture sur le nouveau code et 0 faille de sécurité critique.
- La décoration des PR intègre naturellement la couverture dans le processus de code review, sans avoir à ouvrir un outil supplémentaire.
Pour les directeurs R&D, VP Engineering et CTO
- Dans l’édition Enterprise, obtenez une vue globale de la couverture et de la qualité sur des dizaines ou des centaines de projets grâce aux Portefeuilles (Portfolios) et à des filtres par équipe, système ou technologie.
- La couverture de code devient un véritable KPI : mesurez les tendances trimestrielles, soutenez les équipes en difficulté et prouvez l’amélioration continue de la qualité globale.
- Pour les entreprises opérant dans des secteurs hautement réglementés (FinTech, médical, défense), un taux élevé de couverture sur le nouveau code est une exigence fondamentale pour la conformité (Compliance).
Éditions SonarQube et couverture de code : quelles fonctionnalités par édition ?
La logique de calcul de couverture reste identique d’une édition à l’autre : SonarQube importe toujours les rapports externes et calcule la couverture globale ainsi que la couverture du nouveau code. La différence réside dans les fonctionnalités périphériques :
- Community Edition – couverture sur la branche principale (main) uniquement, sans analyse de branches (Branch Analysis) ni décoration de PR. Idéal pour les petites équipes ou les Proof of Concept (PoC).
- Developer Edition – analyse complète des branches (Branch Analysis) et décoration des PR pour GitLab, GitHub, Bitbucket et Azure DevOps. C’est ici que la couverture de code s’intègre pleinement dans le flux de travail (Merge Flow) quotidien.
- Enterprise Edition – inclut toutes les fonctionnalités de la version Developer, avec en plus les Portefeuilles (Portfolios), les rapports de gouvernance et des capacités avancées (Advanced Security, SBOM, etc.) permettant de piloter la qualité globale à l’échelle de l’entreprise.
Pour un comparatif détaillé des éditions, n’hésitez pas à nous contacter (coordonnées ci-dessous).
Flux de travail typique : GitLab / GitHub + SonarQube + Couverture de code
Voici le pipeline d’intégration couramment mis en œuvre dans les entreprises :
- Un développeur crée une branche ou une Merge/Pull Request sur GitLab ou GitHub.
- Le pipeline exécute les tests avec couverture (ex : mvn test + JaCoCo, pytest-cov pour Python, Jest pour React/Node) et génère des rapports XML ou lcov.
- Le job SonarScanner s’exécute après les tests, en pointant vers ces rapports
(par exemple : sonar.javascript.lcov.reportPaths=coverage/lcov.info, sonar.python.coverage.reportPaths=coverage.xml, etc.). - SonarQube importe les rapports, calcule le score global et le score sur le nouveau code, puis met à jour l’état de la Quality Gate.
- Le résultat de la Quality Gate et la couverture du nouveau code sont renvoyés à la PR sous forme de statut ou de commentaire. Si le blocage est activé, la fusion (Merge) est automatiquement bloquée si la couverture est insuffisante.
Ce modèle fonctionne également de manière optimale dans des environnements hébergés (Self-Hosted) ou isolés (Air-Gapped), un point crucial pour les grandes entreprises et les organisations ayant des exigences de sécurité strictes.
Best Practices: comment définir des seuils intelligents pour la couverture de code ?
Sur la base de notre expérience d’accompagnement et des recommandations de la communauté Sonar, nous conseillons d’adopter une approche pragmatique :
- Couverture du nouveau code (Coverage on New Code) – configurez un seuil de 80 à 90 % (et non 100 %) dans votre Quality Gate, afin de ne pas bloquer inutilement vos développeurs sur des cas marginaux non critiques.
- Code hérité (Legacy Code) – n’exigez pas immédiatement une couverture élevée sur l’ensemble du code historique. Concentrez-vous sur l’approche « Clean as You Code » : tout nouveau code ou toute modification doit être correctement couvert dès maintenant.
- Seuils adaptés par type de service – il est judicieux d’être plus strict sur les services critiques (facturation, authentification) tout en faisant preuve de plus de souplesse sur les outils internes.
- Une Quality Gate globale pour l’entreprise – tout en autorisant des dérogations (overrides) pour certains projets spécifiques afin d’allier standardisation et agilité.
Quoi de neuf récemment autour de la couverture de code et de l’IA ?
Dans les dernières versions de SonarQube (2025-2026), SonarSource continue d’ajouter de nouveaux langages, d’améliorer les performances et de renforcer les fonctions d’Advanced Security/SCA. Cependant, le moteur de couverture de code reste éprouvé et stable : importation de rapports externes, calcul de la couverture et application de la méthodologie Clean as You Code avec les Quality Gates.
En parallèle, de nouvelles fonctionnalités natives basées sur l’IA (comme AI CodeFix, des intégrations d’IDE avancées et l’Agentic SDLC) aident à corriger les anomalies détectées. Toutefois, elles ne remplacent en aucun cas les tests automatisés et ne réduisent pas l’importance d’une bonne couverture de code.
Comment ALM Toolbox vous aide à maximiser la valeur de votre couverture de code dans SonarQube ?
ALM Toolbox est un partenaire et intégrateur expert de SonarQube et SonarCloud. Nous accompagnons les entreprises et les start-ups dans la mise en place, la mise à niveau et l’adoption de la plateforme Sonar – y compris l’intégration complète de la couverture de code avec GitLab, GitHub, Azure DevOps, Jenkins, TeamCity et plus encore.
Nous proposons :
- Conseils pour choisir l’édition la plus adaptée (Community / Developer / Enterprise / Data Center).
- Conception de l’architecture et déploiement (On-Premise, Cloud ou environnements isolés/Air-Gapped).
- Conception de pipelines CI/CD avec couverture de code pour Java, .NET, Python, JavaScript/TypeScript, Go, C++/C, etc.
- Formations pour vos équipes de développement, DevOps et AppSec – incluant les bonnes pratiques pour la couverture et les Quality Gates.
- Services managés (Managed SonarQube) pour les organisations souhaitant externaliser la gestion des infrastructures.
- Accompagnement dans le choix et l’acquisition des licences officielles SonarQube / SonarCloud.
Nous serions ravis de vous aider à concevoir un processus de revue de code et de couverture adapté à vos équipes, vos langages et vos contraintes réglementaires.
Contactez-nous : par e-mail à sonarqube@almtoolbox.com. ou par téléphone au +33 1 84 17 53 28 (États-Unis / Canada) ou au +31 85 064 4633
Liens utiles :
- Site officiel SonarQube (ALM Toolbox)
- Aperçu des graphiques et diagrammes de rapports SonarQube
- Documentation technique officielle
