Índice
Introducción
¿Qué es la cobertura de código?
Configuración de la cobertura de código en SonarQube Server
Análisis de la cobertura del código en SonarQube Server
Interpretación de las métricas de cobertura del código
Ventajas de utilizar SonarQube Server para el análisis de cobertura de código
Sonar y cobertura de código
Introducción
Asegurarse de que su código se someta a pruebas exhaustivas le permite actualizarlo con confianza, ya que las pruebas fallidas identificarán rápidamente cualquier problema funcional. También ayuda a mantener la calidad y fiabilidad generales de su software.
Una métrica fundamental para evaluar la eficacia de sus esfuerzos de prueba es la cobertura del código.
SonarQube Server, una potente solución de revisión de código automatizada, se integra a la perfección con las herramientas de cobertura de pruebas, lo que permite a los desarrolladores escribir código de mayor calidad, más seguro y sometido a pruebas exhaustivas.
SonarQube Server admite la generación de informes, la supervisión y la visualización de la cobertura del código, lo que ayuda a los equipos a mantener altos estándares de calidad del código.
Este artículo profundiza en cómo funciona la cobertura del código en SonarQube Server, y también se aplica a SonarQube Cloud, cubriendo su configuración, análisis e interpretación.
¿Qué es la cobertura del código?
La cobertura del código, también llamada cobertura de pruebas, mide el porcentaje de su base de código ejercido por sus pruebas automatizadas. Destaca qué partes del código base están cubiertas por las pruebas, cuáles no y cuáles tienen una cobertura parcial, lo que proporciona información sobre las áreas potenciales que necesitan una mejor cobertura de pruebas.
Una baja cobertura del código indica áreas en las que pueden acechar errores o vulnerabilidades sin ser detectados, lo que supone un riesgo potencial en los entornos de producción.
Normalmente, las métricas de cobertura del código incluyen:
- Cobertura global: el porcentaje del código global ejecutado por las pruebas.
- Cobertura de líneas: El porcentaje de líneas de código ejecutadas por las pruebas.
- Cobertura de ramas: El porcentaje de ramas de flujo de control (instrucciones if, bucles, etc.) ejecutadas por las pruebas.
Configuración de la cobertura de código en SonarQube Server
SonarQube Server sirve como un centro neurálgico que se integra a la perfección con las herramientas de cobertura de código más populares. Recopila y presenta informes de cobertura junto con los resultados del análisis de código estático, proporcionando métricas claras de aprobado/suspenso para garantizar que su código cumple con los estándares de calidad.
Una vez que haya configurado una herramienta de terceros para generar el informe, solo tiene que configurar SonarScanner para que indique dónde se encuentran los informes, de modo que pueda recogerlos y enviarlos a SonarQube Server.
Admite la importación de datos de cobertura en formatos específicos de diversas herramientas y lenguajes de prueba populares.
Para las herramientas que no son compatibles directamente, SonarQube Server ofrece un formato genérico.
SonarQube Server es compatible con muchos lenguajes de programación, incluidos Java, C/C++, JavaScript, Python, .NET y PHP. Para habilitar los informes de cobertura, debe hacer lo siguiente:
- Ejecutar la herramienta de cobertura: Configure su herramienta de cobertura para que se ejecute antes del análisis de SonarScanner como parte de su canalización de compilación.
- Hacer coincidir el formato del informe: Configure el formato de salida de su herramienta de cobertura para que coincida con lo que espera SonarScanner. Por ejemplo, en un proyecto Java basado en Maven, puede utilizar el complemento JaCoCo para generar informes de cobertura.
- Configure los parámetros de SonarScanner: Configure los parámetros de análisis de SonarScanner para la cobertura de pruebas con las ubicaciones de los informes de cobertura para importar los archivos de informe generados.
Durante cada compilación, su herramienta de cobertura recopila datos de cobertura y genera los resultados en uno o varios archivos (normalmente archivos separados para la cobertura de pruebas).
A continuación, SonarScanner, como parte de su proceso de análisis, importa esos archivos y envía los resultados al servidor SonarQube.
El servidor SonarQube importa sin problemas los datos de cobertura de diversas herramientas y lenguajes. También admite un formato genérico para la conversión personalizada, lo que garantiza la compatibilidad incluso con herramientas no compatibles.
Hay disponibles guías detalladas para los siguientes lenguajes:
- Cobertura de pruebas Java
- Cobertura de pruebas JavaScript/TypeScript
- Cobertura de pruebas .NET
- Cobertura de pruebas de Python
- Cobertura de pruebas de PHP
- Cobertura de pruebas de C/C++/Objective-C
Análisis de la cobertura del código en SonarQube Server:
Una vez completada la configuración y ejecutado el análisis de SonarQube Server, puede ver los resultados de la cobertura del código en SonarQube Server. Las áreas clave a explorar incluyen:
- Descripción general del proyecto: El panel de control proporciona una vista de alto nivel de la cobertura general del código, incluidos los porcentajes de cobertura de líneas, ramificaciones y métodos.

- Desglose de la cobertura: puede desglosar módulos, paquetes y clases específicos para ver métricas de cobertura detalladas. Esto ayuda a identificar secciones de código no probadas que podrían necesitar pruebas adicionales. Las métricas de cobertura están disponibles tanto para el código nuevo como para el código general.

También puede ver las anotaciones de cobertura en el contexto del archivo, que muestran si el código está cubierto, parcialmente cubierto o no cubierto por las pruebas unitarias.

- Evolución de la cobertura: SonarQube Server realiza un seguimiento de la cobertura a lo largo del tiempo, lo que le permite supervisar las mejoras o regresiones en la cobertura de sus pruebas en diferentes versiones y confirmaciones.

Interpretación de las métricas de cobertura del código
Aunque la cobertura del código es una métrica fundamental, centrarse en alcanzar una cobertura del 100 % puede llegar a un punto en el que los beneficios disminuyan. A continuación se ofrecen algunas pautas para interpretarla:
- Una cobertura alta no equivale a una alta calidad: una cobertura alta del código no garantiza pruebas de alta calidad. Asegúrese de que sus pruebas cubren los casos extremos y los posibles puntos de fallo.
- Busque una cobertura significativa: busque una cobertura que le dé confianza en el comportamiento de su código, en lugar de centrarse únicamente en alcanzar un porcentaje alto.
- Equilibre la cobertura con otras métricas: la cobertura del código debe considerarse junto con otras métricas de calidad proporcionadas por SonarQube Server, como los olores del código, los errores y las vulnerabilidades de seguridad.
Ventajas de utilizar SonarQube Server para el análisis de la cobertura del código
- Mayor fiabilidad y facilidad de mantenimiento: una mayor cobertura del código indica que sus pruebas están ejecutando más rutas de código, lo que permite identificar y corregir los errores en una fase más temprana del ciclo de vida del desarrollo.
- Mayor confianza de los desarrolladores: una ventaja significativa de la cobertura del código es la confianza que le da para realizar cambios. Con la cobertura del código, puede ver inmediatamente el impacto de sus cambios: si hay algún efecto secundario no deseado, las pruebas fallarán de inmediato. Esta retroalimentación instantánea ayuda a detectar los problemas de forma temprana y garantiza la estabilidad de su base de código. Una base de código bien probada con una alta cobertura del código infunde confianza a los desarrolladores y reduce el temor a introducir nuevos errores en la producción.
- Informes detallados: SonarQube Server ofrece informes detallados de cobertura de código que señalan las secciones no probadas de su código. Estos informes desglosan la cobertura por líneas y archivos, lo que proporciona una imagen clara de sus esfuerzos de prueba. Los informes de cobertura de código ayudan a demostrar la calidad y la exhaustividad del proceso de prueba a las partes interesadas y a los clientes potenciales.
- Información útil: Más allá de simplemente informar sobre los porcentajes de cobertura, SonarQube Server ofrece información útil dentro del contexto de su código base. Destaca las áreas con baja cobertura, proporcionando métricas como líneas sin cubrir y condiciones sin cubrir. Consulte la documentación para conocer todas las métricas que SonarQube Server informa sobre la cobertura de las pruebas.
Sonar y la cobertura del código:
SonarQube Server permite a los desarrolladores lograr una cobertura completa del código, proporcionándoles una visibilidad clara de las áreas no probadas y ofreciéndoles información útil con contexto.
Equipa a los desarrolladores proporcionándoles una medida cuantitativa de la eficacia de las pruebas.
Estos datos ayudan a los equipos a realizar un seguimiento del progreso hacia los objetivos de prueba y a tomar decisiones informadas sobre la asignación de recursos para las actividades de prueba.
Al integrar el análisis de cobertura en su flujo de trabajo de desarrollo, puede asegurarse de que su código base esté bien probado y mantener altos estándares de calidad.
Recuerde que, si bien la cobertura del código es importante, debe formar parte de una estrategia más amplia para la mejora continua de la calidad del código.
¿Está listo para aprovechar SonarQube Server para el análisis de cobertura de código? Pruebe Developer Edition por sí mismo.