Je travaille sur plusieurs applications, principalement les anciennes. Actuellement, leur couverture de code est assez faible: généralement entre 10 et 50%.
Depuis plusieurs semaines, nous avons des discussions récurrentes avec les équipes de Bangalore (l'essentiel du développement se fait à l'étranger en Inde) concernant les exclusions de packages ou de classes pour Cobertura (notre outil de couverture de code, même si nous migrons actuellement vers JaCoCo).
Leur point de vue est le suivant: comme ils n'écriront aucun test unitaire sur certaines couches de l'application (1) , ces couches devraient être simplement exclues de la mesure de couverture du code. En d'autres termes, ils veulent limiter la mesure de couverture du code au code testé ou devant être testé .
De plus, lorsqu'ils travaillent sur des tests unitaires pour une classe complexe, les avantages - purement en termes de couverture de code - ne seront pas remarqués dans une grande application. Réduire la portée de la couverture du code rendra ce genre d'effort plus visible ...
L'intérêt de cette approche est que nous aurons une mesure de couverture de code qui indique l'état actuel de la partie de l'application que nous considérons comme testable .
Cependant, mon point de vue est que nous simulons en quelque sorte les chiffres. Cette solution est un moyen facile d'atteindre un niveau supérieur de couverture de code sans aucun effort. Un autre point qui me dérange est le suivant: si nous montrons une augmentation de couverture d'une semaine à l'autre, comment savoir si cette bonne nouvelle est due au bon travail des développeurs, ou simplement à de nouvelles exclusions?
De plus, nous ne pourrons pas savoir exactement ce qui est considéré dans la mesure de couverture du code. Par exemple, si j'ai 10 000 lignes d'application de code avec 40% de couverture de code, je peux déduire que 40% de ma base de code est testée (2) . Mais que se passe-t-il si nous fixons des exclusions? Si la couverture du code est désormais de 60%, que puis-je déduire exactement? Que 60% de ma base de code "importante" est testée? Comment puis-je
En ce qui me concerne, je préfère conserver la "vraie" valeur de couverture du code, même si nous ne pouvons pas nous réjouir. De plus, grâce à Sonar, nous pouvons facilement naviguer dans notre base de code et connaître, pour tout module / package / classe, sa propre couverture de code. Mais bien sûr, la couverture mondiale du code sera toujours faible.
Quelle est votre opinion à ce sujet? Comment faites-vous sur vos projets?
Merci.
(1) Ces couches sont généralement liées aux beans UI / Java, etc.
(2) Je sais que ce n'est pas vrai. En fait, cela signifie seulement que 40% de ma base de code