Únase a nosotros el 30 de abril: Presentación de la prueba CT de Parasoft C/C++ para pruebas continuas y excelencia en el cumplimiento | Regístrese ahora

Gestión de requisitos y matriz de trazabilidad

Foto de cabeza de Ricardo Camacho, Director de Cumplimiento de Seguridad y Seguridad
12 de mayo de 2023
8 min leer

La principal preocupación de la gestión de requisitos es garantizar que se cumplan los objetivos establecidos para el desarrollo del producto. Sin embargo, puede ser difícil cumplir con estos objetivos establecidos sin trazabilidad. Esta publicación le enseña todo lo que necesita saber sobre la gestión de trazabilidad de requisitos.

Una piedra angular de un riguroso proceso de desarrollo de software es gestión de requisitos y la trazabilidad de esos requisitos a la implementación y, posteriormente, prueba de la implementación correcta.

La trazabilidad de los requisitos la definen los autores, Gotel y Finkelstein, como “la capacidad de describir y seguir la vida de un requisito, tanto en dirección hacia adelante como hacia atrás (es decir, desde sus orígenes, a través de su desarrollo y especificación, hasta su posterior implementación y uso, y a través de períodos de refinamiento continuo e iteración en cualquiera de estas fases).”

Los requisitos de seguimiento no son simplemente vincular un párrafo de un documento a una sección de código o una prueba. La trazabilidad debe mantenerse a lo largo de las fases de desarrollo a medida que los requisitos se manifiestan en el diseño, la arquitectura y la implementación. Considere el típico diagrama en “V” del software.

Figura 1: El diagrama V clásico muestra cómo avanza y retrocede la trazabilidad en cada fase del desarrollo.

Cada fase impulsa la fase siguiente. A su vez, los elementos de trabajo en estas fases deben satisfacer los requisitos de la fase anterior. El diseño del sistema se basa en los requisitos. El diseño del sistema satisface los requisitos, etc.

La gestión de trazabilidad de requisitos (RTM) demuestra que cada fase satisface los requisitos de cada fase posterior. Sin embargo, esta es solo la mitad de la imagen. Nada de esta trazabilidad demuestra que se cumplan los requisitos. Eso requiere pruebas.

Figura 2: La otra parte importante de la trazabilidad de los requisitos son las pruebas de verificación y validación para demostrar la implementación de la especificación desde la fase de diseño correspondiente. La validación generalmente ocurre al final del ciclo de desarrollo durante la prueba de aceptación final con el cliente.

En el diagrama V que se muestra en la Figura 2, cada fase de prueba verifica el cumplimiento de las especificaciones asociadas con la fase de diseño / implementación correspondiente. En el ejemplo, las pruebas de aceptación validan los requisitos, las pruebas de integración verifican el diseño de la arquitectura, las pruebas unitarias verifican el diseño del módulo, etc. La validación generalmente ocurre al final del ciclo de vida del desarrollo durante las pruebas de aceptación con el cliente.

La trazabilidad de los requisitos necesita tanto el enlace a la implementación como a la verificación, además de todos los artefactos asociados del proceso de desarrollo. El desarrollo de software a cualquier escala realista tendrá muchos requisitos, un diseño y una arquitectura complejos, y posiblemente miles de unidades y pruebas unitarias. La automatización de RTM en las pruebas es necesaria, especialmente para el software crítico para la seguridad que requiere documentación de trazabilidad para certificaciones y auditorías.

Requerimientos de trazabilidad matriz

Una matriz de trazabilidad de requisitos es un documento que ilustra la satisfacción de los requisitos con un elemento de trabajo correspondiente, como una prueba unitaria, el código fuente del módulo, un elemento de diseño de arquitectura, etc. La matriz a menudo se muestra como una tabla, que muestra cómo cada requisito es "marcado" por una parte correspondiente del producto. La creación y el mantenimiento de estas matrices a menudo se automatizan con herramientas de gestión de requisitos con la capacidad de mostrarlas visualmente en muchas formas e incluso en copia impresa si es necesario.

A continuación se muestra un ejemplo de matriz de trazabilidad de requisitos de Intland codeBeamer. Muestra los requisitos a nivel del sistema desglosados ​​en requisitos de alto y bajo nivel y los casos de prueba que verifican cada uno.

Figura 3: Ejemplo de matriz de trazabilidad de requisitos en Intland codeBeamer.

¿Por qué es necesaria la trazabilidad de los requisitos?

En el sentido más simple, la trazabilidad de los requisitos es necesaria para realizar un seguimiento de lo que está creando exactamente al escribir software. Esto significa asegurarse de que el software haga lo que se supone que debe hacer y de que solo está creando lo que se necesita.

La trazabilidad funciona tanto para demostrar que cumplió con los requisitos como para identificar lo que no. Si hay elementos arquitectónicos o código fuente que no se pueden rastrear hasta un requisito, entonces es un riesgo y no debería estar allí. Los beneficios van más allá de proporcionar una prueba de la implementación. La trazabilidad disciplinada es una visibilidad importante del progreso del desarrollo.

La trazabilidad no es necesariamente estricta en la aplicación de software empresarial, aunque eso es ciertamente mejorando. Sin embargo, es una actividad necesaria en el software de seguridad y de misión crítica.

Trazabilidad de requisitos en software crítico para la seguridad

Los requisitos del software crítico para la seguridad son el factor clave para el diseño y desarrollo de productos. Estos requisitos incluyen seguridad funcional, requisitos de aplicación y requisitos no funcionales que definen completamente el producto. Esta confianza en los requisitos documentados es una bendición mixta, ya que los requisitos deficientes son uno de los causas críticas de incidentes de seguridad en software. En otras palabras, la implementación no tuvo la culpa, pero sí los requisitos deficientes o faltantes.

Es importante darse cuenta de que muchos requisitos en el software crítico para la seguridad se derivan del análisis de seguridad y la gestión de riesgos. El sistema debe realizar sus funciones previstas, por supuesto, pero también debe mitigar los riesgos para reducir en gran medida la posibilidad de lesiones. Además, para documentar y demostrar que estas funciones de seguridad se implementan y prueban completa y correctamente, la trazabilidad es fundamental.

Automatización de la trazabilidad bidireccional

Mantener registros de trazabilidad en cualquier tipo de escala requiere automatización. Las herramientas de gestión del ciclo de vida de las aplicaciones incluyen capacidades de gestión de requisitos que están maduras y tienden a ser el centro de la trazabilidad. Las herramientas de prueba de software integradas como Parasoft completan la verificación y validación de los requisitos al proporcionar una trazabilidad bidireccional automatizada al caso de prueba ejecutable, que incluye el resultado de aprobado o reprobado y rastrea hasta el código fuente que implementa el requisito.

Parasoft se integra con sistemas de planificación ágil y gestión de requisitos líderes en el mercado como Intland codeBeamer, Polarion de Siemens, Atlassian Jira, CollabNet VersionOne y TeamForge.

Como se muestra en la imagen a continuación, cada una de las herramientas de automatización de pruebas de Parasoft (Prueba C / C ++, jprueba, puntoPRUEBA, Prueba SOAy Selenico) admiten la asociación de pruebas con elementos de trabajo definidos en estos sistemas (como requisitos, historias, defectos, definiciones de casos de prueba). La trazabilidad se gestiona a través de Parasoft panel central de informes y análisis (Parasoft DTP).

Figura 4: Parasoft proporciona trazabilidad bidireccional desde los elementos de trabajo hasta los casos de prueba y los resultados de las pruebas, tanto mostrando informes de trazabilidad con Parasoft DTP como informando los resultados al sistema de gestión de requisitos.

Parasoft DTP correlaciona los identificadores únicos del sistema de gestión con los resultados del análisis estático, la cobertura del código y los resultados de las pruebas de la unidad, la integración y las pruebas funcionales. Los resultados se muestran en los informes de trazabilidad de Parasoft DTP y se envían al sistema de gestión de requisitos. Proporcionan trazabilidad e informes bidireccionales completos como parte de la matriz de trazabilidad del sistema.

Los informes de trazabilidad en Parasoft DTP son altamente personalizables. La siguiente imagen muestra una plantilla de matriz de trazabilidad de requisitos para historias creadas en Jira que rastrean los casos de prueba, los resultados del análisis estático, los archivos de código fuente y las revisiones manuales de código.

Figura 5: Plantilla de matriz de trazabilidad de requisitos de Parasoft DTP integrada con Altassian Jira.

La correlación bidireccional entre los resultados de las pruebas y los elementos de trabajo proporciona la base de la trazabilidad de los requisitos. Parasoft DTP agrega análisis de cobertura de código y prueba para evaluar la integridad de la prueba. Mantener esta correlación bidireccional entre los requisitos, las pruebas y los artefactos que los implementan es un componente esencial de la trazabilidad.

Beneficios de la Trazabilidad Automatizada

La trazabilidad automatizada ofrece varios beneficios a los equipos de desarrollo de software. A continuación, se muestra más de cerca cómo la automatización puede impulsar la trazabilidad en el desarrollo de software.

  1. Mejora la gestión de requisitos. La trazabilidad automatizada simplifica y agiliza la gestión de requisitos al proporcionar un enfoque claro y sistemático para vincular automáticamente los requisitos con los documentos de diseño, el código y los casos de prueba, lo que facilita el seguimiento del progreso de los requisitos desde el inicio hasta la implementación. Esto garantiza que todos los requisitos se aborden correctamente, lo que reduce los errores manuales humanos y el riesgo de pasar por alto funcionalidades críticas.

Además, la trazabilidad automatizada permite un análisis de impacto efectivo, lo que permite a las partes interesadas comprender las implicaciones de los cambios en los requisitos y tomar decisiones informadas.

  1. Facilita la colaboración en equipo. La trazabilidad automatizada facilita la colaboración entre equipos. Cuando los requisitos están vinculados a decisiones de diseño, código y pruebas, las partes interesadas pueden visualizar el impacto de los cambios y modificaciones. Esta representación visual ayuda en las discusiones productivas, lo que permite a las partes interesadas tomar decisiones informadas sobre la priorización, el alcance y las compensaciones de los requisitos. Esto fomenta la participación activa y obtiene aportes de todas las partes relevantes, lo que lleva a un mejor consenso sobre los requisitos del proyecto.

Además, la trazabilidad automatizada identifica dependencias e impactos entre diferentes componentes del software. Como resultado, cuando se realizan cambios en un componente, la trazabilidad permite a las partes interesadas identificar rápidamente los requisitos asociados, las decisiones de diseño y las pruebas que pueden verse afectadas. Este conocimiento de las dependencias y los impactos promueve la colaboración al garantizar que todas las partes relevantes sean conscientes de las posibles consecuencias de los cambios.

  1. Mejora la garantía de calidad. La trazabilidad automatizada mejora significativamente los esfuerzos de garantía de calidad a lo largo del ciclo de vida del desarrollo de software. Cuando la trazabilidad está automatizada, permite la vinculación automática de los requisitos con los casos de prueba, lo que a su vez garantiza que todos los requisitos estén adecuadamente cubiertos por los casos de prueba correspondientes.

Con los casos de prueba generados automáticamente en función de los requisitos rastreados, se reduce el riesgo de perder escenarios de prueba, que suele ser el caso cuando los casos de prueba se crean manualmente. Pero con la trazabilidad automatizada, todos los escenarios de prueba necesarios se derivan directamente de los requisitos, lo que reduce el riesgo de perder escenarios de prueba.

  1. Agiliza los procesos de mantenimiento y solución de problemas. El mantenimiento y la resolución de problemas son aspectos inherentes al desarrollo de software. Con la trazabilidad automatizada, estos procesos se vuelven más eficientes y efectivos. Por ejemplo, cuando surgen problemas o errores, la trazabilidad permite a los desarrolladores identificar rápidamente los requisitos específicos, las decisiones de diseño o los componentes de código asociados con el problema. Esto acelera el proceso de resolución de problemas, ahorrando tiempo y recursos valiosos.

Además, la trazabilidad automatizada también ayuda a documentar los pasos de resolución, lo que facilita el mantenimiento futuro y reduce las posibilidades de problemas recurrentes.

  1. Agiliza el cumplimiento normativo y la auditoría. El cumplimiento de las reglamentaciones y los estándares es un aspecto crucial del desarrollo de software, y la trazabilidad automatizada ayuda a las organizaciones a demostrar el cumplimiento de los requisitos reglamentarios.

La trazabilidad automatizada proporciona una pista de auditoría clara de decisiones, acciones y cambios realizados durante el proceso de desarrollo de software. Esto hace que las auditorías de cumplimiento sean más fluidas y sencillas, ya que toda la información necesaria está fácilmente disponible y rastreable.

Herramientas de Trazabilidad de Requerimientos

Varias herramientas están disponibles para facilitar la trazabilidad de los requisitos, brindando funcionalidades para vincular, rastrear, administrar y analizar las relaciones entre los requisitos. Algunas herramientas populares para la trazabilidad de requisitos incluyen las siguientes.

  1. Parasoft. Ofrece casos de prueba para funcionalidades de gestión de trazabilidad de requisitos a través de su panel central de informes y análisis, Parasoft DTP. Además de Parasoft DTP, otras herramientas dentro del ecosistema de Parasoft que ofrecen capacidades de trazabilidad son Parasoft Selenic, Parasoft SOAtest, Parasoft C/C++test, Parasoft Jtest y Parasoft DotTest. Estas herramientas pueden ayudar a los usuarios completando la trazabilidad entre los requisitos para los casos de prueba y hasta los archivos de origen, si así lo desea. . Con estas herramientas, puede rastrear fácilmente la cobertura de prueba para cada requisito, evaluar el impacto de la calidad más rápido y proporcionar análisis e informes de prueba de requisitos.

Además, Parasoft también puede automatizar la creación de defectos, lo que ayuda a establecer un circuito de retroalimentación integral dentro de su flujo de trabajo de desarrollo. También ayuda con el cumplimiento normativo junto con estándares como ISO 26262, DO-178C, IEC 62304, IEC 61508 y EN 50128.

  1. Transmisor de códigos. Proporciona a todas las partes interesadas una plataforma central de gestión de requisitos de software para colaborar de manera eficiente. Los usuarios comparten ideas. Controlan y registran los cambios, e identifican, gestionan y realizan un seguimiento de los requisitos a lo largo de todo el ciclo de vida de la aplicación. Esto se traduce en la reducción de costos, riesgos y tiempos de entrega en el desarrollo de productos.
  2. Conexión Jama. Permite a los equipos capturar, gestionar y realizar un seguimiento de los requisitos durante todo el proceso de desarrollo. Ofrece características para crear y mantener enlaces de trazabilidad entre requisitos, documentos de diseño, casos de prueba y otros artefactos. La herramienta también proporciona visibilidad en tiempo real del estado de los requisitos y sus artefactos asociados.
  3. Requisitos de polarión. Una herramienta de gestión de requisitos de colaboración que admite la trazabilidad de extremo a extremo. Permite a los usuarios definir y administrar requisitos, vincularlos a otros artefactos del proyecto y realizar un seguimiento de su estado de implementación. La herramienta ofrece matrices de trazabilidad, análisis de impacto e informes personalizables para facilitar una gestión eficaz de la trazabilidad.

Gestión del flujo de trabajo de creación de problemas / defectos

Parasoft DTP también ayuda a clasificar la creación de defectos y problemas en nuevos elementos de trabajo. La automatización de pruebas y el análisis estático producen una gran cantidad de datos para consumir. Las herramientas que ayudan a administrar estos datos son importantes para priorizar los elementos de trabajo y evitar que las herramientas abrumen al equipo.

Usando los exploradores de prueba y violación en Parasoft DTP, que se muestran a continuación, el equipo puede crear de manera eficiente nuevos elementos de trabajo después de la clasificación de fallas de prueba y violaciones de análisis estático. La combinación de trazabilidad y creación de problemas / defectos clasificados proporciona un ciclo de retroalimentación completo para un flujo de trabajo.

Figura 6: Creación de un nuevo defecto en VersionOne mientras se clasifican las fallas de prueba en Parasoft DTP.

Resumen

La trazabilidad de requisitos es una parte clave de la gestión de requisitos en el desarrollo de software. El nivel de formalidad en la trazabilidad varía según el tipo de aplicación, pero la práctica es absolutamente necesaria en el software de seguridad crítica.

La trazabilidad bidireccional es importante para que las herramientas de gestión de requisitos y otras herramientas del ciclo de vida puedan correlacionar los resultados y alinearlos con los requisitos y los elementos de trabajo asociados.

La complejidad de los proyectos de software modernos requiere automatización para escalar la trazabilidad de los requisitos. Las herramientas de Parasoft están diseñadas para integrarse con las mejores herramientas de gestión de requisitos de su clase para ayudar a la trazabilidad en los resultados de automatización de pruebas y completar la verificación de pruebas de software y la validación de requisitos.

Análisis moderno para pruebas de software modernas