Logotipo de Parasoft Buscar

¡Descubre GoogleTest, con certificación TÜV y la tecnología Agentic AI para pruebas de C/C++!
Obtenga los detalles »

Blog de Parasoft

Cómo demostrar la cobertura de verificación con GoogleTest y C/C++test CT

Foto de rostro de Miroslaw Zielinski, Director de Gestión de Productos
By Miroslaw Zielinski • 22 de julio de 2026 • 6 minutos de lectura
22 de julio de 2026 | 6 minutos de lectura
By Miroslaw Zielinski
Texto de la izquierda: Cómo demostrar la cobertura de verificación con GoogleTest y C/C++test CT. El gráfico de la derecha muestra varios documentos de estándares en una fila horizontal con una lupa sobre el central, que tiene una marca de verificación que indica la verificación de cumplimiento.

La cobertura de código muestra qué código se ejecutó, pero no demuestra qué requisitos se verificaron realmente. Sigue leyendo para descubrir cómo ampliar GoogleTest con la trazabilidad de requisitos mediante Parasoft C/C++test CT, y así cerrar la brecha entre las pruebas superadas y la evidencia de cumplimiento.

Puntos Clave

  • ¿Por qué la cobertura de código no es suficiente para el software crítico para la seguridad? La cobertura estructural muestra qué código se ejecutó, pero la trazabilidad de requisitos demuestra qué comportamientos específicos se verificaron. Se necesitan ambas para demostrar la verdadera exhaustividad de las pruebas unitarias.
  • ¿Cómo se añade la trazabilidad de requisitos a las suites de GoogleTest existentes? Al anotar los casos de prueba de GoogleTest con identificadores de requisitos, manteniendo los enlaces visibles en el control de versiones y, a continuación, utilizando Parasoft C/C++test CT para procesar el informe de ejecución XML y enviar los resultados a Parasoft DTP.
  • ¿Cómo se correlacionan los resultados de las pruebas con los requisitos externos? Parasoft DTP se conecta directamente a sistemas de gestión de requisitos, como Jama, Polarion, Codebeamer y DOORS Next, para hacer coincidir los metadatos de los requisitos con los resultados de la ejecución de las pruebas unitarias sin duplicar datos ni utilizar hojas de cálculo manuales.
  • ¿Qué deficiencias en la verificación pueden revelar los informes de trazabilidad? Destaca los requisitos no probados, los requisitos vinculados únicamente a pruebas fallidas y los requisitos asociados a pruebas que nunca se ejecutaron; lagunas que un informe estándar de GoogleTest no puede mostrar.
  • ¿Cómo se adapta esto a los cambios en la integración continua y los requisitos? Dado que la trazabilidad se actualiza con cada ejecución de GoogleTest, los equipos obtienen información temprana y continua sobre los cambios en los requisitos y la refactorización de las pruebas, lo que elimina la carga de mantenimiento que supone la actualización manual de las matrices de trazabilidad.

Por qué la trazabilidad de los requisitos es importante para GoogleTest en software crítico para la seguridad.

En una publicación anterior, hablamos sobre cómo los equipos pueden alcanzar sus objetivos de cobertura de código con GoogleTest (certificado por TÜV) y C/C++test CT, una herramienta de prueba de software para C/C++ con soporte certificado para GoogleTest. Con GoogleTest, puedes recopilar la cobertura estructural del código, analizar las brechas de cobertura y generar la evidencia necesaria para demostrar la exhaustividad de las pruebas.

Pero la cobertura de código representa solo una dimensión de la exhaustividad de las pruebas unitarias.

En proyectos donde el cumplimiento de las normas de seguridad funcional es obligatorio, los equipos también deben demostrar una verificación adecuada de los requisitos de software mediante casos de prueba. Por lo general, esto se logra a través de informes de trazabilidad de requisitos, que establecen relaciones documentadas entre los requisitos, las pruebas y los resultados de las pruebas.

La trazabilidad de los requisitos permite a los equipos responder a varias preguntas fundamentales.

  • ¿Se han probado todos los requisitos de software aplicables?
  • ¿Qué casos de prueba verifican un requisito en particular?
  • ¿Cuál fue el resultado de la ejecución de cada prueba?
  • ¿Existen requisitos sin pruebas asociadas?

Sin esta información, una ejecución exitosa de GoogleTest o un alto porcentaje de cobertura de código no demuestran, por sí solos, que el comportamiento previsto del software se haya verificado por completo.

En este blog, explicamos cómo Parasoft C/C++test CT amplía el marco de trabajo GoogleTest con informes de trazabilidad de requisitos y permite correlacionar los resultados de las pruebas con los requisitos gestionados en un sistema externo de gestión de requisitos.

Por qué la cobertura de código no es suficiente

La cobertura del código estructural y la cobertura de requisitos proporcionan perspectivas complementarias sobre la exhaustividad de las pruebas unitarias.

Los informes de cobertura de código demuestran qué partes de la implementación se probaron durante las pruebas. Según el proceso de desarrollo aplicable y el nivel de integridad de seguridad, los equipos pueden necesitar recopilar métricas como la cobertura de sentencias, bifurcaciones, decisiones, condiciones o MC/DC.
Los informes de trazabilidad de requisitos abordan una cuestión diferente. En lugar de mostrar qué estructuras de código se ejecutaron, muestran si se ha verificado el comportamiento del software especificado.

Por este motivo, los proyectos orientados al cumplimiento normativo suelen utilizar ambos tipos de evidencia:

En conjunto, estos informes ofrecen una visión más completa del estado de verificación. Los equipos pueden identificar deficiencias en los requisitos, las pruebas y la implementación.

El desafío de la trazabilidad de requisitos con GoogleTest

GoogleTest se utiliza ampliamente para realizar pruebas unitarias de software en C y C++. Proporciona un marco de trabajo familiar para definir casos de prueba, organizar conjuntos de pruebas, ejecutar pruebas y generar resultados de ejecución de pruebas en formato XML.

Sin embargo, el informe de ejecución de GoogleTest describe principalmente la estructura de las pruebas y el estado de ejecución. Identifica qué pruebas se ejecutaron y si se aprobaron, fallaron o se omitieron, pero no proporciona un flujo de trabajo completo orientado al cumplimiento para correlacionar esos resultados con los requisitos almacenados en un sistema de gestión de requisitos empresariales.

Los equipos suelen intentar solucionar este problema con hojas de cálculo, convenciones de nomenclatura, scripts personalizados o matrices de trazabilidad mantenidas manualmente. Si bien estos métodos pueden funcionar para proyectos pequeños, su mantenimiento se complica a medida que aumenta el número de requisitos, casos de prueba, variantes de producto y configuraciones de prueba.

Ampliación de GoogleTest con trazabilidad de requisitos

Parasoft C/C++test CT amplía el flujo de trabajo de GoogleTest con soporte para la generación de informes de trazabilidad de requisitos. Puede anotar los casos de prueba indicando su relación con los requisitos.
Un único caso de prueba puede estar asociado a uno o más requisitos. Del mismo modo, varios casos de prueba pueden verificar un mismo requisito cuando es necesario evaluar diferentes entradas, modos de operación, condiciones límite o escenarios de fallo.

Estas anotaciones crean el vínculo inicial entre la implementación de la prueba unitaria y los requisitos del proyecto. El flujo de trabajo de trazabilidad de requisitos consta de tres etapas principales.

1. Anote los casos de prueba de GoogleTest con los ID de los requisitos.

Los desarrolladores comienzan asociando los casos de prueba de GoogleTest con los identificadores de requisitos correspondientes.

Los identificadores deben corresponder a los requisitos mantenidos en el sistema de gestión de requisitos del proyecto.

Mantener las referencias a los requisitos cerca de la implementación de la prueba hace visible la relación durante el desarrollo y permite gestionarla mediante los mismos procesos de revisión y control de versiones que el código de prueba.

2. Procesar los resultados de la ejecución de GoogleTest con C/C++test CT

Utilice GoogleTest para ejecutar las pruebas anotadas y generar un informe de ejecución XML que contenga los resultados de las pruebas.

C/C++test CT lee el informe XML, que contiene tanto los resultados de la ejecución de las pruebas como las anotaciones de los requisitos, y envía esta información a Parasoft DTP, una plataforma de informes.
DTP se conecta a su RMS, importa los datos de requisitos pertinentes y genera el informe de trazabilidad.

Puedes integrar este flujo de trabajo en tu proceso de desarrollo local o, mejor aún, en una canalización de integración continua.

3. Correlacionar los resultados de las pruebas con los requisitos en Parasoft DTP.

DTP se conecta al sistema de gestión de requisitos de la organización, como Jama, Polarion, Codebeamer o DOORS Next, y recupera información sobre los requisitos a los que se hace referencia.
A continuación, DTP correlaciona los registros de requisitos con los resultados de las pruebas unitarias recibidos de C/C++test CT.

Esta correlación combina información de dos fuentes:

  • Definiciones de requisitos y metadatos del sistema de gestión de requisitos original.
  • Relaciones de prueba y resultados de ejecución del flujo de trabajo de GoogleTest

Como resultado, puede analizar el estado de verificación sin duplicar la definición completa de los requisitos dentro del código fuente de la prueba ni transferir manualmente los resultados de la prueba al sistema de gestión de requisitos.

El sistema de gestión de requisitos sigue siendo la fuente autorizada de información sobre requisitos, mientras que DTP proporciona una visión consolidada de las relaciones entre los requisitos y las evidencias de las pruebas.

Diagrama de flujo del proceso que muestra cómo lograr la trazabilidad de los requisitos utilizando GoogleTest y Parasoft C/C++test CT.

Identificación de deficiencias en la verificación de requisitos

Una vez que se ha correlacionado la información, los informes de trazabilidad pueden poner de manifiesto deficiencias difíciles de detectar en un informe estándar de GoogleTest.

Por ejemplo, el informe puede revelar los siguientes tipos de requisitos:

  • No hay pruebas unitarias asociadas
  • Asociado únicamente con pruebas fallidas
  • Asociado a pruebas que no se ejecutaron

Estos hallazgos respaldan tanto el desarrollo cotidiano como las actividades formales de cumplimiento normativo.
Los informes de trazabilidad no sustituyen el criterio de los ingenieros. En cambio, proporcionan datos objetivos que orientan a los revisores hacia relaciones que requieren un análisis más profundo.

Cómo la trazabilidad ayuda a los equipos a gestionar los cambios en los requisitos

Los requisitos y los conjuntos de pruebas rara vez permanecen estáticos.

Los requisitos pueden añadirse, modificarse, descomponerse, sustituirse o eliminarse. Los casos de prueba pueden renombrarse, refactorizarse, parametrizarse o dividirse en pruebas más pequeñas. Las variantes del producto también pueden requerir diferentes subconjuntos de requisitos y pruebas.

Dado que C/C++test CT procesa la información de trazabilidad como parte del flujo de trabajo habitual de ejecución de GoogleTest, los informes se actualizan cada vez que se ejecuta el conjunto de pruebas. Esto reduce la dependencia de las matrices de trazabilidad, que se mantienen por separado del código fuente y pueden quedar obsoletas rápidamente.

La trazabilidad continua también proporciona retroalimentación temprana. No espere a una auditoría formal o a un hito de lanzamiento para descubrir relaciones faltantes. Revise la cobertura de requisitos durante todo el desarrollo.

Esto resulta especialmente valioso en entornos de desarrollo dinámicos, donde la implementación, el refinamiento de los requisitos y el desarrollo de pruebas suelen llevarse a cabo en paralelo.

Combinando la trazabilidad de requisitos con la cobertura de código.

Los informes de trazabilidad de requisitos adquieren aún más valor cuando se analizan junto con las capacidades de cobertura de código que se trataron en la primera parte de esta serie.

Consideremos un requisito vinculado a una prueba superada. Desde la perspectiva de los requisitos, este parece haber sido verificado. Sin embargo, un análisis de cobertura estructural podría revelar que la prueba asociada no abarca todas las ramas o condiciones relevantes en la implementación.

Por el contrario, una función puede lograr una cobertura estructural completa, mientras que el análisis de trazabilidad muestra que no se ha asociado explícitamente ninguna prueba con el requisito que define el comportamiento esperado de la función.

Estas dos formas de evidencia ayudan a los equipos a investigar la exhaustividad de la verificación desde ambas perspectivas.

  • De los requisitos a las pruebas → ¿Se ha verificado cada requisito?
  • De las pruebas a los requisitos → ¿Cada prueba relevante para el cumplimiento tiene un propósito definido?
  • De las pruebas al código → ¿Qué estructuras de implementación se pusieron a prueba?
  • Del código no probado a los requisitos → ¿El comportamiento no probado es necesario, no intencionado o inalcanzable?

Este análisis combinado respalda un proceso de verificación más sistemático y proporciona pruebas más sólidas para revisiones, evaluaciones y auditorías.

Respaldar el cumplimiento sin reemplazar el flujo de trabajo de desarrollo

Una ventaja importante de este enfoque es que los equipos pueden conservar GoogleTest como su marco de pruebas unitarias.

Los desarrolladores no necesitan abandonar los conjuntos de pruebas ya establecidos ni adoptar un formato de definición de pruebas propietario independiente solo para generar informes de trazabilidad. En cambio, C/C++test CT añade las capacidades de generación de informes e integración necesarias para un desarrollo orientado al cumplimiento normativo.

GoogleTest sigue siendo el marco de trabajo utilizado para definir y ejecutar pruebas unitarias. C/C++test CT procesa los datos de ejecución y las anotaciones de requisitos. Parasoft DTP integra esos resultados con la información del sistema de gestión de requisitos original y proporciona una vista consolidada de la trazabilidad.

Trazabilidad que funciona con tu flujo de trabajo de GoogleTest

Para el software crítico para la seguridad, la ejecución exitosa de las pruebas y la cobertura estructural del código son formas necesarias, pero no suficientes, de evidencia de verificación. Los equipos también deben demostrar que los requisitos del software están vinculados a los casos de prueba adecuados y respaldados por los resultados de la ejecución actual.
C/C++test CT amplía el marco de trabajo GoogleTest con informes de trazabilidad de requisitos.

  • Los desarrolladores añaden identificadores de requisitos a los casos de prueba de GoogleTest.
  • C/C++test CT procesa el informe de ejecución XML y publica los resultados en Parasoft DTP.
  • DTP se conecta al sistema de gestión de requisitos de la organización para correlacionar la información de los requisitos con los resultados de las pruebas unitarias.

Al integrar la trazabilidad en el flujo de trabajo existente de GoogleTest y CI, los equipos:

  • Identifique las deficiencias en la verificación con anticipación.
  • Reduzca el esfuerzo de elaboración de informes manuales.
  • Proporcione evidencia consistente para las revisiones de cumplimiento.

En combinación con los informes de cobertura de código estructurado, este enfoque proporciona una base más completa y escalable para demostrar la exhaustividad de las pruebas unitarias en proyectos de C y C++ críticos para la seguridad.

Descubre cómo tu equipo puede demostrar la cobertura de verificación utilizando C/C++test CT integrado con GoogleTest, el único sistema certificado por TÜV.

Solicitar una demo