Qu’y a-t-il dans SonarQube pour les développeurs et les responsables R&D ?

SonarQube est un outil d’analyse de code statique qui aide les développeurs à améliorer la qualité de leur base de code en détectant les problèmes potentiels, les odeurs de code, les vulnérabilités de sécurité et la dette technique.

sonarqube developers

 

On nous  demande fréquemment comment SonarQube aide les développeurs et les responsables R&D dans leurs tâches quotidiennes, j’ai donc décidé d’écrire un article qui résume tous les points et avantages.

Tout d’abord, je vais expliquer le problème à un niveau élevé, puis inclure des détails (séparés par différentes éditions SonarQube).

Notez également que nous avons une fiche détaillée avec toutes les fonctionnalités de SonarQube (séparées par éditions et filtrables + triables)  vous pouvez télécharger ici.

Comment SonarQube aide les développeurs – à un niveau élevé :

SonarQube aide les développeurs dans plusieurs aspects de leur travail :

  • Code Quality:
    SonarQube agit comme un coach de code, analysant le travail des développeurs à la recherche de bogues, de vulnérabilités de sécurité potentielles (dans les éditions commerciales) et de domaines qui pourraient être écrits plus efficacement. Cela aide les développeurs à détecter les problèmes plus tôt et à écrire un code plus propre et plus maintenable.

  • Improved Efficiency: En identifiant les problèmes à un stade précoce, SonarQube fait gagner du temps aux développeurs en leur évitant de passer des heures à déboguer des problèmes complexes plus tard dans le cycle de développement.

  • Skill Development: Les commentaires de SonarQube aident les développeurs de tous niveaux à comprendre les meilleures pratiques et à prendre de meilleures décisions de codage. Il responsabilise les développeurs et peut constituer un outil précieux pour l’apprentissage continu.

  • Teamwork: SonarQube aide à appliquer des normes de codage cohérentes au sein d’une équipe. Cela rend le code plus facile à comprendre pour tout le monde et réduit le temps passé à déchiffrer le travail de quelqu’un d’autre.

 

Comment SonarQube aide les développeurs – en détails :

SonarQube est proposé en 4 éditions différentes, tandis que les développeurs et responsables R&D peuvent profiter de toutes les fonctionnalités à partir de l’édition Enterprise (la 3ème édition sur 4).

Voyons les principales fonctionnalités proposées dans chaque édition :

Que contient la Community Edition pour les développeurs ?

Cette édition est open source gratuite et offre les éléments suivants :

1. Noyau de SonarQube

et plus de 60 plugins.
Vous disposez d’une variété de plugins conçus pour SonarQube (certains sont gratuits tandis que d’autres doivent être payants). Vous pouvez également créer vos propres plugins (et nous pouvons le créer pour vous).

 
2. Langages de Scanning Code (analyse de code statique)

L’édition communautaire prend en charge une analyse de base de 16 langues :
Java, JavaScript, C#, Terraform, TypeScript, Kotlin, Ruby, Go, Scala, Flex, Python, PHP, HTML, CSS, XML, VB.NET

3. Analyse de la branche principale (principale) uniquement

Scannez la branche git principale (principale).

Notez que vous ne pouvez pas analyser d’autres branches (par exemple, les branches de fonctionnalités) à l’aide de l’édition communautaire, vous ne pouvez donc pas appliquer la méthodologie « Shift Left » avec cette édition.

4. SonarLint (bases)

SonarLint vous aide à recevoir des notifications sur les problèmes de code et les bogues, en temps réel, dans l’IDE des développeurs (par exemple IntelliJ / VS Code) – ce qui les aide à développer davantage de « code propre ».
Regardez une démo rapide :


Remarque : SonarLint ne peut pas être configuré dans cette version (vous pouvez le faire dans Developer Edition comme expliqué ci-dessous)

Que contient SonarQube Developer Edition pour les développeurs ?

Developer Edition offre tout dans l’édition Community PLUS :

  1. Branch Analysis

Vous pouvez analyser toutes les branches de votre choix – par ex. branches de tâches ou de fonctionnalités (plutôt que la branche principale [maître] uniquement), afin que vous puissiez détecter les problèmes beaucoup plus tôt – avant même que le code ne soit fusionné en amont avec les branches principales

  1. Pull Request Decoration & Analysis

Cela vous permet d’intégrer SonarQube à vos outils de contrôle de version et d’ajouter l’analyse SonarQube et un Quality Gate à vos demandes d’extraction (ou demandes de fusion) dans l’interface de votre fournisseur ALM/DevOps, notamment GitLab, GitHub, Bitbucket et Azure DevOps.
Il vous aide à obtenir un retour rapide (des résultats de l’analyse) dans le tableau de bord.

pull merge request decoration sonarqube gitlab
Illustration: Pull (Merge) request decoration with SonarQube and GitLab. Click to enlarge
  1. Code Security Analysis / Capabilities

Analyse de sécurité avec diverses règles pour chaque langage de code – par ex. détection des défauts d’injection
(notre feuille de calcul [télécharger ici]  spécifie le nombre de règles dont vous disposez pour chaque langue)

Remarque : l’édition Community (gratuite) ne recherche pas les failles de sécurité.

  1. Capacités SonarLint supplémentaires (par exemple, notifications intelligentes)

Dans cette version, il est possible de configurer et de recevoir des Smart Notifications (non disponibles dans l’édition gratuite Community),
donc si vous (en tant que développeur) utilisez SonarLint via votre IDE, vous pouvez configurer et recevoir des notifications.
Par exemple : Vous pouvez recevoir un message si vous n’avez pas franchi les Quality Gates.

Remarque : SonarLint dans l’édition Community (gratuite) n’analyse pas les langages qui ne sont pas pris en charge dans la version gratuite (par exemple C, C++ et autres comme détaillé ci-dessous)

  1. Prise en charge de plus de langues :

Developer Edition analyse également les langages de code suivants :

  1. C
  2. C++
  3. Objective-C
  4. PL/SQL
  5. ABAP
  6. TSQL
  7. Swift

 
Developer Edition prend en charge 24 langages de code au total.

Que contient SonarQube Enterprise Edition pour les développeurs et les responsables R&D ?

L’édition Enterprise offre tout ce qui est dans l’édition Developer PLUS :

    1. Prise en charge de plus de langues :

Enterprise Edition analyse également les langages de code suivants :

  1. Apex (of Salesforce)
  2. Cobol
  3. PL/1
  4. RPG
  5. VB 6 (Visual Basic)

SonarQube Enterprise Edition prend en charge 29 langages de code au total.

2. Portefeuille et rapports

Cette fonctionnalité est utile lorsque vous avez de nombreux projets. Il vous montre l’état des projets à haut niveau (ce qui est souvent nécessaire aux responsables de développement, aux chefs d’équipe, aux CTO, etc.).

Cela vous permet également de regrouper les projets par groupes afin de pouvoir visualiser les informations et de les rendre beaucoup plus claires et lisibles.

Fonctionnalités pertinentes ici :

  • Agrégation de projets. Par exemple, vous pouvez décider quoi regrouper en fonction de critères que vous décidez, par ex. langage de code commun ; projets hérités; groupes ; équipes etc
  • Vous pouvez automatiser le rapport et l’envoyer par email (sous forme de rapport PDF)
Regarder une démo (2 min) :

3. Rapports de sécurité

Les rapports de sécurité sont disponibles uniquement dans l’édition Enterprise.
Ces rapports vous aident à obtenir des retours plus rapides et à corriger les failles de sécurité beaucoup plus rapidement.
SonarQube vous aide à évaluer votre niveau de sécurité selon les normes OWASP Top 10 et CWE Top 25.

Par exemple:

sonarqube security reports
Security Reports (click to enlarge) 

4.Hotspot de sécurité + vulnérabilités de sécurité

Les points d’accès de sécurité sont des zones de code dans lesquelles SonarQube met en évidence les extraits de code suspects que les développeurs doivent vérifier (car il pourrait y avoir des vulnérabilités).

Voir un exemple (cliquez pour agrandir) :

sonarqube security hotspot
Security Hotspot (Hashing data is security-sensitive)

Cette fonctionnalité contribue également à améliorer les compétences de développement des développeurs et à leur donner les moyens d’agir : à mesure qu’ils écrivent du code et découvrent les points chauds, ils découvrent les risques de sécurité et les meilleures pratiques pour les prévenir.

Les vulnérabilités de sécurité nécessitent une attention immédiate. SonarQube fournit une description détaillée et met en évidence le code pertinent, ce qui aide à comprendre quel est le risque dans le code donné.
Par exemple (cliquez pour agrandir) :

sonarqube security vulnerabilities
Identify the problematic code and provide a solution on how to solve it (in this case: use a key length that provides enough entropy against brute-force attacks. For the RSA algorithm it should be at least 2048 bits long)

5.Traitement parallèle des rapports d’analyse

Vous permet de gérer des analyses et des rapports en parallèle. Ceci est utile si vous devez exécuter de nombreuses analyses et rapports.
Vous pouvez exécuter jusqu’à 10 travailleurs en parallèle.

 

FAQ (Foire aux questions) :

    • Q : Quel est le prix de SonarQube ?
      R : La tarification de SonarQube dépend de plusieurs paramètres :
      Type d’édition (comme expliqué ci-dessus dans l’article) ;
      Le nombre de lignes de code dont vous disposez
      Que vous preniez le support client
      Contactez-nous pour obtenir des prix et des devis exacts : sonarqube@almtoolbox.com ou appelez-nous
  • Q : J’utilise un langage de code pris en charge par l’édition Community (gratuite) (par exemple Java ou C#).
    Cela signifie-t-il que je bénéficie de toutes les fonctionnalités de SonarQube ?
    R : Non. Si vous utilisez l’édition gratuite, vous avez accès aux fonctionnalités disponibles uniquement dans l’édition Free Community.
    Par exemple : si vous utilisez Java (disponible en édition gratuite), vous n’obtiendrez pas de règles de sécurité ; Aucune analyse de branche ; Aucun rapport, etc.

ALM-Toolbox est un distributeur officiel de SonarQube et fournit des services de conseil, des licences SonarQube et SonarCloud, une mise en œuvre, une formation, des services gérés et aide les clients à intégrer SonarQube aux flux commerciaux et aux pipelines CI/CD.
Contactez-nous pour toute question, y compris les prix et les devis : sonarqube@almtoolbox.com ou appelez-nous : 866-503-1471 (États-Unis/Canada) ou +33 1 84 17 53 28

Liens utiles :