Article de blog

Utilisation et compréhension du serveur SonarQube pour la couverture de code

Manish Kapur photo

Manish Kapur

Directeur principal, Produits et solutions

Date

  • SonarQube
  • SonarQube Cloud
  • SonarQube Server

Table des matières

  • Chevron right iconIntroduction
  • Chevron right iconQu'est-ce que la couverture de code ?
  • Chevron right iconConfiguration de la couverture de code sur le serveur SonarQube
  • Chevron right iconAnalyse de la couverture de code dans SonarQube Server
  • Chevron right iconInterprétation des mesures de couverture de code
  • Chevron right iconAvantages de l'utilisation du serveur SonarQube pour l'analyse de la couverture de code
  • Chevron right iconSonarQube et couverture de code
Essayez SonarQube gratuitement

Introduction

S'assurer que votre code est testé de manière approfondie vous permet de le mettre à jour avec confiance, car les tests qui échouent identifieront rapidement tout problème fonctionnel. Cela aide également à maintenir la qualité et la fiabilité globales de votre logiciel.

Une métrique essentielle pour évaluer l'efficacité de vos efforts de test est la couverture de code.

SonarQube Server, une puissante solution automatisée de revue de code, s'intègre de manière transparente avec les outils de couverture de test, permettant aux développeurs d'écrire un code de meilleure qualité, plus sécurisé et testé de manière exhaustive.


SonarQube Server prend en charge le reporting, le suivi et la visualisation de la couverture de code, aidant les équipes à maintenir des normes de qualité de code élevées.


Cet article explore le fonctionnement de la couverture de code dans SonarQube Server, et s'applique également à SonarQube Cloud, en couvrant sa configuration, son analyse et son interprétation.

Qu'est-ce que la couverture de code ?

La couverture de code, aussi appelée couverture de test, mesure le pourcentage de votre base de code qui est exécuté par vos tests automatisés. Elle met en évidence les parties de la base de code qui sont couvertes par les tests, celles qui ne le sont pas, et celles qui ont une couverture partielle, fournissant ainsi des informations sur les zones potentielles nécessitant une meilleure couverture de test.


Une faible couverture de code indique des zones où des bugs ou des vulnérabilités pourraient se cacher sans être détectés, posant des risques potentiels dans les environnements de production.


Typiquement, les métriques de couverture de code incluent:

  • Couverture globale : Le pourcentage de code global exécuté par les tests.
  • Couverture de ligne : Le pourcentage de lignes de code exécutées par les tests.
  • Couverture de branche : Le pourcentage de branches de flux de contrôle (instructions if, boucles, etc.) exécutées par les tests.


Configuration de la couverture de code dans SonarQube Server

SonarQube Server sert de hub central qui s'intègre de manière transparente avec les outils de couverture de code populaires. Il collecte et présente les rapports de couverture aux côtés des résultats de l'analyse statique de code, fournissant des métriques claires de réussite/échec pour garantir que votre code respecte les normes de qualité.

Une fois que vous avez configuré un outil tiers pour produire le rapport, il suffit de configurer le SonarScanner pour lui indiquer l'emplacement des rapports afin qu'il puisse les récupérer et les envoyer à SonarQube Server.

Il prend en charge l'importation de données de couverture dans des formats spécifiques à divers outils de test et langages populaires.

Pour les outils non directement pris en charge, SonarQube Server propose un format générique.

SonarQube Server prend en charge de nombreux langages de programmation, dont Java, C/C++, JavaScript, Python, .NET et PHP. Pour activer le reporting de couverture, vous devez ensuite effectuer les opérations suivantes :

  • Exécuter l'outil de couverture : Configurez votre outil de couverture pour qu'il s'exécute avant l'analyse du SonarScanner dans le cadre de votre pipeline de build.
  • Faire correspondre le format du rapport : Configurez le format de sortie de votre outil de couverture pour qu'il corresponde à ce que le SonarScanner attend. Par exemple, dans un projet Java basé sur Maven, vous pouvez utiliser le plugin JaCoCo pour produire des rapports de couverture.
  • Définir les paramètres SonarScanner : Configurez les paramètres d'analyse SonarScanner pour la couverture de test avec les emplacements des rapports de couverture afin d'importer les fichiers de rapport générés.

Lors de chaque build, votre outil de couverture collecte les données de couverture et génère les résultats dans un ou plusieurs fichiers (généralement des fichiers distincts pour la couverture de test).

Ensuite, le SonarScanner, dans le cadre de son processus d'analyse, importe ces fichiers et envoie les résultats à SonarQube Server.

SonarQube Server importe de manière transparente les données de couverture provenant de divers outils et langages. Il prend également en charge un format générique pour la conversion personnalisée, garantissant ainsi la compatibilité même avec les outils non pris en charge.

Des guides détaillés sont disponibles pour les langages suivants :

Analyse de la couverture de code dans SonarQube Server :

Une fois votre configuration terminée et l'analyse SonarQube Server lancée, vous pouvez consulter les résultats de la couverture de code dans SonarQube Server. Les principaux domaines à explorer sont les suivants :

  • Aperçu du projet : le tableau de bord fournit une vue d'ensemble de la couverture de code globale, y compris les pourcentages de couverture des lignes, des branches et des méthodes.



  • Analyse approfondie de la couverture : vous pouvez explorer en détail des modules, des packages et des classes spécifiques afin d'afficher des mesures de couverture détaillées. Cela permet d'identifier les sections de code non testées qui pourraient nécessiter des tests supplémentaires. Les mesures de couverture sont disponibles à la fois pour le nouveau code et pour l'ensemble du code.



  • Vous pouvez également voir les annotations de couverture dans le contexte du fichier qui indiquent si le code est couvert, partiellement couvert ou non couvert par les tests unitaires.



  • Évolution de la couverture : SonarQube Server suit la couverture au fil du temps, ce qui vous permet de surveiller les améliorations ou les régressions de votre couverture de test entre différentes versions et différents commits.



Interprétation des mesures de couverture du code

Bien que la couverture du code soit une mesure essentielle, se concentrer sur une couverture à 100 % peut conduire à un rendement décroissant. Voici quelques conseils pour l'interpréter :

  • Une couverture élevée n'est pas synonyme de haute qualité : une couverture élevée du code ne garantit pas des tests de haute qualité. Assurez-vous que vos tests couvrent les cas limites et les points de défaillance potentiels.
  • Recherchez une couverture significative : visez une couverture qui vous donne confiance dans le comportement de votre code plutôt que de vous concentrer uniquement sur l'obtention d'un pourcentage élevé.
  • Équilibrez la couverture avec d'autres mesures : la couverture de code doit être considérée parallèlement à d'autres mesures de qualité fournies par SonarQube Server, telles que les odeurs de code, les bogues et les vulnérabilités de sécurité.


Avantages de l'utilisation de SonarQube Server pour l'analyse de la couverture de code

  1. Fiabilité et maintenabilité améliorées : une couverture de code plus élevée indique que vos tests exercent davantage de chemins de code, ce qui permet d'identifier et de corriger les bogues plus tôt dans le cycle de vie du développement.
  2. Confiance accrue des développeurs : l'un des avantages significatifs de la couverture de code est la confiance qu'elle vous donne pour apporter des modifications. Grâce à la couverture de code, vous pouvez immédiatement voir l'impact de vos modifications : s'il y a des effets secondaires indésirables, les tests échoueront immédiatement. Ce retour d'information instantané permet de détecter les problèmes à un stade précoce et garantit la stabilité de votre base de code. Une base de code bien testée avec une couverture de code élevée inspire confiance aux développeurs et réduit la crainte d'introduire de nouveaux bogues en production.
  3. Rapports détaillés : SonarQube Server propose des rapports de couverture de code granulaires qui identifient les sections non testées de votre code. Ces rapports ventilent la couverture par lignes et par fichiers, offrant ainsi une image claire de vos efforts de test. Les rapports de couverture du code permettent de démontrer la qualité et la rigueur du processus de test aux parties prenantes et aux clients potentiels.
  4. Informations exploitables : Au-delà du simple rapport des pourcentages de couverture, SonarQube Server offre des informations exploitables dans le contexte de votre base de code. Il met en évidence les zones à faible couverture, en fournissant des métriques telles que les lignes non couvertes et les conditions non couvertes. Reportez-vous à la documentation pour connaître toutes les métriques que SonarQube Server rapporte pour la couverture des tests.

Sonar et couverture de code :

SonarQube Server permet aux développeurs d'obtenir une couverture de code complète, en leur offrant une visibilité claire sur les zones non testées et en leur fournissant des informations exploitables avec leur contexte.


Il équipe les développeurs en leur fournissant une mesure quantitative de l'efficacité des tests.


Ces données aident les équipes à suivre les progrès réalisés par rapport aux objectifs de test et à prendre des décisions éclairées concernant l'allocation des ressources pour les activités de test.


En intégrant l'analyse de couverture dans votre workflow de développement, vous pouvez vous assurer que votre base de code est bien testée et maintenir des normes de qualité élevées.


N'oubliez pas que si la couverture de code est importante, elle doit s'inscrire dans une stratégie plus large d'amélioration continue de la qualité du code.


Prêt à tirer parti de SonarQube Server pour l'analyse de la couverture de code ? Essayez Developer Edition par vous-même.



Renforcez la confiance dans chaque ligne de code

Intégrez SonarQube à votre flux de travail et commencez dès aujourd'hui à détecter les vulnérabilités.

Image for rating

120+ G2 Reviews

CommencerContacter le service commercial
  • Suivez SonarSource sur Twitter
  • Suivez SonarSource sur Linkedin
language switcher
Français (French)
  • Documentation juridique
  • Trust Center

© 2008-2024 SonarSource SA. Tous droits réservés. SONAR, SONARSOURCE, SONARLINT, SONARQUBE, SONARCLOUD et CLEAN AS YOU CODE sont des marques déposées de SonarSource SA.