Diseño e implementación de la rastreabilidad del origen, el error y la calidad

Completado

En el contexto de DevOps, la trazabilidad se refiere a la capacidad de rastrear cambios y acciones a lo largo del ciclo de vida de desarrollo de software. Este concepto se aplica a distintos aspectos de ese ciclo de vida, incluidos los cambios en el código fuente, la resolución de errores y el mantenimiento del control de calidad. Su aplicación es esencial para garantizar la fiabilidad del producto, su mantenimiento y la satisfacción del cliente.

La trazabilidad de fuentes permite a los desarrolladores hacer un seguimiento de los cambios de código en escenarios de colaboración. La trazabilidad de errores facilita la identificación, priorización y resolución de problemas con el código fuente. La trazabilidad de la calidad garantiza que el software cumple las normas de calidad y las expectativas de los usuarios al vincular las actividades de prueba, las métricas y los comentarios a los esfuerzos de desarrollo.

Diseño

A un alto nivel, la trazabilidad es independiente de las herramientas, pero la forma de abordarla depende del aspecto del ciclo de vida del desarrollo de software al que se dirija. Del mismo modo, los objetivos y las consideraciones de diseño difieren entre la trazabilidad del código fuente, de los errores y de la calidad.

En concreto, la trazabilidad del código fuente implica el seguimiento del historial de cambios en el código, incluyendo quién hizo los cambios, cuándo se hicieron y el propósito de los mismos. Facilita la revisión del código, la depuración y la comprensión de la evolución del código base a lo largo del tiempo. Desde el punto de vista del diseño, esta funcionalidad está estrechamente relacionada con las estrategias de ramificación y fusión de Git que organizan el trabajo de desarrollo. Los desarrolladores crean ramas de características para los nuevos trabajos, confirman los cambios en sus ramas y envían solicitudes de cambio para su revisión. En ese momento, sus expertos realizan revisiones del código y, una vez completadas con éxito, aprueban los cambios para fusionarlos en la rama principal.

La trazabilidad de errores consiste en rastrear los errores o defectos notificados durante las pruebas o la producción hasta su causa raíz en el código base. También suele basarse en la captura de información como los detalles del informe de error, los pasos para reproducirlo, los componentes afectados y los cambios de código relacionados. Entre sus objetivos está priorizar y resolver los fallos de forma eficaz para subsanar las deficiencias del software.

La trazabilidad de la calidad abarca el seguimiento de las actividades y artefactos relacionados con la calidad a lo largo del proceso de desarrollo de software. Esto implica vincular las métricas de calidad, los casos de prueba, los resultados de las pruebas y otras actividades de aseguramiento de la calidad a los requisitos, las historias de usuario y los cambios de código. La trazabilidad de la calidad ayuda a evaluar el impacto de los cambios del software en su calidad y a identificar áreas de mejora.

Implementar la trazabilidad

Los detalles de implementación de la trazabilidad varían en cierta medida en función de la plataforma DevOps.

Rastreabilidad del origen

Dado que tanto GitHub como Azure DevOps admiten Git como mecanismo de control de código fuente, se aplican a ambos una serie de técnicas de trazabilidad de código fuente. Como resultado, la aplicación de la trazabilidad del código fuente en ambos casos implica la adopción de buenas prácticas como la redacción de mensajes de confirmación descriptivos, el uso de una estrategia de ramificación bien definida y la exigencia de solicitudes de cambios del código.

Sin embargo, también existen algunas diferencias entre ellos. La implementación de la trazabilidad del código fuente en los repositorios de GitHub suele implicar la utilización de funciones como las reglas de protección de ramas para hacer cumplir los procesos de revisión del código y garantizar que los cambios se revisan antes de fusionarlos. La integración de GitHub con las incidencias permite vincular los cambios de código a las incidencias correspondientes, lo que proporciona trazabilidad entre las modificaciones de código y los requisitos del proyecto. Azure DevOps ofrece directivas de rama y directivas de solicitud de extracción para aplicar comprobaciones de calidad del código y vincular los cambios a los elementos de trabajo, lo que permite la trazabilidad entre los cambios de código y las historias de usuario o las tareas. Además, Azure DevOps proporciona una integración más amplia con su sistema de seguimiento de elementos de trabajo, lo que permite una trazabilidad y unas capacidades de elaboración de informes más profundas en comparación con el seguimiento de incidencias de GitHub.

Rastreabilidad de errores

En Azure DevOps, la trazabilidad de errores se facilita a través de Azure Boards, donde los errores se rastrean como elementos de trabajo y pueden vincularse a cambios de código, confirmaciones y solicitudes de cambio. Azure Boards permite crear flujos de trabajo personalizados para la administración de errores, definiendo estados como Nuevo, Activo, Resuelto y Cerrado, proporcionando visibilidad del ciclo de vida del error. Además, Azure DevOps ofrece una rica integración entre errores y otros elementos de trabajo, lo que permite la trazabilidad entre errores e historias de usuario, tareas y épicas.

En GitHub, la trazabilidad de errores se basa en la integración entre incidencias y cambios en el código, donde los errores notificados como incidencias pueden vincularse a confirmaciones y solicitudes de cambio. Las Acciones de GitHub ofrecen la posibilidad de implementar flujos de trabajo personalizables, incluidos los relacionados con la trazabilidad de errores. Con las Acciones de GitHub, puedes definir flujos de trabajo que automaticen procesos desencadenados por eventos en tu repositorio de GitHub, como la creación o modificación de incidencias. Esto le permite crear flujos de trabajo personalizados para la administración de errores, incluyendo la definición de estados, la asignación de tareas y la automatización de acciones basadas en condiciones específicas. Efectivamente, aunque las Acciones de GitHub proporcionan flexibilidad en la automatización del flujo de trabajo, normalmente requieren más esfuerzo y personalización en comparación con las funciones integradas de Azure Boards en Azure DevOps.

Rastreabilidad de la calidad

En Azure DevOps, la trazabilidad de la calidad puede administrarse mediante planes de prueba, que permiten a los equipos organizar, ejecutar y realizar un seguimiento de los casos de prueba. Los planes de pruebas proporcionan métricas de calidad exhaustivas, incluidos los índices de aprobación de casos de prueba, los resultados de las ejecuciones de pruebas y los informes de cobertura de pruebas. Además, Azure DevOps ofrece integración con herramientas de cobertura de código para medir la cobertura de las pruebas e identificar las áreas de la base de código que requieren pruebas adicionales.

GitHub ofrece una funcionalidad similar a través de Acciones de GitHub, que permite a los equipos automatizar varios tipos de pruebas, como pruebas unitarias, pruebas de integración y pruebas de extremo a extremo. También en este caso, las Acciones de GitHub ofrecen flexibilidad a la hora de configurar flujos de trabajo de pruebas e integrarse con herramientas de pruebas de terceros, pero suelen requerir una configuración adicional para alcanzar el mismo nivel de métricas de calidad exhaustivas e informes de cobertura de pruebas que los Planes de pruebas de Azure DevOps.