Tutoriel intégration continue : installation et mise en oeuvre Cobertura

////Tutoriel intégration continue : installation et mise en oeuvre Cobertura

Maîtrisez l’installation de Cobertura, outil de couverture de tests. Identifiez la proportion de code non testée. Mettez en oeuvre Cobertura avec Ant. Analysez les lignes et les branches, ainsi que la complexité McCabe. Découvrez les 2 cas d’utilisation de Cobertura : rapport de couverture de test et validation de build avec niveau de couverture spécifié par le chef de projet.

Liens utiles

 + de 100 tutoriaux java/jee Objis

 Plugin Eclipse de couverture de test basé sur le projet EMMA : EclEMMA (update site : http://update.eclemma.org)

 Introduction à Eclipse TPTP

 Plugin Maven cobertura

Formation Architecture Java

Soyez prêt pour des projets ambitieux : formation architecture Java Objis

programme-detaille-formation-architecture-java-objis

Programme

 Contexte, valeur ajoutée et limites

 Partie 1 : Téléchargement

 Partie 2 : Installation

Durée

 30 min

Contexte

Savoir-faire de Cobertura et besoins classiques :

 Couverture de ligne : vous désirez connaître les lignes de codes qui n’ont pas été testées (parcourues par au moins un de vos tests unitaires).

 Couverture de branche : vous désirez identifiez risques d’exceptions / plantage sur des conditions données (if).

tutoriel-installation-cobertura-11-branch-coverage-exemple

 Complexité McCabe : calculer le nombre de point de décision (if, case, boucles…). Plus il y a de points de décision, plus le code est considéré comme difficile à comprendre et à maintenir. Niveaux de complexité faible (1–4), Moyen (5-7), difficile (8-10), excessif (11+)

Non géré dans Cobertura (et géré dans outils commerciaux comme Clover)

  Couverture de méthode : vous désirez connaitre le nombre de méthodes apellées durant l’exécution des tests unitaires.

Autres outils ‘statiques’ de qualimétrie

— CheckStyle : convention de codage

— PMD : Détection préemptive d’erreurs – ensemble de règles. Choisir quelle règle utiliser par groupe (Règles JSF, règles JUnit, règles Sécurité…)

— CPD : Cut and Paste Detection (détecter les copier/coller de code)

— FindBugs : Détection préemptive d’erreurs – Notion de ‘Bug Patterns’ – erreurs techniques (ex : variable non initialisée)

INFO : ces outils produisent des rapports au format XML qui peuvent être exploité par des serveur d’intégration continue (ex : Hudson avec plugin violations) afin de suivre graphiquement l’évolution de la qualité du logiciel.

Couverture non totale

Remarque : certaines portions de codes (ex : levées d’exceptions non lancées) ne seront pas couvertes. Donc ne pas s’attendre à 100% mais utiliser les résultats de la couverture comme une aide à la décision.

Partie 1 : Téléchargement

 Aller sur le site du produit : http://cobertura.sourceforge.net/

tutoriel-installation-cobertura-1

 Cliquer sur le lien Download (menu gauche). L’écran suivant apparaît.

tutoriel-installation-cobertura-2

 Téléchargez le zip de la dernière version de cobertura (ici cobertura-1.9.3-bin.zip)

tutoriel-installation-cobertura-3

Le téléchargement commence…

tutoriel-installation-cobertura-4

 Dézippez dans répertoire c:formationintegcontoutils

tutoriel-installation-cobertura-5

Partie 2 : rapport de couverture de test

Parmi les 2 utilisations types de Cobertura, la première est la génération d’un rapport de couverture de test qui permettra au chef de projet non pas d’améliorer la qualité des tests, mais d’identifier les zones du code qui ne sont pas testées, ou qui les zones qui sont trop complexes (et donc difficiles à comprendre / maintenir).

Une application exemple est fournie avec Cobertura dans le répertoire examples/basic

tutoriel-installation-cobertura-6

 à partir du répertoire examples/basic, lancer la commande ‘ant’ qui va lancer une cible ant par défaut réalisant le cycle suivant :

— 1) Définir la tache ant cobertura

— 2) Compiler les code sources () et les classes de test () . (utiliser debug= »true »)

— 3) Instrumenter le code compilé

— 4) lancer les tests junit (préciser fork=true , ainsi que chemin code instrumenté)

— 5) Générer le rapport cobertura (à partir de datafile= »$basedir/cobertura.ser »)

tutoriel-installation-cobertura-7

Parmi les éléments produits , notez en particulier les répertoires reports, instrumented et le fichier cobertura.ser :

— reports : ici iront les rapports au format html et xml (permettant l’exploitation par outils tiers ex: Hudson)

— instrumented (suite à instrumentation des classes)

— cobertura.ser : contient métadonnées qui seront nécessaires au rapport Cobertura

tutoriel-installation-cobertura-8

 Dans le répertoire reports, ouvrir avec un navigateur le fichier index.html pour voir le rapport au format html.

tutoriel-installation-cobertura-9

 Expliquez les indicateurs : Line coverage, branch coverage, complexity.

En déduire le niveau de complexité du code.

 Analysez le résultat de l’instrumentation de la classe ‘Simple’ (cliquez sur la classe)

tutoriel-installation-cobertura-10

Pourquoi certaines ligne sont en rouge ? En vert ?

Partie 3 : Analyse du build ANT

 Expliquez les lignes suivantes du script ant du projet

mise-en-oeuvre-cobertura-ant-etape-1

 A quel endroit du script ant l’instrumentation du code est’elle lancée ? la génération de rapport est’elle sollicitée ?

mise-en-oeuvre-cobertura-ant-etape-2

Partie 3 : imposer une qualité de couverture

Parmi les 2 utilisations types de Cobertura, la deuxième (pas toujours apprécié des développeurs…) utilisée par le chef de projet, est la mise en œuvre d’une politique de validation des build des développeurs uniquement la couverture de test atteint un niveau donné.

C’est là qu’intervient la tache cobertura-check.

Partie 4 : intégration avec Maven

Expliquez la configuration suivante :

tutoriel-installation-cobertura-12

 Que produit mvn cobertura:check ?

 Que produit mvn install ?

tutoriel-installation-cobertura-13

 Expliquez

Conclusion

Dans ce tutoriel, vous avez Installé l’outil de couverture de test Cobertura.

Formation Architecture Java

Soyez prêt pour des projets ambitieux : formation architecture Java Objis

programme-detaille-formation-architecture-java-objis

2018-01-27T19:06:30+01:00

Contactez nous

241 rue DUGUESCLIN, 69003 Lyon

Web : Objis : spécialiste formation Java