Recherche ...

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), ...

2 commentaires:

Guillaume Laforge a dit…

Il y a aussi le facteur prix qui peut rentrer éventuellement en ligne de compte -- dans le cas Clover.

Tarpoon a dit…

oui et non ;-) ... pour une entreprise qui devra payer une licence pour utiliser Clover, je suis d'accord mais une personne qui fait partie d'un projet Open Source n'aura pas à payer puisque Atlassian fournit des licence gratuitement à ce type de projets.

Enregistrer un commentaire