Árbol de páginas

 

Ya soy un experto y estoy aquí para ayudar: ¡contesta preguntas pendientes y gana puntos!

Saltar al final de los metadatos
Ir al inicio de los metadatos

Tabla de contenidos

Un buen punto de partida es ser capaz de controlar cómo evoluciona la calidad (ver Información histórica).

El siguiente paso podría ser gestionar la deuda técnica de los desarrolladores para poder mantenerla bajo control.

Para poder abordar este paso, existen una serie de servicios diferenciales sobre las medidas, evidencias y cobertura de las pruebas unitarias del código nuevo.

Vistas Diferenciales

Vistas Diferenciales sobre medidas

Para poder activar este servicio, pulsar sobre el periodo deseado en la lista desplegable Evolución en el tiempo... :

Cuando se selecciona un periodo, los valores diferenciales aparecen al lado de las medidas del proyecto:

Vistas Diferenciales sobre Evidencias

Cuando se pulsa sobre el enlace "Añadidas:" del widget "Evidencias y Deuda Técnica" (ver la captura de pantalla anterior), se iniciará un servicio de inspección específico de las evidencias basado en el periodo correspondiente, y manteniendo dicho periodo durante toda la inspección.

Para determinar la fecha de creación de una evidencia, durante cada análisis se ejecuta el siguiente algoritmo para determinar si una evidencia es nueva o ya existía previamente. Para cada evidencia, se deben comprobar tres o cuatro criterios (regla, número de línea, el contenido de la línea o "hash" y el mensaje) para detectar si una evidencia se corresponde con una ya existente:

  • para la misma regla, con el mismo número de línea y con el mismo hash (no necesariamente el mismo mensaje) > SE CORRESPONDE
  • para la misma regla, con el mismo mensaje y el mismo hash (pero no necesariamente con la misma linea) > SE CORRESPONDE
  • para la misma regla, con el mismo mensaje y el mismo número de línea (pero no necesariamente el mismo hash) > SE CORRESPONDE

En cualquier otro caso, la evidencia se considera como nueva.

¿No estoy obteniendo las evidencias nuevas esperadas en el servicio de inspección de evidencias cuando se selecciona una vista diferencial?

Esto se puede explicar por tres razones:

  1. El Servicio de Inspección únicamente muestra las evidencias añadidas, no las resueltas. Por lo tanto el número que se observa en el servicio puede diferir del mostrado en el cuadro de mando del widget de Cumplimiento de Reglas (que muestra las evidencias añadidas - resueltas).
  2. El algoritmo de detección de nuevas evidencias es muy bueno, pero continua siendo perfeccionable. Es por eso que algunas veces pueden aparecer nuevas reglas que SonarQube no reconoció que ya existían.
  3. Se está inspeccionando en un periodo de X días, que empieza tras el primer análisis realizado después de una migración a la versión 2.5. En este caso puede existir una discrepancia debido a que antes de la versión 2.5, no se recogía la información para poder construir este servicio. Estas evidencias desaparecerán si el periodo no empieza tras el primer análisis.

Cobertura de Código sobre Código Nuevo/Modificado

Se puede separar la cobertura de los tests unitarios del código nuevo del viejo (en base a una fecha límite dada) para poder  realizar un seguimiento del código nuevo que no tiene suficientes pruebas unitarias.


Se puede visualizar un ejemplo en Nemo.

Herramientas de las Vistas Diferenciales

Configuración Global

Se pueden configurar tres periodos globalmente de forma que estarán disponibles para todos los proyectos. Dirigirse a Configuración > Configuración General > General > Vistas Diferenciales para ajustar estas propiedades.

Configuración del Proyecto

Se pueden configurar dos periodos adicionales específicos para el proyecto actual. Seleccionar el proyecto y dirigirse a  Configuración de Pryecto > General > Vistas Diferenciales para ajustar estas propiedades

  • Sin etiquetas