Bilan Qualité Sonarqube

Slides:



Advertisements
Présentations similaires
1 Etude Statique sur l’axe horizontal du berce BB.
Advertisements

Démarrage de FIT dans la pratique Gestion financière des projets.
Présentation LabPlus v3. Solution novatrice en Technologies de l’information Solution novatrice en Technologies de l’information Application pour la Gestion.
Les profils du SEDA confection de profil avec Agape.
Logiciel Assistant Gestion d’Événement Rémi Papillie (Chef d’équipe) Maxime Brodeur Xavier Pajani Gabriel Rolland David St-Jean.
Initiation à QuickPlace, janvier Initiation à QuickPlace n Nature de l'outil n Fonctions de base (lecture, création) n Fonctions de gestionnaire.
Migration LGA, Windows 2008 ● Pré-requis ● Postes clients ● Serveurs.
1 Java Avancé Eclipse pour les null Rémi Forax
1 Créer un extension OpenOffice.org avec Eclipse Créer une extension OpenOffice.org avec Eclipse.
GOOGLE MAPS ANDROID API V2. INTRODUCTION TO THE GOOGLE MAPS ANDROID API V2.
Installation De Peakup.  Télécharger le fichier peakup2.4.0.free.zip  Décompresser le fichier extrait sur une Directory de votre choix  Créer un lient.
Utiliser le nouveau site internet du lycée niort/
Les commandes externes
Cross-Plateform Cours JavaScript
JAVA.
Support et Maintenance SIAN : MDEL partenaires
E-Prelude.com Importation de nomenclatures issues de divers logiciels de CAO… … via un fichier « neutre » de type EXCEL.
Ecran d’accueil Une fois le compte de votre entreprise créé et validé par notre service clients, vous recevrez par , un lien vous invitant à vous.
ATS8500 Standalone Downloader.
JT12-RSI mars 1999 Délégation aux systèmes d'information
Suivi des démarches en ligne via le Gestionnaire de Suivi Services Instructeurs Paris – 29/08/2012.
PHP & MYSQL.
Détection des erreurs.
Formation sur la publication des données de biodiversité dans le réseau GBIF et leur aptitude à être utilisées , édition 2011 Comment le DwC-A a changé.
Séminaire Novembre 2006 Zephir : Déploiement et supervision des serveurs Eole.
Javadoc et débogueur Semaine 03 Version A17.
Intégration Continue et SQL
AMUE – SIFAC Les concepts de SIFAC WEB HISTORIQUE DES MISES A JOUR
Généralité sur les bases de données
Javadoc et débogueur Semaine 03 Version A16.
Réalisation d'agents de surveillance Zephir
Asynchronous Javascript And Xml
d'un commutateur Catalyst
Virtualisation d’applications mobiles dans un réseau de Cloudlets
Exemple de synthèse pour la revue de Direction
Configuration de routes Statiques Flottantes
QoS - Configuration de NBAR (Network-Based Application Recognition)
Tests de boîte blanche.
Projet IUT – MGDIS 2007/2008 Le contexte du projet Son objectif
Présentation OCS-Inventory au LAPP
1ers pas des utilisateurs migrés
Windev.
Démarche de conception. Démarche didactique.
mardi 11 septembre 2018mardi 11 septembre 2018
Documentation technique (Linux)
LES IDE DE CONCEPTION Myriam BAKAYOKO Manon RAJAONARIVELO Jeremy MICHEL André NOEL Guillaume GEBAVI Arthur AGERON Fabien SIMON - G6S2.
M ICROS PROJETS 1 ÈRE A NNÉE. DESCRIPTION DES MICROS PROJETS Il s'agit de produire un programme (fichiers source et un exécutable testé et opérationnel.
Package R Markdown: Un outil pour générer des pages html avec R Studio
Guide Utilisateur. Guide Utilisateur.
Développement d’applications interactives
Integrated Business intelligence
Programmation Android Première application Android
Création d’un « Web Worm » Exploitation automatisée de failles web Simon Marechal Consultant SSI
Module 13 : Implémentation de la protection contre les sinistres
Utiliser PowerPoint dans le cadre des TPE
„La plate-forme EAI “ Initiation à WBI
Architectures Logicielles Java GLG203 GLG204
Base de donnée de support
Dossier SARL Verdier Application No 8
03- Evaluation Access 2003 Cette évaluation comporte des QCM (1 seule réponse) et des Zones à déterminer dans des copies d’écran.
Bonjour, Je suis votre guide pour cette visite de votre nouveau logiciel HDS. Je vais vous montrer comment préparer une note de frais.
FORMATION POWERPOINT 2007/2010
Comment la faire ? Quand la faire ?
Opérateurs et fonctions arithmétiques Opérateurs de relation Opérateurs logiques Cours 02.
Les modules.
Tableaux croisés dynamiques sous Excel: des outils simples pour une analyse rapide de jeux de données en cytométrie Camille SANTA MARIA Ingénieur d’étude.
Design, innovation et créativité
Svom Science Ground Segment KP-3
TP RC.
GUIDE DE PRISE EN MAIN FRONT OFFICE
Transcription de la présentation:

Bilan Qualité Sonarqube French Science Ground Segment Bilan Qualité Sonarqube 03 et 04 Juillet 2019 GEPI – Meudon

Contexte de l’étude et Configurations Les métriques SOMMAIRE Contexte de l’étude et Configurations Les métriques Liste et statut des Composants Analysés Analyse macroscopique JAVA Python Conclusion Consignes de Déploiement – Rappel Page 2

ContextE de l’ETUDE SonarQube v7.7 sous Windows 7 En local : http://localhost:9000/sessions/new Quality Gate et Quality Profile par défaut Analyse du Code Java et du Code Python Pour le Java, les fichiers « .class » sont nécessaires, sinon SQ ne fait pas l’analyse. La couverture de Code, nécessite : Des fichiers de tests Les résultats de l’exécution de ces tests. Il n’a donc pas été possible de générer la couverture de tests. La démarche : Passage de SQ sur tout le code, puis uniquement sur le code source (sans les tests) L’outil du CNES – cnesreport est utilisé pour extraire les résultats obtenus en Excel et Word. Page 7

ContextE de l’ETUDE / CONFIGURATION NEXEYAC&F La configuration des outils sur le PC NEXEYAC&F Page 7

ELEMENTS DE CONFUGURATION– CEA/IRFU SonarQube v7.7 sous Linux URL : http://svom1.lal.in2p3.fr:20090 Quality Gate et Quality Profile par défaut Plug-ins pour les tests Java : Jacoco Python : Pytest Création d’un login administrateur pour Nexeya-C&F Il est possible d’y créer des projets, En revanche, il n’est pas possible (droits d’accès à la machine refusés) de scanner des projets. Page 7

Le SPAP est sous Documents & Pages/Quality Assurance Plan LES METRIQUES POLARION : https://dsm- polarion.cea.fr/polarion/#/project/Svom 2015/home Le SPAP est sous Documents & Pages/Quality Assurance Plan Les métriques sont définies au §9 Les normes de codage sont : PYTHON : PEP8 JAVA : Standard SUN Il est possible de configurer SQ pour prendre en compte ces exigences. Voir tableau ci- après. Page 7

LES METRIQUES SQ Métrique de code Seuil SQ QUALITY GATE QUALITY PROFILE Nombre cyclomatique McCabe V(g) <=25 NON OUI - Pour une valeur globale difficilement interprétable OUI - Pour l'avoir par méthode Nombre cyclomatique simplifié <=20 Complexité Cognitive? Nombre de lignes de code <=100 OUI   Nombre d’imbrication <=7 OUI - S134 Taux de commentaires >20% Le taux de copier/coller <15% L’état de la dette technique <5% Page 11

Les composants ANALYSES Uniquement le périmètre des composants et sous-composants du CEA/Irfu 8 composants FSGS : crest, messaging, noaa-receiver, notices (alerts), orchestra, vhfmgr, vhfsimulator, xband-manager 7 Projets SQ Python crestdb-client, messaging, python-noaa, notices, orchestra_src, vhfmgr-client, vhf-simulator 7 Projets SQ Java crestdb-data, crestdb-web, noaa-receiver, vhfmgrApi-data, vhfmgrApi-web, BandxMgrData, BandxMgrWeb Remarque : le projet Java « vhfmgr /vhfmgrApi- client » n’a pas pu être analysé car les classes n’ont pas été fournies. Page 7

Les composants ANALYSES Description crest le serveur de gestion de configuration messaging le serveur de messagerie noaa-receiver l'application de réception des images NOAA notices la gestion des alertes orchestra Prototype d’une architecture orchestrée pour le segment sol SVOM vhfmgr la gestion des données VHF vhfsimulator Simulateur de messages venant de la station VHF xband-system le serveur de données bande X Page 7

DES composants AUX PROJETS SQ (Sans les Tests) Projet SQ LANG STATUT TAILLE en K TAILLENOTE crest crestdb-client python PASSED 5,2K S crestdb-data java 5K crestdb-web 454 XS messaging 367 noaa-receiver noaa-receiver-python 1,6K noaa-recever 1,1K notices 1,4k orchestra orchestra_src 4,3K vhfmgr vhfmgr-client 3,8K vhfmgrApi-data 3,2K vhfmgrApi-web 511 vhfsimulator vhf-simulator xband-manager BandxMgrData 1,8K BandxMgrWeb Page 7

Les composants vue SONARQUBE 1/3 Page 7

Les composants vue SONARQUBE 2/3 Page 7

Les composants vue SONARQUBE 3/3 Page 7

Analyse MACROSCOPIQUE JAVA 1/2 Les BUGS : 4 Gestion mémoire : Pointeur nul A "NullPointerException" could be thrown; "XXX" is nullable here. Sévérité : Majeur Les vulnérabilités : 3 component Rule Message Severity BandxMgrData squid:S2755 Disable XML external entity (XXE) processing. BLOCKER vhfmgrApi-web squid:ClassVariableVisibilityCheck Make username a static final constant or non-public and provide accessors if needed. MINOR Make role a static final constant or non-public and provide accessors if needed. Page 7

Analyse MACROSCOPIQUE JAVA 2/2 Code Smell JAVA : 221 Séverité :Critical : 25 exemples : squid:S1192 : Define a constant instead of duplicating this literal "XXX" N times. squid:S3776 : Refactor this method to reduce its Cognitive Complexity from XX to the 15 allowed. Séverité : Major : 124 common-java:DuplicatedBlocks Unused, code en commentaire, code dupliqué squid:S00107 Constructor has N parameters, which is greater than 7 authorized. Gestion d’exceptions Séverité : Minor : 66 Unused : local variables, import.. Modifications de code : Replace charset name argument with StandardCharsets.UTF_XX … Sévérité : info : 6 Exemples : Complete the task associated to this TODO comment. Page 7

Analyse MACROSCOPIQUE PYTHON 1 Code Smell : 68 Séverité :Critical : 8 exemples : squid:S1192 : Define a constant instead of duplicating this literal "XXX" N times. squid:S3776 : Refactor this method to reduce its Cognitive Complexity from XX to the 15 allowed. Séverité : Major : 37 Unused, code en commentaire, squid:S00107 Constructor has N parameters, which is greater than 7 authorized. (29) Séverité : Minor : 23 Unused : local variables, import… Convention de nommage Page 7

DIFFICULTES RENCONTREES CONCLUSION DIFFICULTES RENCONTREES Il n’est pour le moment pas possible de lancer un sonar-scanner sur la machine SVOM Les java doivent être livrés avec les Bytecodes correspondant. Ou alors, il faut les reconstruire. Il faut faire des tests Les tests doivent être livrés avec les résultats de tests. Il est impératif que toute la communauté respecte les mêmes conventions de nommage de façon à faciliter à terme l’automatisation de SQ. Il est impératif que toute la communauté respecte les consignes de déploiement. Page 7

DEPLOIEMENT - RAPPELS CE QUE VOUS DEVEZ FAIRE : Rédiger le paragraphe descriptif  de vos applications dans https://drf- gitlab.cea.fr/svom/Tools/wikis/application- directory  et y faire référence à la page d’instructions pour l’installation. Rédiger les instructions d’installation en suivant le modèle https://drf- gitlab.cea.fr/svom/Tools/wikis/instructions-template ou les instructions déjà en ligne. Compléter le fichier README.md de déploiement sur la page https://drf-gitlab.cea.fr/svom/svom-deployment Nommer le docker compose : docker-compose.yml Nommer le fichier de properties : configuration.properties ou configuration.yml Nommer le fichier de configuration : config.sh Mettre à jour et vérifier toutes vos pages de documentation sur gitlab. Page 5

DEPLOIEMENT - RAPPELS Mettre à jour et vérifier vos WI de tests dans Polarion (DC-0/DC-1 Spécification) Nettoyer la page https://drf-gitlab.cea.fr/svom / en supprimant ou en mettant au grenier les dossiers obsolètes. CONVENTIONS DE NOMMAGE DES TESTS: Le cadre à respecter est celui  défini par la commande pytest Les test unitaires doivent être mis dans des répertoires nommés ‘tests’ (pas ‘test’, pas ‘mes_tests’, pas ‘svom_check’, etc.) CONVENTIONS POUR PYTHON : Les prérequis pour exécuter la commande ‘pytest’ doivent être définis clairement et facilement. Page 5

Des questions? Page 13