Haga que las pruebas de regresión manuales sean más rápidas, más inteligentes y más específicas. Véalo en acción >>
Obtenga más información sobre la prueba de Parasoft C/C++.
Únase a nuestra demostración mensual de productos de 30 minutos.
Regístrate AhoraWEBINAR
La cobertura de código mide la proporción del código fuente de una aplicación que se prueba mediante diversos métodos, como pruebas unitarias, pruebas manuales y pruebas funcionales automatizadas. Los objetivos de porcentaje de cobertura de código pueden ser subjetivos. La exhaustividad de la cobertura en sistemas críticos para la seguridad depende de la métrica del nivel de integridad de seguridad de la aplicación (SIL) utilizada en diferentes industrias y del nivel de garantía de diseño (DAL) comúnmente utilizado en aviónica. En la construcción de aplicaciones críticas para la seguridad donde un fallo puede causar la muerte, las normas regulatorias y del sector exigen una cobertura del código estructural del 100 %.
Esta presentación profundiza en el tema esencial de la cobertura de código para sistemas C/C++ embebidos, explicando su importancia, los diferentes tipos de medición y su aplicación práctica. Exploramos cómo lograr pruebas exhaustivas, especialmente en entornos críticos para la seguridad, y mostramos herramientas que simplifican el proceso.
La cobertura de código es una métrica que indica cuánto del código fuente de tu aplicación se ha ejecutado durante las pruebas. Es una forma de responder a la pregunta: "¿Hemos probado lo suficiente?". Al destacar el código no probado, se ayuda a descubrir posibles errores e identificar código inactivo. La forma más común de lograr esto es mediante la instrumentación de código, donde se añade código adicional para rastrear la ejecución de sentencias, decisiones o ramas. Esta instrumentación registra la ejecución, lo que permite calcular y visualizar un porcentaje de la cobertura de código, a menudo con el código resaltado en verde (ejecutado) o rojo (no ejecutado).
La presentación incluyó una demostración que mostró:
En el mundo embebido, C y C++ se utilizan con frecuencia en sistemas críticos para la seguridad. Industrias como la automotriz (ISO 26262), la aviónica (DO-178C) y los dispositivos médicos (IEC 62304) tienen estrictos requisitos regulatorios y estándares de proceso. Estos estándares suelen asignar Niveles de Integridad de Seguridad (SIL) o Niveles de Garantía de Diseño (DAL) a los componentes de software. Los niveles más altos, que indican un mayor riesgo si el software falla, suelen exigir pruebas más rigurosas. Por ejemplo, SIL 4 en IEC 61508 recomienda encarecidamente una cobertura del 100% para declaraciones, ramas y MC/DC. El denominador común de estos estándares es el enfoque en la cobertura de declaraciones, ramas y MC/DC, ya que los expertos del sector las consideran las mejores prácticas para garantizar un código de alta calidad, seguro y confiable.
Lograr la cobertura del código Se puede realizar mediante varios métodos de prueba:
Muchas organizaciones combinan los resultados de estos diferentes métodos de prueba para alcanzar sus objetivos de cobertura general. Por ejemplo, la cobertura de las pruebas unitarias puede combinarse con la de las pruebas del sistema.
La cobertura de código es fundamental en una canalización de Integración Continua/Entrega Continua (CI/CD). Las herramientas pueden automatizar la instrumentación, la ejecución y la generación de informes de los datos de cobertura, integrándose a la perfección con sistemas de compilación y plataformas de CI/CD como Jenkins, GitLab y Azure DevOps. Esto proporciona información en tiempo real sobre la calidad del código y ayuda a gestionar los riesgos eficazmente.
En definitiva, la cobertura de código es una técnica eficaz para garantizar la calidad y la fiabilidad de los sistemas C/C++ embebidos, especialmente en ámbitos críticos para la seguridad. Al comprender los diferentes criterios de cobertura y utilizar las herramientas adecuadas, los equipos de desarrollo pueden alcanzar sus objetivos de prueba con mayor eficiencia.