Recherche ...

29/01/2008

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)

1 commentaire:

Guillaume Laforge a dit…

Très intéressant ! Merci pour les résultats de cette étude. J'avais un a priori positif pour Cobertura, je suis content de voir qu'il se classe plutôt bien. La surprise, par contre, c'est que je n'imaginais pas que Struts pouvait être aussi mal couvert de tests ! Il faut passer à autre chose ;-)

Enregistrer un commentaire