Contrôler la qualité de ses projets avec Sonar


précédentsommairesuivant

VI. Fonctionnalités d'administration

Ce chapitre va s'intéresser aux possibilités offertes à l'administrateur de Sonar et / ou d'un projet en particulier. Ces options ne sont donc possibles qu'à partir du moment où l'on est connecté en tant qu'administrateur.

VI-A. Administration globale

Pour administrer Sonar, il faut cliquer sur le lien "Configuration" en haut de l'écran. L'écran qui s'affiche nous propose d'accéder aux menus suivants :

  • Quality profile : gestion des profils qualité ;
  • Event categories : gestion de la catégorie des événements pouvant avoir lieu sur un projet ;
  • Manual metrics : gestion des métriques manuelles ;
  • Default filters : filtres activés sur la page d'accueil ;
  • Default dashboards : gestion des dashboards existants ;
  • My profile : gestion du profil de l'administrateur ;
  • Users : liste des utilisateurs ;
  • Groups : liste des groupes d'utilisateurs ;
  • Global roles : liste des rôles globaux ;
  • Project roles : liste des rôles spécifiques aux projets ;
  • Settings : configuration générale de Sonar et des plugins installés ;
  • Backup : sauvegarde des paramètres de profils ;
  • System info : informations sur le système ;
  • Update center : centre de mises à jour des plugins.

VI-A-1. Gestion des profils de qualité

Le rôle d'administrateur permet de gérer les différents profils de règles de codage. Chaque profil existant peut être choisi comme le profil par défaut, supprimé ou dupliqué. Il est également possible de créer un nouveau profil. Pour ce faire, il suffit d'en saisir le nom et de donner les fichiers XML de configuration de PMD, Checkstyle et FindBugs.

En cliquant sur un profil, on peut en voir les détails, disposés dans différents onglets :

  • Coding rules : gestion détaillée des règles ;
  • Alerts : définition des alertes liées à ce profil ;
  • Projects : liste des projets qui seront analysés avec ce profil ;
  • Permalinks : liens permanents vers les configurations Checkstyle, PMD et Findbugs ;
  • Profile inheritance : permet d'indiquer le profil parent, et donc d'en hériter les propriétés.
Image non disponible

Dans le premier onglet, Coding rules, on peut modifier la configuration actuelle des règles, en choisissant d'activer ou de désactiver telle règle, ou en changeant sa sévérité.

Dans l'onglet Alerts, il est possible de définir des alertes pour ce profil. La définition d'une alerte passe par le choix d'une métrique, d'un seuil pour le niveau "alerte" et un autre seuil pour le niveau "erreur". On pourra par exemple définir les alertes suivantes :

  • si la couverture de code est inférieure à 60 %, on est en erreur, si elle est inférieure à 80 %, alors on est en avertissement ;
  • si l'on a plus de 100 violations bloquantes, on passe en avertissement, si le nombre est supérieur à 200, on passe en erreur ;
  • etc.
Image non disponible

Lorsqu'une alerte est active, cela va entraîner les conséquences suivantes :

  • un affichage adéquat sera fait sur le dashboard du projet ;
  • une icône sera affichée dans la liste des projets, dans la page d'accueil ;
  • les flux RSS seront alors alimentés avec ces alertes (le lien vers ce flux est disponible sur la page d'accueil) ;
  • un événement sera créé au niveau du projet, et sera donc sélectionnable dans la Time machine.
Image non disponible

Il est à noter que nous pouvons définir un lien d'héritage entre profils. Ainsi, on pourra dire que le profil X hérite du profil Y, ce qui permet de disposer de la configuration du profil Y, mais en ajoutant d'autres règles. Cela pourra être utile dans le cas où nous disposons d'un jeu de règles pour une entreprise, mais que pour certains projets (des projets legacy par exemple), nous souhaitions surcharger ces règles standard.

Image non disponible
Le profil 'DVP' hérite du profil 'Sonar way with Findbugs'

À partir de la version 2.9 de Sonar, il est également possible de suivre les modifications apportées sur un profil, une sorte de gestionnaire de sources en version allégée :

Image non disponible

Une dernière fonctionnalité intéressante proposée par Sonar sur les profils est de pouvoir comparer deux profils. Il faut pour cela se rendre sur la page listant les profils, de cliquer sur le bouton "Compare profiles", et de choisir les deux profils à comparer.

Image non disponible
Image non disponible

Une page s'affiche alors montrant les différences entre les deux profils :

  • un récapitulatif de la comparaison des deux profils ;
  • la liste des règles présentes seulement dans le premier profil ;
  • la liste des règles présentes seulement dans le second profil ;
  • les règles activées dans les deux profils, mais ayant des configurations différentes.
Image non disponible
Image non disponible

VI-A-2. Métriques et événements manuels

Certaines métriques ne peuvent pas être alimentées automatiquement, comme par exemple la taille de l'équipe de développement. Il est donc possible de définir de nouvelles métriques, dites manuelles, par le biais de l'écran "Manual metrics". Pour cela, on utilisera le petit formulaire à la droite de l'écran où l'on spécifiera le nom de la métrique, sa description, son domaine ou encore son type de valeur.

Image non disponible

Sur le dashboard d'un projet, il devient alors possible d'ajouter une nouvelle métrique, comme le montre la capture suivante :

Image non disponible
Un widget permet d'ajouter manuellement des métriques.
Image non disponible
Le formulaire permet de saisir la nouvelle valeur pour cette métrique.
Image non disponible
La mesure a été saisie et est désormais affichée.

Le principe est identique pour les événements. Ces derniers sont configurables par l'écran "Event categories". À noter que concernant les événements, Sonar ajoute automatiquement certains types d'événements :

  • lorsque la version de l'application change ;
  • lorsqu'une alerte est levée ;
  • lorsque le niveau d'une alerte change (un avertissement devenant une erreur, ou inversement) ;
  • lorsqu'une alerte se termine.
Image non disponible

VI-A-3. Gestion des droits et de la sécurité

Par défaut, Sonar est livré avec deux types d'utilisateurs : l'administrateur qui a tout pouvoir, et l'utilisateur, qui peut accéder à la visualisation des projets. Il est toutefois possible de gérer plus finement ces droits.

Tout d'abord, il faut créer des utilisateurs, via l'écran dédié.

Image non disponible

On pourra ensuite créer des groupes, de la même façon que pour les utilisateurs. Cet écran permet également d'affecter les utilisateurs aux différents groupes.

Image non disponible

L'écran "Global roles" permet de configurer les rôles globaux à Sonar, en l'état le rôle d'administrateur. On peut ainsi affecter le rôle d'administrateur de Sonar à d'autres utilisateurs.

Ce même type de paramétrage est ensuite possible au niveau des projets, dans la page "Project roles". On pourra ainsi offrir les options d'administration des projets à certains utilisateurs, et on pourra également donner à chaque utilisateur un rôle spécifique pour chaque projet, parmi lesquels :

  • Administrateur : permet l'administration de ce projet ;
  • Utilisateur : permet l'accès à ce projet ;
  • Accès au code : permet de visualiser le code source de ce projet.
Image non disponible

VI-A-4. Configuration de Sonar

C'est ici qu'il faut se rendre pour configurer Sonar, ainsi que les plugins qui y sont installés. On retrouvera ainsi différentes options, propres au fonctionnement de Sonar. Ces options sont divisées ainsi :

  • Checkstyle : pour la configuration de Checkstyle ;
  • Core : pour les fonctionnalités du coeur de Sonar ;
  • Cobertura : pour la configuration de Cobertura ;
  • Database Cleaner : pour nettoyer les anciennes données de la base de données de Sonar ;
  • Design : pour activer (ou désactiver) l'analyse de design par Sonar ;
  • Duplications : paramètres pour la détection de code dupliqué (faite par CPD) ;
  • Findbugs : configuration de l'outil Findbugs ;
  • Google analytics : si vous souhaitez brancher une analyse Google Analytics sur le site de Sonar ;
  • Squid for Java : quelques paramètres pour l'analyse par le plugin Squid de Sonar ;
  • D'autres menus de configuration peuvent apparaître en fonction des plugins installés sur l'instance de Sonar.
Image non disponible

À noter que cette page est aussi présente (bien qu'un peu différente) au niveau des projets.

VI-A-5. Centre de mise à jour

Cette page répertorie les plugins installés, ainsi que leur version, et va vérifier si une mise à jour de ceux-ci n'est pas présente. On peut également y trouver la liste des plugins disponibles au téléchargement et les installer.

Image non disponible

VI-B. Administration d'un projet

Nous venons de voir l'administration globale du serveur Sonar. Au sein de chaque projet analysé par Sonar, il est possible de configurer certains paramètres. Pour ce faire, il faut se rendre sur la page d'un projet en étant connecté comme administrateur (ou avec le compte d'un utilisateur ayant les droits d'administration sur ce projet). Le menu à gauche proposera les options "Settings" et "Project roles".

L'option "Project roles" est identique à l'option de même nom présente dans l'administration globale, mais cette fois-ci limitée au seul projet courant. Elle permet de donner des droits particuliers à certaines personnes ou certains groupes d'utilisateurs sur ce projet.

Dans le menu "Settings", on retrouvera à peu près la même liste d'options que celles proposées par ce menu dans l'administration globale. Bien entendu, les paramètres définis pour un projet donné seront prioritaires sur les paramètres globaux, et ne seront valables que pour ce projet.

Lorsque l'on navigue sur ce menu "Settings", la partie basse de l'écran est dédiée aux informations générales sur ce projet, en particulier :

  • la liste des répertoires ou fichiers à exclure de l'analyse Sonar (ce qui peut s'avérer pratique dans le cas où certains packages sont générés aléatoirement par exemple) ;
  • le lien vers le site web du projet ;
  • le lien vers le serveur d'intégration continue gérant ce projet ;
  • le lien vers le gestionnaire de défauts ;
  • le lien vers l'hébergeur des sources du projet ;
  • d'autres liens possibles ;
  • le bouton pour supprimer le projet de Sonar (attention, il s'agit d'une action irréversible).
Image non disponible

VI-C. Modification de la page d'accueil

Lorsque l'on se connecte sur la page d'accueil, celle-ci est divisée en plusieurs onglets, parmi lesquels :

  • l'onglet "Projects" qui affiche les projets gérés par Sonar ;
  • l'onglet "Treemap" qui affiche le "tree map" des projets ;
  • l'onglet "My favorites" qui liste les projets favoris (à condition toutefois de s'être connecté).

L'administrateur de Sonar peut modifier cette page d'accueil soit en ajoutant / supprimant des onglets, soit en modifiant le contenu de chaque onglet. Ces opérations se réalisent de la même façon, en utilisant au choix l'option "Add filter" (pour l'ajout d'un nouvel onglet), "Edit filter" (pour modifier l'onglet courant) ou "Manage filters" (pour réorganiser les onglets, ou en supprimer un).

Image non disponible

La page d'édition (ou de création) se divise en deux ou trois blocs.

Le premier bloc va permettre de nommer l'onglet et de sélectionner les projets qui seront affichés dedans. Cette sélection peut se faire selon différents critères. Tout d'abord, on choisit si les critères concernent les projets, les modules, les répertoires (ou packages), les fichiers (ou classes) ou les tests unitaires. Ensuite, on définit la liste des critères que doivent respecter les projets pour être inclus dans cette vue. On pourra ainsi choisir de n'afficher que les projets dont la couverture de code par les tests est inférieure à 60 %, les projets dont l'analyse date de moins de 7 jours, etc.

Image non disponible

Le deuxième bloc, appelé "Display" va permettre de choisir les options d'affichage. Tout d'abord, on choisira d'afficher soit un tableau, soit une "treemap".

Dans le cas d'un tableau, on pourra choisir d'ajouter une nouvelle colonne parmi la liste de métriques proposées, le nombre maximum de projets affichés par page, etc.

Image non disponible

Dans le cas d'une "treemap", on choisira la métrique définissant la taille de chaque carré, ainsi que la métrique définissant la couleur de ces mêmes carrés.

Image non disponible

Enfin, le dernier bloc est le tableau lui-même (seulement si l'affichage se fait sous forme de tableau, et non de "treemap"). Chaque entête de colonne affiche des petites icônes permettant au choix de décaler la colonne à gauche ou à droite, de la supprimer ou encore de choisir si elle sera utilisée pour trier par défaut les éléments du tableau. Ainsi, il sera possible de trier alphabétiquement les projets, de les trier par date d'analyse, ou selon la valeur d'une métrique.

Image non disponible

Il est finalement possible de créer autant d'onglets que l'on souhaite.


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.