Logotipo de Parasoft
Fondo geométrico con toques de azul y verde.

Misra

Soluciones MISRA C y C++ de Parasoft

El incumplimiento de las estrictas directrices pone en peligro la seguridad, la fiabilidad, la protección y la certificación del producto. Sin un enfoque automatizado, el seguimiento manual del cumplimiento en miles de líneas de código se vuelve prácticamente imposible. Descubra cómo nuestras herramientas le ayudan a reducir el riesgo y los costes de desarrollo, a la vez que logra el cumplimiento de MISRA.

¿Qué es MISRA?

MISRA es un marco de directrices de codificación ampliamente adoptado y estándar en la industria para los lenguajes de programación C y C++. Guía sistemáticamente a los equipos hacia un código embebido seguro. En Parasoft, ofrecemos soluciones integrales MISRA C y C++ que incluyen los estándares más recientes con análisis completo de las directrices MISRA, priorización basada en IA e informes de cumplimiento automatizados.

Vista aérea de un coche negro circulando por una calle oscura. El coche tiene las luces encendidas.

Mejores prácticas de DevOps para el desarrollo automotriz

Leer más

Entendiendo MISRA

Los desarrolladores de sectores críticos para la seguridad se enfrentan constantemente a retos en la calidad del código, desde defectos ocultos hasta crecientes requisitos de cumplimiento. MISRA proporciona un conjunto completo de directrices de codificación que se centran en proteger las aplicaciones contra infracciones y vulnerabilidades de seguridad conocidas.

Las directrices de MISRA se definen como una “regla” o una “directiva”.

  • Una regla viene con una descripción completa del requisito de codificación y, a través del análisis estático, los desarrolladores pueden usarla para verificar que el código fuente cumple con las reglas.
  • Una directiva, por otro lado, ofrece una prescripción importante, proporcionando orientación y asesoramiento a los desarrolladores. En esencia, las normas son de carácter imperativo, mientras que las directrices son de carácter consultivo.

Los desarrolladores utilizan los estándares de codificación MISRA en sectores más allá de la industria automotriz, como dispositivos médicos, militar, aeroespacial, automatización industrial, ferrocarriles y energía. Estos estándares facilitan el desarrollo de sistemas críticos de seguridad seguros y confiables.

Icono del escudo azul

Principios básicos del cumplimiento de MISRA

El cumplimiento de MISRA impacta el éxito y la longevidad de su producto, a la vez que reduce los costos de mano de obra y el tiempo de comercialización. Esto se logra mediante sus principios fundamentales para garantizar la previsibilidad, la seguridad y la facilidad de mantenimiento. El cumplimiento de MISRA no solo extiende la vida útil de su producto en el mercado, sino que también reduce significativamente las intervenciones de última hora y la posibilidad de costosas retiradas del mercado.

Miembro del grupo de trabajo MISRA

Como miembro de los grupos de trabajo de C y C++ de MISRA, que desarrollan activamente MISRA, Parasoft contribuye a la definición del estándar y se compromete a realizar actualizaciones de producto con rapidez y compatibilidad total con las directrices de C/C++ de MISRA. El liderazgo de Parasoft en el Grupo de Trabajo de MISRA, sumado a la calidad de nuestras herramientas y a nuestras soluciones de análisis estático de C/C++ con certificación TÜV SÜD, subraya nuestra dedicación inquebrantable para ayudar a los desarrolladores a adaptarse sin problemas al cumplimiento de MISRA.

EXPERTO EN MIRA

Michal Rozenau

Michal Rozenau ha sido un miembro activo del Grupo de Trabajo MISRA C y MISRA C++.

La Cobertura MISRA Más Amplia

MISRA C 2025

A medida que C evoluciona (por ejemplo, C99, C11/C18, C23), la última versión de MISRA C:2025 evolucionó a partir de MISRA C:2023 y actualiza sus directrices para abordar nuevas características, posibles dificultades y las mejores prácticas para usos críticos de seguridad. Además, aborda nuevas amenazas de seguridad, perfecciona las directrices existentes, mejora la claridad y la usabilidad de su estándar y reduce la carga de cumplimiento al eliminar reglas obsoletas.

MISRA C++ 2023

MISRA C++ 2023 refuerza la línea que MISRA C++ 2008 y AUTOSAR C++14 iniciaron para respaldar el lenguaje de programación C++. Parasoft C/C++test ofrece una cobertura completa de este nuevo estándar. Con Parasoft C/C++test, los ingenieros de software pueden analizar código C++ moderno y garantizar que las aplicaciones que utilizan C++100 y C++17 sean lo más seguras posible.

MISRA C 2023

La esperada MISRA C 2023 consolidó la MISRA C 2012 y todas las enmiendas y correcciones publicadas hasta la fecha. El estándar es compatible con el lenguaje de programación C, versiones C90, C99, C11 y C18. Parasoft C/C++test. apoya plenamente MISRA C 2023 y su predecesor MISRA C:2025 ha puesto estos estándares a disposición de los equipos de desarrollo de software que buscan garantizar la implementación de código que cumpla con este estándar de codificación de manera segura.

Sumergirse en Comprobación detallada del código C de MISRA.

Centro de aprendizaje: Cumplimiento de la norma MISRA C 2023: Guía de automatización de pruebas »

Alineación con los estándares de seguridad funcional

Al implementar las directrices MISRA en su proceso de desarrollo, también está cumpliendo con los requisitos clave de verificación de los estándares de seguridad funcional. El cumplimiento de las directrices de codificación MISRA sienta las bases para la integridad del software embebido, crítico para la seguridad, en numerosos sectores industriales.

  • ISO 26262 (automoción)
  • IEC 61508 (automatización industrial)
  • IEC 62304 (médico)
  • DO-178C (militar/aeroespacial)
  • EN 50716 (ferrocarril)

Herramienta de cumplimiento MISRA de Parasoft

Prueba C/C++ para análisis estático

Parasoft C/C++test proporciona soporte completo para MISRA Estándares de codificación, cruciales para el desarrollo de software crítico y centrado en la seguridad. Nuestra solución de análisis estático se integra a la perfección con los IDE o flujos de trabajo de CI/CD de los desarrolladores y genera todos los informes de cumplimiento necesarios.

El análisis estático de Parasoft C/C++test actúa como una herramienta de desplazamiento a la izquierda, que permite a los equipos de desarrollo identificar y abordar de forma proactiva problemas de calidad, seguridad y cumplimiento en el código C y C++ antes de que llegue a etapas posteriores y más costosas del ciclo de vida del desarrollo de software.

C/C++test emplea varias técnicas avanzadas de análisis estático para examinar exhaustivamente el código sin ejecución.

Análisis basado en patrones

Busca patrones de código específicos que violan reglas definidas.

Análisis de flujo de control

Simula rutas de ejecución de programas para encontrar de forma temprana problemas complejos similares a los de tiempo de ejecución.

Análisis de métricas

Recopila y analiza métricas de código, por ejemplo, complejidad ciclomática, líneas de código, cohesión, para proporcionar información sobre la calidad y la capacidad de mantenimiento del código.

Más información sobre Parasoft C/C++test »

Análisis del flujo de datos

Realiza un seguimiento de cómo fluyen los datos a través del programa para identificar posibles problemas como variables no inicializadas o uso incorrecto de datos.

Detección de código muerto

Identifica código no utilizado, como funciones, variables u otras construcciones que se definen pero nunca se llaman ni se hace referencia a ellas.

Gestión entre estándares de codificación

Los equipos de ingeniería a menudo necesitan comprender cómo se relaciona MISRA con otras normas del sector que ya siguen. Esta comparación ayuda a determinar la estrategia de cumplimiento más eficaz para sus necesidades específicas de seguridad.

Sin embargo, al adaptarse a un nuevo estándar de codificación, incorporar uno adicional o gestionar un conjunto de estándares, C/C++test detectará y reaplicará automáticamente todas las supresiones existentes para reglas equivalentes. Esta capacidad ahorra mucho trabajo manual que ya se invertía en analizar infracciones y crear supresiones. Además, esta información se reflejará claramente en los informes generados.

Resumen de la comparación

Las directrices MISRA (para C y C++) se encuentran entre los estándares de codificación más reconocidos para sistemas críticos para la seguridad y de alta integridad, ofreciendo reglas estrictas y de cumplimiento obligatorio para minimizar el comportamiento indefinido y promover la confiabilidad. Mientras que otros estándares, como CERT (centrado en la seguridad), AUTOSAR (específico para la automoción) y directrices específicas para lenguajes, abordan problemas similares, MISRA se distingue por su enfoque en la seguridad, independiente del sector, rigurosos requisitos de cumplimiento y adaptabilidad a entornos regulados.

CERT C/C++ frente a MISRA C/C++

Ambos son estándares de codificación cruciales, pero abordan diferentes preocupaciones principales. MISRA se centra en garantizar la seguridad funcional, la fiabilidad y la portabilidad mediante la definición de un "subconjunto seguro" de C/C++ para evitar características y comportamientos problemáticos del lenguaje, mientras que CERT se centra en la seguridad del software, proporcionando directrices para prevenir errores de programación comunes que podrían dar lugar a vulnerabilidades explotables y brechas de seguridad. Muchos equipos implementan un Enfoque combinado de MISRA y CERT para una cobertura integral.

AUTOSAR C++ 14 frente a MISRA C++:2023

MISRA C++:2023, desarrollado en colaboración entre MISRA y AUTOSAR, es el estándar de codificación moderno y unificado para el desarrollo de C++ crítico para la seguridad (C++17, con la futura compatibilidad con C++20 en mente) en aplicaciones automotrices. Integra y actualiza las mejores prácticas de codificación de la versión anterior, AUTOSAR C++14. Mientras que MISRA C++:2023 define estrictamente las reglas de codificación, AUTOSAR C++14 (aunque prácticamente ha sido reemplazado por reglas de código) proporciona directrices más amplias que abarcan el diseño, la calificación de la cadena de herramientas y la documentación para el cumplimiento normativo de la industria automotriz (por ejemplo, ASPICE o Explorar el cumplimiento de la norma ISO 26262).

Integración con CI/CD

Los equipos de desarrollo modernos necesitan integrar las comprobaciones de cumplimiento sin problemas en sus flujos de trabajo de integración continua. La verificación manual simplemente no es escalable para bases de código grandes y complejas con plazos de entrega ajustados. Las pruebas continuas ofrecen una forma automatizada y discreta de obtener retroalimentación inmediata sobre el código tras su check-in.

El objetivo es integrar la calidad y la seguridad del producto como parte de un proceso continuo de integración, lanzamiento y entrega. La identificación temprana de infracciones de MISRA impide la entrada de errores en la compilación del software.

Parasoft se integra a la perfección en nuestro flujo de trabajo de CI/CD. Hemos incorporado la automatización de pruebas y el análisis de código estático en las primeras etapas del ciclo de desarrollo, lo que supone un gran avance para el control de calidad en proyectos automotrices críticos para la seguridad.

– Tecnologías Solero

Logotipo de Jenkins
Jenkins
  • Instale el complemento Parasoft Findings para publicar violaciones de MISRA.
  • Configure el complemento Advertencias de próxima generación para visualizar las violaciones de las reglas de MISRA.
  • Ejemplo de paso de la canalización de Jenkins:

stage('Static Analysis') { 
        steps { 
          sh 'cpptestcli -config "MISRA_C_2025" -bdf compile_commands.json -report reports/ -format=xml' 
          parasoftPublisher reportPattern: 'reports/report.xml' 
        } 
}

                                    
Imagen de una taza de café con vapor saliendo de ella.
Logotipo de GitLab
GitLab
    • Utilice el proyecto cpptest-gitlab como ejemplo de plantillas CI.
    • Vea las violaciones de MISRA en la pestaña Seguridad de GitLab y en los informes de solicitud de combinación.
    • Ejemplo de fragmento .gitlab-ci.yml:

static_analysis:
  stage: test
  image: your-image-with-cpptestcli
  script:
    - cpptestcli -config "MISRA_C_2025" -bdf compile_commands.json -report gl-sast-report.json -format=sarif
  artifacts:
    reports:
      sast: gl-sast-report.json
  paths:
      - gl-sast-report.json
Imagen colorida de una línea horizontal con flechas apuntando en cada extremo.
Logotipo de GitHub
GitHub
  • Utilice la acción de GitHub Ejecutar Parasoft C/C++test para el análisis MISRA.
  • Ver los resultados en la pestaña Seguridad de GitHub como Alertas de escaneo de código.
  • Ejemplo de flujo de trabajo:

- name: Run MISRA Analysis
  uses: parasoft/cpptest-action@v1
  with:
    config: 'MISRA_C_2025'
    build_system: 'compilation_database'
    input: 'compile_commands.json'
    args: '-report github-sarif.sarif -format=sarif'
Flechas de colores que apuntan en diferentes direcciones
Logotipo de Microsoft Azure DevOps
Azure DevOps
  • Integre Parasoft en Azure Pipelines para comprobaciones MISRA.
  • Ver resultados en el Panel de seguridad de Azure y en las anotaciones de solicitud de extracción.
  • Ejemplo de paso YAML:

- task: ParasoftCppTest@1
  inputs:
    config: 'MISRA_C_2025'
    buildSystem: 'compilation_database'
    input: 'compile_commands.json'
    results: '/cpptest-reports//report.xml'
    reportFormat: 'sarif'
    failOnViolation: true
Imagen de nube vibrante

Garantizar ciclos de retroalimentación rápidos

Icono azul con triángulo y punto de explicación en el centro.

Reciba alertas inmediatas sobre la introducción de violaciones críticas de MISRA, lo que permite a los desarrolladores solucionar los problemas antes de ingresar a la fase de revisión del código.

Icono dentro de un círculo azul que muestra tres flechas blancas que forman un círculo continuo.

Reduzca la fricción en las revisiones de código al validar automáticamente el cumplimiento de MISRA de antemano, lo que permite que los revisores se concentren en la arquitectura y la lógica.

Círculo azul con un ícono blanco en el centro que muestra datos de prueba y una marca de verificación

Implementar puertas de calidad que eviten que el código no conforme avance a entornos de prueba o producción.

Mejores prácticas para MISRA C

Mejores prácticas de revisión de código

Además del cumplimiento de MISRA, reúnase con sus colegas ingenieros de software y verifique sistemáticamente el código de los demás en busca de errores y violaciones del estilo de codificación. La experiencia demuestra que esta actividad acelera la producción y mejora sustancialmente la calidad del código.

Claridad y comprensión del código

El cumplimiento de MISRA te ayuda a escribir código fácil de leer y comprender. Evita código demasiado complejo o críptico, difícil de seguir o fácilmente malinterpretado. Entendemos lo tentador que puede ser usar soluciones alternativas complejas bajo presión. Como muchos desarrolladores de software integrado, probablemente estés lidiando con múltiples estándares mientras intentas mantener tu código mantenible. Simplificar el código con las directrices de MISRA elimina los problemas de malentendidos y la necesidad de rehacer el trabajo.

Las directrices de MISRA evitan que los ingenieros dediquen demasiado tiempo a descifrar errores en el código. Entendemos lo agotador que es perder sprints enteros buscando errores difíciles de detectar. Es reconfortante saber que adoptar el enfoque basado en la claridad de MISRA garantiza que todo el equipo pueda identificar defectos más rápidamente, evitando largas noches de depuración frenética.

Manejo de escenarios de error

Cumplir con las directrices MISRA significa escribir código duradero, no solo para situaciones ideales, sino también para desafíos inesperados. Se trata de preparar su software para todas las posibilidades, asegurándose de que pueda gestionar todo con fluidez, desde operaciones típicas hasta la detección de datos no válidos o errores imprevistos, lo que hace que su aplicación sea significativamente más robusta y fiable.

Portabilidad de código

La conformidad con MISRA ayuda a los programadores a escribir código que se puede transferir y reutilizar fácilmente en diferentes sistemas informáticos o hardware, de forma similar a cómo estándares como POSIX y ANSI C permiten que el software funcione en diversas plataformas sin grandes cambios. Esto significa que los desarrolladores pueden cambiar a diferentes compiladores o sistemas operativos con un mínimo esfuerzo, lo que puede generar valiosas oportunidades financieras o comerciales cuando se necesiten nuevos sistemas de destino o entornos operativos.

Reducir la complejidad del código

La conformidad con MISRA ayuda a los desarrolladores a minimizar la ramificación excesiva en su código. Cuanto mayor sea la complejidad de la ramificación, mayor será el riesgo de errores y problemas de mantenimiento.

Introducción de MISRA en cualquier etapa

Una de las principales fortalezas de MISRA es que los equipos pueden introducir las pautas en cualquier etapa del desarrollo del software y los estándares siguen siendo efectivos incluso para proyectos incompletos o parcialmente codificados.

Es preocupante descubrir vulnerabilidades de seguridad en las últimas etapas del proceso de desarrollo. Nosotros hemos pasado por eso. MISRA te ayuda a proteger tu software desde el primer día, actuando como un escudo continuo, garantizando que no se filtre ninguna infracción crítica del código.

Adopción de MISRA

Icono que representa un engranaje

Enfoque del proyecto existente

Para proyectos donde el desarrollo de código nuevo es mínimo, lograr el cumplimiento de MISRA presenta desafíos únicos, que a menudo conducen a la adopción de una estrategia de "reconocimiento y aplazamiento". Si bien pragmático, este enfoque implica que cualquier infracción de codificación recién descubierta contribuye a la creciente deuda técnica en lugar de resolverse de inmediato.

Icono de una estrella blanca dentro de un círculo azul.

Estrategia de implementación recomendada

Para implementarlo correctamente Análisis estático para el cumplimiento de MISRAConcéntrese primero en corregir todas las infracciones de las normas obligatorias (requisitos absolutos para la certificación). Una vez que cumpla con las normas obligatorias, aborde las infracciones de las normas obligatorias y documente cualquier desviación necesaria.

Finalmente, gestione las infracciones de las reglas de asesoramiento según el tiempo disponible. No malgaste esfuerzos tratando todos los hallazgos por igual. Un orden de prioridad estricto (Obligatorio → Obligatorio → Asesor) es la forma más eficiente de lograr el cumplimiento. A medida que su equipo gane experiencia, integre el análisis estático en los flujos de trabajo de desarrollo habituales para mantener el cumplimiento con una sobrecarga mínima.

Análisis estático vs. dinámico: mejores prácticas »

Icono de automatización azul

Detección automatizada de problemas en tiempo de ejecución

Parasoft C/C++test detecta problemas complejos de cumplimiento de MISRA en tiempo de ejecución desde las primeras etapas del desarrollo, sin necesidad de ejecutar costosas pruebas de ejecución. C/C++test analiza las rutas de ejecución del código y detecta problemas de cumplimiento de MISRA, como la desreferenciación de punteros nulos, la división por cero, fugas de memoria y vulnerabilidades de seguridad, como operaciones aritméticas en un operando de puntero, desbordamientos de búfer, código inaccesible y funciones del sistema de la biblioteca estándar.

Icono de un engranaje con una marca de verificación en el centro

Ejemplos reales de actualizaciones de MISRA

MISRA C 2025 en el Código Legado

La actualización de MISRA C 2025 aporta mejoras prácticas para los equipos que trabajan con código heredado. Al eliminar reglas obsoletas, el estándar reduce la sobrecarga de cumplimiento que antes sobrecargaba a los equipos de desarrollo. Por ejemplo, se han flexibilizado ciertas restricciones sobre la ubicación de declaraciones cuando no afectan a la seguridad, lo que simplifica y agiliza la refactorización de código.

MISRA C++ 2023 para proyectos modernos

Gracias a la compatibilidad de MISRA C++ 2023 con las características de C++17, los equipos pueden aprovechar las capacidades modernas de C++ sin sacrificar la seguridad. Esto permite a los desarrolladores escribir código más conciso mediante funciones como enlaces estructurados y la deducción de argumentos de plantillas de clase, manteniendo la robustez necesaria para aplicaciones críticas para la seguridad.

icono de escudo

Informes de cumplimiento

El panel de análisis de Parasoft proporciona informes de cumplimiento automatizados. Para aplicaciones críticas de seguridad, le recomendamos utilizar nuestra solución con certificación TÜV SÜD en sistemas críticos.

Panel de informes de cumplimiento automatizado de Parasoft »

Próximos Pasos

La implementación de las directrices MISRA C\C++ sienta las bases para un software embebido seguro y confiable. Al aprovechar las soluciones integrales de Parasoft para el cumplimiento de MISRA, su equipo puede automatizar las laboriosas tareas de verificación, reducir la deuda técnica y entregar código de mayor calidad con menores costos de desarrollo.

Únase a más de 1,000 líderes de la industria que ya utilizan Parasoft para automatizar el cumplimiento de MISRA. Descubra cómo las principales empresas aeroespaciales han reducido las tasas de defectos en un 35 % y acelerado el tiempo de comercialización.

“MISRA”, “MISRA C” y el logotipo del triángulo son marcas comerciales registradas de The MISRA Consortium Limited. © The MISRA Consortium Limited, 2021. Todos los derechos reservados.

Imagen decorativa de un escudo dentro de un entorno tecnológico.
Banner de pie de página con personas trabajando en computadoras y conversando

Mejore sus pruebas de software con las soluciones de Parasoft.

Solicitar una demo