Logotipo de Parasoft

WEBINAR

Vea Modernización de las pruebas de software para sistemas embebidos en SDVs

Los automóviles ya no se definen por sus motores y acero, sino por la inteligencia de su software. A medida que los vehículos evolucionan hacia sistemas definidos por software, las pruebas también deben evolucionar, volviéndose continuas, automatizadas e inteligentes para cumplir con las exigencias actuales de seguridad y normativa.

Puntos clave

  • Prueba de cambio a la izquierda para detectar defectos de forma temprana mediante análisis estático y pruebas unitarias automatizadas.
  • Integre la seguridad, la protección y el cumplimiento en su Flujo de trabajo de desarrollo basado en CI/CD.
  • Aprovechar la IA y aprendizaje automático para priorizar problemas, recomendar soluciones inteligentes y simplificar la elaboración de informes de cumplimiento.
  • Ampliar los marcos de código abierto como GoogleTest para la verificación y validación de aspectos críticos de seguridad.

A medida que evolucionan los automóviles, también deben hacerlo las pruebas.

El cambio más significativo en la ingeniería automotriz es la transición a los vehículos definidos por software. Los automóviles ya no son solo sistemas mecánicos, sino que funcionan con millones de líneas de código que conectan los sistemas avanzados de asistencia al conductor (ADAS), el sistema de propulsión y el sistema de infoentretenimiento en un ecosistema dinámico. Esta complejidad plantea enormes desafíos de prueba que los métodos tradicionales no pueden abordar.

Los vehículos modernos exigen pruebas automatizadas, continuas e inteligentes para mantenerse al día con las constantes actualizaciones y la evolución del software. Dado que la IA y el aprendizaje automático ahora impulsan funciones críticas, la verificación debe garantizar un comportamiento predecible y seguro. Esto, combinado con estándares estrictos como ISO 26262 por seguridad y ISO 21434 En ciberseguridad, las pruebas no pueden ser un paso final, sino un proceso continuo a lo largo de todo el ciclo de vida, que incluso se extiende más allá de la sala de exposición a través de actualizaciones inalámbricas.

Adoptar prácticas de pruebas modernas

Las pruebas modernas para vehículos definidos por software comienzan con un enfoque de “desplazamiento a la izquierda”, detectar problemas a tiempo con análisis estático y pruebas unitarias automatizadasHerramientas como C/C++test CT ayudan a verificar el código a medida que se escribe, garantizando la seguridad y la fiabilidad desde el principio. Las pruebas también se pueden generar automáticamente. vinculado a los requisitosy comprobó la cobertura.

Gracias a la automatización de CI/CD y a la información basada en IA, las pruebas ahora son continuas e inteligentes. Cada cambio de código se analiza al instante, el cumplimiento normativo se mantiene actualizado y la IA ayuda a priorizar las correcciones, manteniendo el ritmo de la velocidad y la complejidad del software automotriz moderno.

Eliminando los silos con Agile y DevOps

Las pruebas modernas prosperan en entornos que fomentan la colaboración y la transparencia. Metodologías como Scrum mantienen a los equipos alineados y adaptables, mientras que los pipelines de DevOps automatizan las compilaciones, las pruebas y el análisis en un ciclo continuo.

Los flujos de trabajo de DevOps y las canalizaciones de CI/CD garantizan la verificación continua de la calidad, desde la confirmación del código hasta su despliegue, eliminando las barreras entre desarrollo, control de calidad y cumplimiento normativo. El resultado es un flujo de trabajo unificado y basado en datos que aumenta la productividad, reduce el riesgo y acelera la innovación.

Métodos básicos de prueba de calidad

Varios métodos de prueba básicos son cruciales para garantizar la calidad del código:

  • Análisis estático: Esta es la primera línea de defensa, que detecta defectos de codificación, vulnerabilidades de seguridad y problemas de cumplimiento antes de que se ejecute el código. Para el sector automotriz, se utilizan tanto MISRA C++ 2023 como AUTOSAR C ++ 14 Se recomienda hacerlo juntos. Estándares como CWE también ayudan a detectar vulnerabilidades de seguridad de forma temprana.
  • Pruebas unitarias, pruebas de integración, pruebas de sistema y pruebas de regresión: Estos métodos, realizados de forma continua, verifican la funcionalidad y la estabilidad en diferentes etapas de desarrollo.
  • Medición de la cobertura del código: Las herramientas miden la declaración, la rama y la cobertura MCDC., dependiendo de los requisitos de seguridad del sistema.
  • Paneles de informes y análisis: Estos informes consolidan los resultados de todas las actividades de prueba, proporcionando una visión en tiempo real de la calidad del software, el estado de cumplimiento y la preparación para su lanzamiento.

Ampliando GoogleTest para el desarrollo de sistemas críticos para la seguridad

GoogleTest es una de las herramientas favoritas entre los desarrolladores de C++ por su simplicidad, pero por sí sola no cumple con los requisitos de seguridad críticos. Parasoft C/C++test CT soluciona este problema. Integración con GoogleTest para satisfacer las exigencias rigurosas, de ISO 26262.

Así funciona la estafa:

  1. Métricas de cobertura automatizadas: C/C++test CT recopila métricas de cobertura detalladas (línea, rama, MC/DC y más) de las ejecuciones de GoogleTest.
  2. Trazabilidad de requisitos: Vincula automáticamente los casos de prueba a los requisitos en herramientas ALM (como Doors Next, Jira, Polarion), eliminando el seguimiento manual.
  3. Integración CI/CD: Las pruebas y la cobertura de código están integradas en los pipelines de CI/CD, detectando las regresiones de forma temprana.
  4. Informes de cumplimiento automatizados: C/C++test CT genera documentación para la ejecución de pruebas, la cobertura y la trazabilidad, lo que ahorra horas de trabajo manual durante las auditorías.

Esto transforma las pruebas unitarias de una tarea sencilla en una actividad estratégica que respalda los objetivos de seguridad y cumplimiento normativo. Usar GoogleTest como marco de código abierto significa no depender de herramientas propietarias, lo que ofrece flexibilidad y, al mismo tiempo, permite cumplir con los requisitos críticos de seguridad mediante soluciones integradas. Parasoft también está trabajando para ofrecer próximamente herramientas totalmente certificadas para el desarrollo en entornos críticos de seguridad.

El papel de la IA en las pruebas

La IA está haciendo que las pruebas sean más inteligentes, rápidas y eficientes. Estas son algunas de las formas clave en que se están utilizando:

  • Priorización: Los modelos de aprendizaje automático analizan datos históricos del proyecto (como defectos anteriores, complejidad del código y tipos de infracciones) para predecir qué infracciones tienen más probabilidades de causar defectos críticos o riesgos para la seguridad.
  • Sugerencias de corrección automática: La IA puede analizar las infracciones de código., explique su razonamiento y sugiera correcciones directamente en el editor.
  • Soporte al usuario impulsado por IA: Un asistente de IA, similar a ChatGPT, proporciona respuestas contextuales a las preguntas del usuario directamente dentro del IDE.
  • Agentes de IA y servidores MCP: Capacitar a los agentes de IA para que analicen y actúen de forma autónoma o asistida sobre los problemas de calidad del código.

Inteligencia artificial en sistemas automotrices

La IA está haciendo que los vehículos sean más inteligentes, con funciones como el asistente de mantenimiento de carril, el control de crucero adaptativo e incluso la conducción autónoma. Sin embargo, la implementación de la IA en los automóviles presenta desafíos, como el problema de la "caja negra", que dificulta el cumplimiento de la norma ISO 26262, y la necesidad de que la IA se ejecute en hardware integrado con recursos limitados.

Para abordar este problema, los modelos de IA se comprimen (por ejemplo, de 32 bits a 4 bits de precisión) y se optimizan para hardware especializado. Estándares como ISO/PAS 8800 guían el desarrollo de IA segura y certificable para vehículos. La verificación es crucial e implica la optimización del modelo, pruebas rigurosas y un diseño de sistema robusto. Los modelos de IA optimizados suelen «congelarse» para garantizar un comportamiento consistente, junto con controles basados ​​en reglas para prevenir acciones inseguras, y utilizan sistemas de redundancia para mayor resiliencia. Plataformas como Nvidia Drive permiten un comportamiento determinista de la IA en vehículos de producción, utilizados por los principales fabricantes de equipos originales (OEM) del sector automotriz.

Mejores prácticas para la seguridad

La creación de vehículos autónomos seguros implica combinar metodologías probadas con la automatización moderna. La norma ISO 26262 guía los análisis de peligros y riesgos, mientras que las recomendaciones UN R155 y R156 establecen marcos de garantía de ciberseguridad. Las técnicas TARA de la norma ISO 21434, respaldadas por herramientas como TARA de MITRE, mapean vulnerabilidades, identifican amenazas y definen medidas de mitigación a lo largo del ciclo de vida del vehículo.

Al incorporar la seguridad en cada etapa del modelo V, los equipos garantizan que los SDV sigan siendo funcionalmente seguros y ciberresilientes desde el diseño hasta la implementación.