Recherche ...

Chargement...

29/01/2008

Inauguration du Paris Java User Group - JUG

Le Paris JUG est un groupe d'utilisateurs Java ayant pour but de réunir les acteurs du langage (professionnels, communautés open source, institutions, étudiants, enseignants...) afin d'échanger des idées et de discuter des avancées technologiques de la plateforme Java.

Ces rencontres ont lieu tous les deuxièmes mardis du mois. Les réunions sont gratuites, ouvertes à tous et consistent en une présentation technique, une démonstration d'un produit, ou une table ronde. Après la réunion les personnes se retrouvent généralement autour d'un verre et d'un mini-buffet.

Venez nombreux à l'inauguration qui aura lieu le mardi 12 février pour les encourager.

Abonnez-vous à la mailing list pour être tenu au courant des évènements.

Quel outils pour la couverture de tests ? round 2

Continuons notre études des outils de mesure de couverture de tests.

Je devais entre autre chose comparer nos 3 outils sur plus de code. Après avoir cherché quel code source analyser (hibernate / Spring / Tomcat ... pas sous Maven 2, Geronimo ... trop énorme pour le moment sur ma machine, ...), je me suis arrêté sur sur le code de Apache Struts 1.3.9.

Ce projet contient (selon Clover 1 & 2) :
  • 114 621 LOC (Clover 1) / 119 525 LOC (Clover 2)
  • 50 080NCLOC (Clover 1) / 52 999 NCLOC (Clover 2)
  • 323 tests (selon le rapport maven surfire) qui passent à 100 %
Première constatation, Clover 1 et Clover 2 ne sont pas d'accord sur le nombre de LOC et NCLOC !

A la lecture des rapports Maven, grosse déception, Cobertura et EMMA ne font pas d'aggrégation des résultats de couverture de tests pour les projets multi-modules (Struts 1.3.9 en contient 9) ! il a donc fallu que j'aggrège ça moi même ...

Voici les résultats :
  • Cobertura : 12,8 % (Branche) - 15,4 % (Line)
  • EMMA : 27,9 % (Class) - 21,1 % (Method) - 23,0 % (Block) - 22,9 % (Line)
  • Clover 1 : 16,3 % (TOTAL)
  • Clover 2 : 15,4 % (TOTAL)
Le résultat de l'analyse est cette fois plus mitigé. Tout d'abord, Clover 1 et Clover 2 ne sont plus complètement alignés. Cobertura semble cohérent avec Clover (surtout Clover 2). Quand à EMMA, ses résultats (aggrégés par mes soins) sont complètements différents. Il y a une explication à cette différence : EMMA ne sort aucun rapport sur les modules qui ne contiennent pas de tests unitaires et donc on n'a pas pu prendre en compte une partie du code source pour la couverture Globale.

Classement à l'issu de ce 2ème round :
  1. Clover 2 + Cobertura (1er car les 2 outils sortent le même taux)
  2. Clover 1 (d'une courte tête)
  3. EMMA (loin derrière)

27/01/2008

Quel outils pour la couverture de tests ?

Connaître son taux de couverture de tests est important mais quel outils choisir ? sont-ils tous égaux ? mesurent-ils tous la même chose, de la même manière ? c'est ce que j'ai essayé de voir en testant 3 outils bien connus des développeurs java :
Pour faire simple dans un premier temps, je n'ai pas essayé de mesurer mon propre code mais j'ai utilisé le projet jakarta commons-configuration 1.5.

Ce projet contient (selon Clover 1 & 2) :
  • 33 023 LOC
  • 15 628 NCLOC
  • 1229 tests (selon le rapport maven surfire) qu ipassent à 100 %
Voici les résultats :
  • Cobertura : 81 % (Branche) - 88 % (Line)
  • EMMA : 96 % (Class) - 93 % (Method) - 86 % (Block) - 88 % (Line)
  • Clover 1 : 87,6 % (TOTAL)
  • Clover 2 : 87,6 % (TOTAL)
Première constatation, les 3 outils ne fournissent pas les mêmes indicateurs. EMMA fournit 4 niveaux différents de taux de couverture, Cobertura 2 et Clover uniquement 1. Pour moi, le taux de couverture le plus important est celui qui porte sur le taux de couverture des lignes de code.

Il semblerait donc que ces 3 outils soient cohérents et indique tous le même taux de couverture : 88 % (en arrondissant pour Clover).

Cette première étude est donc concluante mais ne permet pas de choisir pour le moment quel outils utiliser en me basant uniquement sur les résultats sur ce projet relativement simple. Il faut donc effectuer la même mesure sur :
  • une plus grosse quantité de code (Tomcat ? JBoss ?Hibernate ? ...)
  • du code qui a des tests qui échouent (afin de voir si ces tests sont pris en compte dans le taux de couverture)
  • ... ?
Il faut aussi prendre en compte la richesse des rapports fournis par ces 3 outils, les fonctionnalités complémentaires comme la possibilité de générer un historique, la disponibilité d'un plugin maven, d'un plugin pour Eclipse (mon IDE favoris), ...

18/01/2008

Bundles pour Prism

j'utilise désormais Prism mais il manque des Bundles pour ouvrir certaines de mes applications (il y a bien moyen de paramétrer un raccourcis via le menu option en bas à droite dans la fenêtre de Prism mais dans ce cas par exemple, je ne peux pas avoir la zolie icône du site qui va avec :-( ).

Comme je suis sympa, je vais les mettre à disposition depuis mon wiki : http://wiki.tarpoon.org/display/TIPS/Prism

Pour le moment j'en ai fait 2 et je compte bien en faire d'autres :

Prism ... j'adore

Cela fait quelques mois que j'ai entendu parler de Prism mais comme beaucoup d'autres découvertes faites au cours de mes grandes balades sur la toile, je n'avais toujours pas pris le temps de tester la chose.

Et bien ça y'est, c'est chose faite et ... j'adore.

Mais qu'y a-t-il de si génial dans Prism pour que ça m'emballe à ce point ? je m'explique. Je suis adepte du navigateur Firefox et de ses dérivés depuis la première heure mais dans bien des cas, je le trouve surdimensionné, lourd / lent à démarrer, trop fouillis ... ! oui je sais, c'est ma faute mais toutes ces extensions me servent au cours de mes explorations du net sauf pour certains sites que je qualifierais plutôt d' applications : GMail, Google Reader, Google Calendar, Google Groups, Google Documents, Netvibes ... (et oui, avant, j'utilisais Thunderbird, Feed Reader, ...) et une des choses que j'ai perdu avec cette migration vers les applications "bureautique" à la sauce web2.0 c'est la capacité à lancer rapidement mon client mail, mon agenda ... sans pour autant perturber ou être perturber par ma navigation en cours.

Prism me permet ce genre de choses, jugez plutôt (mon PC n'est pas une bête de course) :
  • lancement de GMail via Prism : 14 secondes
  • lancement de GMail via Firefox 2 : 41 secondes
En plus, avec Prism, j'ai tout de suite des raccourcis de lancement (dans le menu démarrer, sur le bureau, dans la barre de lancement rapide), l'icône de la fenêtre qui s'ouvre peut être celle du site, quand je switch d'une fenêtre à l'autre avec ALT-TAB, et bien je vois là aussi l'icône de l'application web qui ne se mélange plus avec mes X Firefox ouverts qui ont tous la même icône ...

Essayez le, moi je l'ai adopté immédiatement ;-)