Module Intgration Continue Prsentation de Sonar Qube Sonar

Module Intégration Continue Présentation de Sonar. Qube

Sonar. Qube • Solution Web Open. Source • Permettant de gérer la qualité du code § De manière centralisée

Vue Centralisée Statistiques sur l’ensemble des projets audités Vue globale des projets

Sonar. Qube • Solution Web Open. Source • Permettant de gérer la qualité du code § De manière centralisée • Multi langages (+ de 25)

Sonar. Qube PHP Java. Script CSS HTML C# Kotlin C/C++ Flex Scala Type. Script VB. NET Python Go T-SQL XML Ruby PL/SQL Apex Swift PL/I Objective-C RPG COBOL VB 6 ABAP

Sonar. Qube • Solution Web Open. Source • Permettant de gérer la qualité du code § De manière centralisée • Multi langages (+ de 25) • Intégration Devops § § § Intégration avec les outils CI (Jenkins, Travis. CI, Azure Devops…) Notification (Succes / Echec) Haute disponibilité • Securisé / basé sur RBAC

7 axes de qualité Respect des standards Anomalies Potentielles Anomalies Complexité Duplications 7 axes de qualité Absence / Manque de Tests Unitaires Architecture / Design Code spaghetti Documentation / Commentaires

7 axes de qualité

Duplications Doit tendre vers 0. Duplication : Ø Forte probabilité de production d’anomalies Ø Code inutile Refactoring

Complexité • 2 niveaux de complexité § Complexité cyclomatique, appelée méthode de Mc. Cabe, représente le nombre de décision d’un algorithme en comptabilisant le nombre de chemin linéairement indépendant (nombre de if / else / case) § Complexité cognitive, inventée en 2016 par Sonar. Source, s’affranchie de tout fondement mathématique. Le but est de qualifier l’effort nécessaire pour comprendre un algorithme.

Absence / Manque de Tests Unitaires Couverture de la classe Lignes non couvertes Conditions partiellement couvertes

Respect des standards Temps estimatif de correction Information sur l’anomalie Niveau de l’anomalie parmi : • Bloquant • Critique • Majeur • Mineur • Info

Anomalies • Anomalies pouvant entrainer des « plantages » ou des erreurs lors de l’exécution. • Exemple : § § Ressources non fermées Détection des boucles infinies Mauvais usages des classes (new Big. Decimal(double)) Création d’exception sans un throw

Quality Gate Est-ce que je peux livrer mon projet en production aujourd’hui ? PASSED FAILED • En se basant § § § Absence d’anomalies bloquantes Couverture de code supérieur à 80% Et d’autres indicateurs liés à la Sécurité, Fiabilité et la maintenabilité

Installation • Téléchargement sur le site https: //www. sonarqube. org/downloads/ • Décompresser et exécuter le script associé à l’OS Sonar. Qube utilise une base de données pour enregistrer les audits. Pour un mode test, il n’est pas nécessaire d’installer une base de données. Une base de données h 2 est intégrée. Pour un mode production, il est nécessaire d’utiliser une base de données type postgres, mysql…
- Slides: 15