Vea qué solución de pruebas de API resultó ganadora en el informe GigaOm Radar. Obtenga su informe analítico gratuito >>

Vea qué solución de pruebas de API resultó ganadora en el informe GigaOm Radar. Obtenga su informe analítico gratuito >>
Saltar a la sección
Los estándares de codificación para vehículos autónomos cambian constantemente debido a la evolución de la tecnología y las necesidades de las personas. Continúe leyendo para conocer los desafíos en las pruebas de software de conducción autónoma y las mejores prácticas para garantizar el cumplimiento de los estándares de codificación.
Saltar a la sección
Saltar a la sección
La conducción autónoma añade desafíos adicionales al cumplimiento al desarrollar vehículos en comparación con los requisitos tradicionales. Es más, la conducción autónoma es un ámbito extremadamente competitivo. Quien sea el primero en lanzar un producto certificado al mercado tendrá una ventaja significativa sobre la competencia. Como tal, es fácil para los desarrolladores ver el análisis estático y otras iniciativas de calidad como un obstáculo para el desarrollo.
Aunque la aceptación cultural puede ser un desafío para los equipos de desarrollo, la educación sobre los procesos de calidad necesarios para el desarrollo de software crítico para la seguridad es crucial para flujos de trabajo más rápidos y de menor costo con mejor documentación y mayores tasas de cumplimiento. Entonces, ¿cómo se abordan las pruebas de software de conducción autónoma?
Exploremos el mundo de coches sin conductor, análisis estático, seguridad funcional requisitos y más.
La conducción autónoma es cuando los vehículos funcionan solos sin necesidad de intervención humana. Esta operación utiliza una variedad de tecnologías que incluyen algoritmos de inteligencia artificial, sensores, cámaras, microprocesadores y más. Tenga en cuenta que “conducción autónoma” y “autónoma” no son lo mismo.
Un coche autónomo o automatizado seguirá requiriendo intervención humana en algún momento. Los vehículos totalmente autónomos pueden detectar y navegar en sus entornos sin intervención humana. Para categorizar el nivel de autonomía de un automóvil, existen seis niveles desarrollados por SAE International en 2014.
Este sistema de niveles sugiere que la automatización aumenta de forma lineal, lo que no siempre es así. Sin embargo, sigue siendo una herramienta útil para clasificar los tipos de automatización en vehículos.
El software de conducción autónoma es cualquier software utilizado en plataformas de conducción autónoma. Esto incluye mucho más que inteligencia artificial y aprendizaje automático. También incluye elementos que se encuentran en vehículos con capacidad de conducción no autónoma, como unidades de control electrónico o ECU. Estos recursos computarizados a bordo controlan todo, desde los frenos hasta las puertas y los sistemas de asistencia al conductor. Sin embargo, son las redes neuronales las que impulsan la conducción autónoma.
Estas redes pueden encontrar patrones de datos para que los algoritmos de aprendizaje automático los analicen y los traduzcan en acciones. Una situación de ejemplo podría ser que el sistema del automóvil autónomo vea una luz verde que cambie a amarilla y reduzca la velocidad en respuesta.
El software de conducción autónoma utiliza muchos tipos de sensores para percibir y analizar datos. Pueden determinar dónde se encuentra un vehículo en el espacio físico o en relación con objetos como bordillos u otros automóviles. Otro software traza una ruta para el vehículo hacia una ubicación específica o controla la aceleración, el frenado, la dirección y más.
Es como manejar un vehículo, excepto que una serie de programas, algoritmos e inteligencia artificial lo hacen por usted.
Como ocurre con cualquier sistema diseñado para uso humano, las plataformas de conducción autónoma requieren pruebas rigurosas y el cumplimiento de estándares específicos. Por ejemplo, ISO 26262 actúa como estándar de seguridad funcional automotriz para todo el proceso de desarrollo de productos automotrices. Ayuda a los fabricantes de automóviles a detectar, gestionar y mitigar los efectos de las fallas del sistema y del hardware para garantizar la seguridad. Sin embargo, no es suficiente para cubrir todos los desafíos de ingeniería que conllevan los vehículos autónomos. Pueden funcionar según lo diseñado, pero no logran hacer frente a escenarios del mundo real, como condiciones climáticas extremas o la conducta de las personas. Por ejemplo, consideremos el comportamiento de un niño que sale disparado en la calle o el de un adulto borracho.
En lugar de muchos escenarios interesantes y para ayudar con el análisis del comportamiento ambiental y humano, se agregó la norma automotriz ISO 21448:2021 para brindar orientación sobre las medidas de diseño, verificación y validación aplicables, así como las actividades durante la fase de operación que son necesarios para lograr y mantener la seguridad de la funcionalidad prevista (SOTIF).
AUTOSAR, o Arquitectura de sistema abierto automotriz, es una asociación de organismos interesados que buscan y desarrollan una arquitectura de software estandarizada para ECU en vehículos. Además, MISRA, la Asociación de Confiabilidad del Software de la Industria del Motor, crea pautas mediante las cuales los desarrolladores pueden crear componentes electrónicos para la industria automotriz.
Por lo tanto, probar el software de conducción autónoma es más que simplemente probar que los componentes del software garanticen la seguridad incluso si se produce una falla. Incluye probar la respuesta autónoma del vehículo a condiciones del mundo real y garantiza la seguridad. Además, las organizaciones deben demostrar que el software autónomo cumple con todos los requisitos reglamentarios.
Los vehículos autónomos requieren simulaciones de casos de prueba del mundo real. Estos incluyen entornos de conducción realistas, modelos de otros vehículos y situaciones que encontrarían los automóviles automatizados. Sin embargo, al tratarse de sistemas informatizados, también es necesario abordar las preocupaciones relativas a los ciberataques.
Los estándares de codificación para vehículos autónomos están en constante evolución gracias a la tecnología y las necesidades de las personas que también evolucionan. A pesar de esto, los desarrolladores siempre pueden recurrir a los estándares tradicionales de cumplimiento críticos para la seguridad al escribir código para los automóviles del mañana.
Existen varios estándares de codificación comunes en el software para diversas industrias. Sin embargo, un estándar de codificación en sí mismo es simplemente un conjunto de reglas de codificación, mejores prácticas y pautas según las cuales los desarrolladores deben escribir código.
Esto va más allá de los consejos generales, como limitar el uso de convenciones de nomenclatura globales o estandarizadas. Existen pautas o mejores prácticas de personas y empresas con décadas de experiencia en el desarrollo de software que garantizan un aumento en la calidad del código.
Desde la industria automotriz hasta los dispositivos médicos, la aviación, el ferrocarril y más, las industrias han adoptado estándares de codificación de seguridad C y/o C++. Algunos de estos incluyen:
Cuando se trata de conducción autónoma, los equipos deben utilizar los estándares de codificación enumerados anteriormente. Estos serían los más recomendados, pero debido a la naturaleza de los vehículos autónomos, estos estándares de codificación de seguridad no son suficientes.
Otros estándares, como CWE y OWASP, tienen reglas y pautas de codificación, pero van más allá del alcance del código. También tienen en cuenta el flujo de trabajo de desarrollo general, las políticas organizativas y los procesos que las personas deben seguir para garantizar la seguridad de los vehículos autónomos.
Entran en juego estándares y regulaciones adicionales al considerar los vehículos autónomos y los sistemas avanzados de inteligencia artificial involucrados en los procesos autónomos. Esta lista no es exhaustiva, pero proporciona orientación general:
Los aspectos clave de los vehículos autónomos que estos y otros estándares toman en consideración son:
La naturaleza inherentemente crítica para la seguridad del desarrollo de software de conducción autónoma conduce naturalmente a la necesidad de realizar pruebas exhaustivas y continuas. Pero, como todo tipo de desarrollo de software, la creación de sistemas impulsados por IA tiene sus propios obstáculos y desafíos.
Lograr el cumplimiento no es una tarea fácil. Incluso los profesionales más experimentados pueden fracasar en algún aspecto. Pero existen mejores prácticas generales fuera del desarrollo de software de conducción autónoma que benefician a todos los ingenieros de software.
Independientemente del alcance, el cronograma o el presupuesto del proyecto, es fundamental establecer expectativas y estándares desde el principio. Esto no solo garantizará que todos los miembros del equipo entiendan más fácilmente su código, sino que también garantizará que haya menos problemas para solucionar errores rápidamente. Nadie tendrá que jugar al teléfono ni a un juego de adivinanzas.
Al igual que las pruebas continuas, la revisión periódica del código le permite hacer cumplir mejor los estándares y abordar los problemas tempranamente. Esto le permite detectar cosas como anidamiento profundo, código ilegible, convenciones de nomenclatura correctas y más.
Poseer una mentalidad de estudiante, incluso como experto en un campo, puede ayudar a reforzar y mejorar sus habilidades. Como tal, vale la pena invertir en sus desarrolladores con educación y capacitación más allá de lo que podrían haber sido contratados inicialmente. Además, la tecnología siempre está cambiando. Eso significa que su equipo necesita mantenerse al día.
Las pruebas de análisis estático no son lo favorito de todos los desarrolladores. Pero la automatización ha hecho que sea mucho más fácil aprovechar los beneficios de este tipo de pruebas. Utilizar todas las herramientas del arsenal, incluida la inteligencia artificial y el aprendizaje automático, es una obviedad en una configuración ágil o de desplazamiento a la izquierda.
Una vez más, la forma más sencilla de evitar problemas es prevenirlos en primer lugar. La documentación y los informes permiten a los equipos realizar referencias cruzadas según sea necesario en lugar de tomar tiempo adicional para localizar a la persona que escribió originalmente el código. O peor aún, podrían simplemente hacer una suposición y seguir adelante con algo que no será utilizable.
Presentamos el análisis estático con el próximo anuncio MISRA C++ 2023 y los estándares de codificación AUTOSAR C++ 14 heredados que próximamente se anunciarán. El cumplimiento como proceso sostenible. puede parecer desalentador. Pero las pruebas siguen siendo una parte integral de las mejores prácticas, incluso en un campo tan innovador como la conducción autónoma.
Pruebas utilizando herramientas como Prueba C/C++ de Parasoft integra beneficios en su flujo de trabajo que incluyen:
Existen numerosas empresas que intentan ser las primeras en tener un vehículo verdaderamente autónomo en el mercado. Esta tecnología requiere pruebas exhaustivas para proteger la vida, funcionar correctamente y adaptarse a la vida cotidiana.
Aunque no es un documento oficial de la Administración Nacional de Seguridad del Tráfico en Carreteras (NHTSA), el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) publicó un conjunto preliminar de pautas para los estándares ADS en 2022. Borrador de estándar IEEE P2846 para supuestos para modelos en comportamiento automatizado de vehículos relacionados con la seguridad busca abordar los problemas únicos con la autonomía y la conducción. Sin embargo, tener una guía estándar para este caso de uso no es la única consideración futura.
Como se mencionó anteriormente, las pruebas de software de conducción autónoma también se basan en el mundo real para dar la bienvenida a los autos autónomos reales. Es posible que la tecnología y los modales tradicionales con los que navegamos tengan que cambiar con la adopción generalizada de la conducción automatizada. Surge la pregunta: ¿qué pasaría si las ciudades estuvieran diseñadas en torno al uso humano y no al estacionamiento de automóviles?
Incorporando análisis estático u otros tipos de pruebas continuas en su flujo de trabajo ofrecen resultados tangibles. Pero con herramientas como una de las muchas soluciones de Parasoft, lograr el cumplimiento de la seguridad con el software para automóviles automatizados es mucho más alcanzable. Solo recuerda hacer lo siguiente:
Con el objetivo de ser eficiente, minucioso y orientado al desarrollador, logrará el cumplimiento de la seguridad antes de lo que cree.