Intégrer SonarQube à vos projets .Net

On est tous confronté à l'exigence d'avoir une certaine qualité de nos applications. Mais souvent pris par les délais, on cherche à minimiser (voir négliger) la charge demandée par cela. Ainsi, je vous propose dans cet article un moyen rapide de mettre en place Sonar sur vos projets .net et par la suite de concentrer votre charge surtout sur l'analyse et suivi des indicateurs. Mais avant de commencer, il semble nécessaire de rappeler quelques notions liées à la qualité logicielle.

Qu'entendons-nous par la qualité logicielle ?

La qualité est définie par l'ANSI comme "l'ensemble des attributs et caractéristiques d'un produit ou d'un service qui portent sur sa capacité à satisfaire des besoins donnés". Elle nous permet comme l'indique la définition de satisfaire nos clients ainsi que de garantir une certaine maintenabilité de nos applications. Cela est mesurable via des indicateurs ou des métriques. le schéma ci-dessous nous donne une vision globale sur la qualité et le positionnement de la qualité d'un produit :

 

Dans cet article, on s'intéressera seulement à la qualité du code et l'intégration de Sonar dans vos projets .net en utilisant TFS (Team Foundation Server).

C'est quoi SonarQube et comment s'en servir pour la qualité du code source ?

Pour faire simple, SonarQube est une plateforme OpenSource qui permet de mesurer la qualité du code source en continu d'un logiciel. Cette plateforme peut être utilisée pour analyser du code C# aussi bien que pour analyser du code Java ou javascript (et pleins d'autres langages).

L'analyse SonarQube se base sur des règles prédéfinies activées selon le besoin et selon le niveau de qualité demandé sur chaque projet. Parfois on peut se contenter d'utiliser les règles de base de Sonar pour s'assurer au moins du respect des bonnes pratiques d'un langage. Parfois, on a besoin de rajouter des règles personnalisées liées à la nature et au contexte d'un projet.

SonarQube génère un reporting , suite à l'analyse du code, essentiellement sur :

  • La détection des bogues et vulnérabilités potentielles
  • L'évaluation de la Couverture en terme des tests unitaires
  • La détection du code dupliqué
  • La dette technique (complexité, taille, ...)

Exemple rapport SonarQube  :

 

Grâce à ces métriques, vous pouvez définir une barrière (quality Gate) en terme de qualité à respecter par votre équipe. Exemple de configuration :

 

Comment mettre en place SonarQube pour les projets .net via TFS ?

L'intégration de sonarQube pour les projets .net devient une tâche aisée grâce à TFS (versions récentes), il suffit de quelques minutes pour réaliser votre premier rapport SonarQube. Cependant, il faut bien prendre du temps pour paramétrer et personnaliser les règles pour refléter au mieux votre environnement (culture entreprise, bonnes pratiques équipe, ...).

Avant de commencer l'intégration de SonarQube pour votre code source, assurez vous d'avoir un serveur Sonar et de configurer  un point d'entrée dans TFS. Pour ce faire, il faut aller dans TFS, engrenage à droite de votre nom (Panneau de configuration) et puis  l'onglet services. il suffit après d'ajouter un point de terminaison générique :

Une fois que le point de terminaison est configuré, on revient dans le menu Build  pour créer ou modifier une définition de build, ajouter les étapes Sonar :

Une fois les étapes ajoutées, il faut bien les classer de sorte que votre tâche Build Visual Studio soit entre les 2 tâches sonar comme ci-dessous :

Et puis de configurer seulement la première étape à savoir : SonarQube pour MSBuild - Commencer l'analyse en mettant : le point de terminaison, une clé pour le projet et un nom comme ci-dessous :

Sauvegardez et mettez votre build en file d'attente:

 

Une fois la build est terminée avec succès, il suffit d'aller sur votre site Sonar pour consulter votre rapport qualité :

 

Voilà donc votre projet sur Sonar avec un rapport sur sa qualité, à vous maintenant de faire bon usage pour améliorer la qualité de votre code source et l'utilisation des bonnes pratiques par vos développeurs.

Pour aller plus loin, je vous suggére de lire la documentation sonar sur le sujet :

https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Extension+for+VSTS-TFS

ou

https://github.com/SonarSource/sonar-.net-documentation/blob/master/doc/analyze-from-tfs.md

 

 

 

 

 

 

 

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *