Estoy trabajando en varias aplicaciones, principalmente las heredadas. Actualmente, su cobertura de código es bastante baja: generalmente entre 10 y 50%.
Desde hace varias semanas, tenemos discusiones recurrentes con los equipos de Bangalore (la parte principal del desarrollo se realiza en alta mar en India) con respecto a las exclusiones de paquetes o clases para Cobertura (nuestra herramienta de cobertura de código, incluso si actualmente estamos migrando a JaCoCo).
Su punto de vista es el siguiente: como no escribirán ninguna prueba unitaria en algunas capas de la aplicación (1) , estas capas deberían simplemente excluirse de la medida de cobertura del código. En otras palabras, quieren limitar la medida de cobertura del código al código que se prueba o se debe probar .
Además, cuando trabajan en pruebas unitarias para una clase compleja, los beneficios, puramente en términos de cobertura de código, pasarán desapercibidos en una aplicación grande. Reducir el alcance de la cobertura del código hará que este tipo de esfuerzo sea más visible ...
El interés de este enfoque es que tendremos una medida de cobertura de código que indica el estado actual de la parte de la aplicación que consideramos comprobable .
Sin embargo, mi punto de vista es que de alguna manera estamos fingiendo las cifras. Esta solución es una manera fácil de alcanzar un mayor nivel de cobertura de código sin ningún esfuerzo. Otro punto que me molesta es el siguiente: si mostramos un aumento de cobertura de una semana a otra, ¿cómo podemos saber si esta buena noticia se debe al buen trabajo de los desarrolladores, o simplemente debido a nuevas exclusiones?
Además, no podremos saber exactamente qué se considera en la medida de cobertura del código. Por ejemplo, si tengo una aplicación de 10.000 líneas de código con un 40% de cobertura de código, puedo deducir que se prueba el 40% de mi base de código (2) . ¿Pero qué pasa si establecemos exclusiones? Si la cobertura del código ahora es del 60%, ¿qué puedo deducir exactamente? ¿Que se prueba el 60% de mi base de código "importante"? Cómo puedo
En lo que a mí respecta, prefiero mantener el valor de cobertura del código "real", incluso si no podemos estar contentos con él. Además, gracias a Sonar, podemos navegar fácilmente en nuestra base de código y conocer, para cualquier módulo / paquete / clase, su propia cobertura de código. Pero, por supuesto, la cobertura del código global seguirá siendo baja.
¿Cuál es tu opinión sobre ese tema? ¿Cómo te va en tus proyectos?
Gracias.
(1) Estas capas generalmente están relacionadas con los beans UI / Java, etc.
(2) Sé que eso no es cierto. De hecho, solo significa que el 40% de mi código base