0% ont trouvé ce document utile (0 vote)
79 vues27 pages

DevOps 5 - SonarQube

Le chapitre 5 sur SonarQube présente cet outil d'analyse statique de code, qui permet de détecter les problèmes de qualité dans le code source. Il couvre les tests dynamiques et statiques, l'installation de SonarQube via Docker, son utilisation avec Jenkins, ainsi que l'interprétation des résultats d'analyse. SonarQube offre des fonctionnalités variées, telles que la mesure de la qualité du code, la détection de bugs et de vulnérabilités, et l'intégration avec des outils de développement.

Transféré par

medrayen.balghouthi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
79 vues27 pages

DevOps 5 - SonarQube

Le chapitre 5 sur SonarQube présente cet outil d'analyse statique de code, qui permet de détecter les problèmes de qualité dans le code source. Il couvre les tests dynamiques et statiques, l'installation de SonarQube via Docker, son utilisation avec Jenkins, ainsi que l'interprétation des résultats d'analyse. SonarQube offre des fonctionnalités variées, telles que la mesure de la qualité du code, la détection de bugs et de vulnérabilités, et l'intégration avec des outils de développement.

Transféré par

medrayen.balghouthi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

DevOps

Chapitre 5 : SonarQube

ESPRIT – UP ASI (Architecture des Systèmes d’Information)


Bureau E204

© 2023-2024
Plan du cours
– Introduction
– Tests dynamiques et Tests statiques
– C’est quoi SONARQUBE
– Caractéristiques de SONARQUBE
– Installation de SONARQUBE (à partir d’une Image Docker)
– Utilisation de Sonarqube
– Compréhension des résultats d’analyse de code
– Travail à faire (Analyser le code d'un projet sur Git avec SONARQUBE en utilisant
Jenkins)
2
© 2023-2024 – Module DevOps – Introduction
Introduction

3
© 2023-2024 – Module DevOps – Introduction
Problématique

Comment s'assurer que le code des


logiciels est de haute qualité dès le début
du développement et comment garantir
que les applications restent fiables à long
terme ?

4
© 2023-2024 – Module DevOps – Introduction
Tests dynamiques et Tests statiques

– Les tests font partie de cycle de vie du développement d’une application


donnée.

– Les tests visent à s’assurer que le code qui sera déployé est de bonne qualité,
sécurisé et exempt de bugs (environ 30% du temps de développement doit
être consacré aux tests).

Développeur Testeur Déploiement 5


© 2023-2024 – Module DevOps – Introduction
Tests dynamiques
– Les tests dynamiques consistent à exécuter le code pour repérer les erreurs,
les bugs et évaluer les performances à l'aide de différentes méthodes telles que
les tests unitaires, les tests d'intégration, les tests de régression et les tests de
charge.

6
© 2023-2024 – Module DevOps – Introduction
Tests statiques
– Les tests statiques sont réalisés sans exécuter le code. Ils inspectent le code
source, la conception et la documentation pour détecter des problèmes
potentiels, comme les violations de normes de codage, les erreurs de syntaxe,
les incohérences de conception, etc.

→ SonarQube est un exemple d'outil


d'analyse statique de code utilisé pour
effectuer ces tests.

7
© 2023-2024 – Module DevOps – Introduction
SonarQube
› SonarQube est un outil de test statique, open-source, qui analyse le code source
pour détecter et corriger les problèmes de qualité, tels que les bugs, les
vulnérabilités de sécurité et les mauvaises pratiques de codage.
› Il permet de mesurer la qualité du code source en continu (revue de code
automatique). crée une analyse du code

le représente visuellement
outil de test statique

écrit du code

8
© 2023-2024 – Module DevOps – Introduction Développeur Code
SonarQube - Caractéristiques
Les principales fonctionnalités de
› Analyse du code source.
› Prise en charge de nombreux langages (Java, .Net (C#), Python, PHP, JavaScript, …).
› Détection de problèmes dans le code, comme les bugs et les vulnérabilités.
› Mesure de la qualité du code avec des métriques.
› Intégration avec des outils de gestion de projets et de développement.
› Création de rapports détaillés sur la qualité du code et son évolution.
› Personnalisation des règles de qualité.
› Support de l'intégration continue (CI/CD).

9
© 2023-2024 – Module DevOps – Introduction
SonarQube - Plugin IDE
› SonarQube peut être installé de manière indépendante (en mode standalone)
ou intégré en tant que plugin dans un environnement de développement (IDE).

10
© 2023-2024 – Module DevOps – Introduction
SonarQube - Plugin IntelliJ
› Dans IntelliJ, vous pouvez accéder à Setting -> Plugins -> Marketplace, puis
recherchez « Sonar », installez le plugin « SonarLint », acceptez l'installation et
acceptez de redémarrer IntelliJ à la fin du processus d'installation.

11
© 2023-2024 – Module DevOps – Introduction
SonarQube - Plugin IntelliJ
› Ouvrez l'un de vos projets dans IntelliJ, faites un clic droit et sélectionnez
SonarLint -> Analyze with SonarLint, puis examinez les résultats

12
© 2023-2024 – Module DevOps – Introduction
SonarQube - Plugin IntelliJ
› Résultat :

13
© 2023-2024 – Module DevOps – Introduction
SonarQube - Installation
1. Téléchargez l'image Docker de SonarQube :
› Connectez-vous à votre machine virtuelle Ubuntu en utilisant un client SSH. Pour ce faire,
démarrez VirtualBox, ouvrez une fenêtre PowerShell et exécutez les commandes vagrant
up et vagrant ssh.
› Assurez-vous d'avoir effectué un chmod au préalable pour éviter les problèmes de droits
d'accès.
› Utilisez la commande docker pull pour télécharger l'image SonarQube depuis le Docker
Hub.

14
© 2023-2024 – Module DevOps – Introduction
SonarQube - Lancement
2. Exécutez le conteneur SonarQube :

› Vous pouvez maintenant lancer un conteneur SonarQube en utilisant la commande


docker run.

-d : Lance le conteneur en en arrière-plan


--name sonarqube : Attribue un nom au conteneur, ici "sonarqube"
-p 9000:9000 -p 9092:9092 : Associe les ports du conteneur aux ports
correspondants de l'hôte, permettant ainsi d'accéder à l'interface web et au broker de
messagerie.
15
© 2023-2024 – Module DevOps – Introduction
SonarQube - Utilisation
3. Accédez à l'interface web de SonarQube :
› Vous pouvez maintenant accéder à l'interface web de SonarQube en ouvrant votre navigateur
et en visitant [Link] Vous devrez vous connecter avec les informations
d'identification par défaut (admin/admin).

› Vous pouvez changer le mot de passe par sonar par exemple : (admin/sonar).
16
© 2023-2024 – Module DevOps – Introduction
SonarQube - Utilisation
ATTENTION :
› Si vous arrêtez le conteneur SonarQube (en utilisant CTRL+C ou en arrêtant la VM), évitez de
lancer à nouveau docker run sur l'image sonarqube, car cela créerait un nouveau conteneur.
Au lieu de cela, utilisez simplement la commande suivante pour redémarrer le conteneur
existant : docker start <NAME_CONTAINER ou ID_CONTAINER>

17
© 2023-2024 – Module DevOps – Introduction
SonarQube - Utilisation avec Jenkins
› Pour mettre en place l'analyse d'un projet Git avec SONARQUBE en utilisant Jenkins,
suivez les étapes suivantes :
○Accédez à Jenkins via l'URL [Link]

○Dans le pipeline Jenkins existant, ajoutez un nouveau stage au script Groovy pour
récupérer le code de votre projet depuis GitHub (assurez-vous de spécifier l'URL de
votre projet)

18
© 2023-2024 – Module DevOps – Introduction
SonarQube - Utilisation avec Jenkins
○Exécutez les commandes Maven clean et compile pour nettoyer et compiler le
code du projet que vous avez récupéré depuis Git (utilisez la commande sh ' '
correspondante).

19
© 2023-2024 – Module DevOps – Introduction
SonarQube - Utilisation avec Jenkins
○Lancez la commande Maven sonar:sonar pour analyser la qualité du code avec
SonarQube et envoyez le rapport au serveur SonarQube (assurez-vous de fournir le
mot de passe de votre instance SonarQube).

○Lancez le Job via Jenkins.


20
© 2023-2024 – Module DevOps – Introduction
SonarQube - Utilisation avec Jenkins

21
© 2023-2024 – Module DevOps – Introduction
SonarQube - Analyse des résultats
› Accédez à [Link] et consultez les résultats de l'analyse de votre projet.

› Sur l'interface, cliquez simplement sur le projet "timesheet-devops" pour accéder aux détails
complets de cette analyse.
› SonarQube détecte automatiquement le langage utilisé (Java + XML dans notre cas).
› SonarQube vérifie si le code contient du code dupliqué (ce qui peut être source d'erreurs).
Dans notre cas, le pourcentage de duplications est de 0%.
22
© 2023-2024 – Module DevOps – Introduction
SonarQube - Analyse des résultats
› Bug : Un défaut dans le code susceptible de provoquer un comportement indésirable de
l'application, tel qu'une exception de pointeur nul, dans notre situation :

› Vulnerability : Une faiblesse de sécurité dans notre code.


› Hotspots Reviewed (Zones à vérifier) : Parties du code qui nécessitent un examen pour
s'assurer qu'elles ne présentent pas de failles de sécurité. 23
© 2023-2024 – Module DevOps – Introduction
SonarQube - Analyse des résultats
› SonarQube indique si le code a été soumis à des outils de test, tels que JUnit.

› SonarQube lui-même n'effectue pas l'analyse, mais se repose sur d'autres outils, tels que
JaCoCo. C'est pourquoi notre projet affiche un taux de couverture (Coverage) de 0 %, car
JaCoCo n'a pas été intégré.

24
© 2023-2024 – Module DevOps – Introduction
SonarQube - Analyse des résultats
› Code Smells (Mauvaises pratiques de codage) : Ce n'est pas une anomalie du code (bug), mais
plutôt du code qui peut compliquer la tâche de l'équipe de développement ou de support, par
exemple en raison de commentaires excessifs ou des imports inutilisés.

25
© 2023-2024 – Module DevOps – Introduction
SonarQube - Analyse des résultats

26
© 2023-2024 – Module DevOps – Introduction
"Apprendre par le projet, c'est découvrir
par l'action, créer par la compréhension, et
réussir par la persévérance."

ESPRIT – UP ASI (Architecture des Systèmes d’Information)

nous supportons les objectifs de développement durable Bureau E204

Vous aimerez peut-être aussi