Persona escribiendo en la computadora
Análisis en tiempo de ejecución C / C ++

Análisis en tiempo de ejecución C integrado

Desarrollado por la prueba Parasoft C / C ++, la solución de prueba de desarrollo más completa para C y C ++

Análisis de tiempo de ejecución para aplicaciones C integradas

Parasoft C/C++test encuentra defectos de tiempo de ejecución, problemas de estabilidad y vulnerabilidades de seguridad, como fugas de memoria, punteros nulos, memoria no inicializada y desbordamientos de búfer, al monitorear el tiempo de ejecución cuando se ejecuta una aplicación integrada o basada en host, o una unidad de ejecución. pruebas escritas en C. El componente de tiempo de ejecución es extremadamente liviano y requiere solo una pequeña cantidad de código adicional y espacio de datos. Esto es ideal para casos de uso en la industria automotriz para abordar los requisitos de ciberseguridad ISO 21434 que exponen puntos ciegos en el software de vehículos de carretera.

¿Cómo Funciona?

La prueba Parasoft C / C ++ instrumenta automáticamente la base de código de una aplicación para activar el monitoreo cuando la aplicación se está ejecutando, identificando defectos graves, problemas de estabilidad y vulnerabilidades de seguridad, como:

  • Pérdidas de memoria
  • Corrupción de la memoria
  • Leer memoria no inicializada
  • Acceder a la memoria usando un puntero fuera de rango (por ejemplo, desbordamiento de búfer)
  • Accediendo a la memoria usando un puntero nulo
  • Usando free () en un puntero no válido

El análisis de tiempo de ejecución de la prueba de Parasoft C / C ++ proporciona configuraciones de prueba predefinidas para admitir aplicaciones nativas e integradas con asignaciones de memoria de estilo C (malloc / free). El análisis en tiempo de ejecución se puede realizar tanto durante las pruebas unitarias, para validar escenarios específicos y rutas de ejecución, como durante las pruebas funcionales, para monitorear la aplicación completamente integrada.

Los defectos que se han encontrado durante las pruebas en tiempo de ejecución se pueden presentar directamente en el IDE del desarrollador y se pueden correlacionar con otros resultados de pruebas y métricas de calidad, como la cobertura de código o resultados del análisis estático de Parasoft C/C++test, para que el usuario pueda obtener una imagen completa de la aplicación probada, lo que facilita la comprensión de la causa raíz de los defectos de tiempo de ejecución.

Caracteristicas

La prueba Parasoft C / C ++ monitorea una aplicación en ejecución, detectando problemas relacionados con el tiempo de ejecución (es decir, pérdidas de memoria, corrupción de memoria, lectura de memoria no inicializada, desbordamientos de búfer) que podrían provocar problemas de estabilidad, malos comportamientos funcionales o vulnerabilidades de seguridad. A diferencia del análisis estático, donde las advertencias pueden no necesariamente dar como resultado errores en el código en ejecución (también conocidos como falsos positivos), los errores encontrados por el análisis dinámico son siempre verdaderos positivos.

La prueba Parasoft C / C ++ monitorea los binarios de prueba cuando se ejecutan pruebas unitarias, lo que brinda información sobre el código bajo prueba para ayudar a los usuarios a comprender las fallas o inestabilidades de las pruebas unitarias. El análisis en tiempo de ejecución puede detectar errores que no se determinan fácilmente a partir de los resultados de las pruebas unitarias. Por ejemplo, las pérdidas de memoria pueden pasarse por alto durante las pruebas unitarias, ya que no se comprueban los problemas de memoria o el impacto en la memoria no es significativo. Al detectar defectos en tiempo de ejecución para las rutas de ejecución impuestas por los casos de prueba unitaria, la prueba C / C ++ puede ejercitar rutas a las que no se llega fácilmente cuando se ejecuta la aplicación original.

El análisis de tiempo de ejecución se puede realizar no solo para aplicaciones nativas, sino también para entornos multiplataforma / integrados, por lo que el análisis se realiza en el entorno de producción original. Es posible que los errores no se manifiesten con el desarrollo basado en host y el código de destino puede tener una arquitectura de procesador, un sistema operativo y restricciones de dispositivo diferentes, por lo que sin esto, los usuarios tendrían que realizar una depuración complicada en el destino (asumiendo que los defectos podrían detectarse al tener algunos efectos secundarios visibles durante las pruebas funcionales regulares).

Los defectos en tiempo de ejecución se presentan en el IDE de forma unificada con otros datos de prueba, como cobertura de código, fallas de pruebas unitarias o hallazgos de análisis estático, por lo que es más fácil analizar y comprender la causa raíz de los defectos en tiempo de ejecución.

Benefíciese del enfoque Parasoft

Identifique los defectos reales y las vulnerabilidades de seguridad en una etapa temprana, durante las pruebas unitarias y de integración, en el entorno incrustado en tiempo de ejecución original

Los defectos de tiempo de ejecución en entornos integrados suelen ser difíciles de reproducir en una plataforma de host (y, a menudo, también en plataformas de destino). Al monitorear la ejecución en tiempo de ejecución de una aplicación incrustada, en el entorno de tiempo de ejecución incrustado original, Parasoft lo ayuda a descubrir defectos del mundo real en su software.

Comprender la causa principal de los defectos para un enfoque preventivo

Al correlacionar los defectos del tiempo de ejecución con los resultados del análisis estático, Parasoft brinda a los usuarios visibilidad para comprender e identificar la causa raíz de los defectos. Esto ayuda a los equipos a aplicar prácticas preventivas en todo el código base para descubrir defectos ocultos adicionales y reducir la aparición de defectos en el futuro.

Encuentre más errores al realizar pruebas unitarias

La prueba unitaria es una práctica de prueba crítica para garantizar que su código funcione como se espera en condiciones que son difíciles o imposibles de reproducir cuando la aplicación está completamente ensamblada. La prueba Parasoft C / C ++ le permite aprovechar el análisis en tiempo de ejecución durante la ejecución de pruebas unitarias para descubrir problemas de tiempo de ejecución que están ocultos en la aplicación y que no puede reproducir fácilmente en su entorno de preproducción.