Pruebas de Software Riguroso en RTI: Garantizando Fiabilidad en Connext DDS
El software de RTI impulsa innumerables sistemas de misión crítica. Nuestros clientes exigen la mayor fiabilidad y calidad, por lo que discutimos abiertamente nuestras prácticas de desarrollo, herramientas y el laboratorio IIoT de RTI al reunirnos con ellos. Un tema frecuente es la prueba de software que realizamos —un área en la que nos enorgullecemos. Esta publicación describe la estrategia de pruebas integral detrás de cada lanzamiento de RTI.
La familia de productos Connext comparte un proceso unificado de desarrollo y pruebas. La única excepción es Connext DDS CERT, que sigue un proceso distinto adaptado para aplicaciones certificadas de seguridad. Antes de lanzar cualquier software nuevo, ejecutamos una extensa suite de pruebas que validan funcionalidad, rendimiento y escalabilidad.
Pruebas Unitarias
Las pruebas unitarias confirman que las funciones individuales se comportan como se espera. Forman la columna vertebral de nuestras pruebas de regresión para cada lanzamiento de producto. Más allá de simples comprobaciones de funciones, el marco soporta pruebas de características de nodo único e incluso incorpora ajustes QoS proporcionados por clientes en lanzamientos recientes. Nuestro objetivo es emular entornos operativos realistas siempre que sea posible.
Pruebas de Características
Cuando se agrega una nueva característica, creamos un plan de prueba de característica y desarrollamos pruebas de extremo a extremo. Para Connext DDS Micro, empleamos un marco de prueba distribuido que usa múltiples "corredores de prueba" en máquinas separadas, coordinados por un "gestor de prueba" central. Un lenguaje de prueba DDS personalizado describe cada escenario, y los corredores ejecutan scripts, publican resultados PASS/FAIL y esperan el siguiente comando. Las pruebas de características se centran en:
- APIs a nivel de aplicación y políticas QoS DDS (deadline, liveliness, etc.)
- Límites de recursos
- Compatibilidad cross-endianness
- Mecanismos de descubrimiento
- Métricas de rendimiento
- Estabilidad bajo carga
Pruebas de Interoperabilidad
- Dentro de productos RTI – Pruebas automatizadas ejecutan miles de combinaciones de configuración, especialmente tras lanzamientos de características como Connext 6. Versiones anteriores de RTI se prueban cuando identificamos riesgos de ruptura potenciales.
- Interoperabilidad de lenguajes – Las pruebas se realizan indirectamente combinando herramientas Java de RTI (p. ej., RTI Admin Console) con aplicaciones escritas en otros lenguajes.
- Con otros proveedores DDS – Pruebas básicas regulares ocurren en reuniones OMG DDS, mientras que comprobaciones más profundas sobre DDS Security, Tipos Extensibles y el protocolo de cable RTPS se coordinan vía la comunidad OMG (https://github.com/omg-dds).
Pruebas de Instalación
Las pruebas de instalación capturan integración e interoperabilidad a través de múltiples productos RTI. Se ejecutan manualmente y vía una suite automatizada que cubre:
- Instalación correcta de archivos
- Integración de interfaz gráfica de usuario (actualmente manual)
- Precisión de documentación
- Funcionalidad básica usando ejemplos incluidos, incluida la Guía de Inicio Rápido, en muchas plataformas
- Interoperabilidad de producto y lenguaje
Las pruebas de instalación automatizadas verifican:
- Integridad de instalación vía comprobaciones de archivos
- Ejecución de utilidades (rtiddsping, rtiddsspy, rtiprototyper)
- Ejemplos generados por rtiddsgen en C, C++, C++03, C++11, C++ CLI, C# y Java (estático/dinámico, release/debug)
- Ejemplos incluidos con varias configuraciones de compilación
- Ejemplos de rendimiento en C++ y Java
- Ejemplos TCP incluidos en C
Estas pruebas corren en 80 arquitecturas distintas, incluyendo Windows, Linux, Solaris, Lynx, QNX, Darwin y VxWorks.
Perfilado de Rendimiento y Memoria
Las pruebas de rendimiento distribuido realistas son inherentemente complejas. Nuestras herramientas están diseñadas para medir métricas clave como dimensionamiento de buffers, throughput, latencia, entrega en tiempo real, uso de pila e interacciones con el SO.
- Las pruebas unitarias capturan rendimiento y uso de memoria a nivel de función.
- perfTest perfila el rendimiento general de Connext DDS. Está extensamente ajustado para mediciones realistas y puede correr junto a otros productos como Routing Service. Datos públicos de latencia y throughput disponibles en benchmarks de RTI.
- memTest monitorea la huella de memoria central de Connext DDS Core. Connext DDS Micro también registra uso detallado de memoria durante pruebas unitarias.
- Aplicaciones como RTI Admin Console y RTI Recording Service incluyen monitoreo de rendimiento integrado.
La integración continua de perfTest y memTest previene regresiones más allá de un umbral predefinido a medida que se agregan nuevas características.
Pruebas de Resistencia
Estas pruebas simulan escenarios de larga duración, monitoreando uso de heap durante operaciones dinámicas como creación/eliminación de participantes o endpoints. El marco de resistencia también fuzzea paquetes RTPS al ejecutarse con plugins de seguridad RTI, todo ejecutado contra la última versión Generally Available.
Pruebas a Gran Escala y de Estrés
Las pruebas a gran escala se construyen deliberadamente alrededor de nuevas características. Por ejemplo, introducir Movilidad de Transporte requirió pruebas que emulan conexión/desconexión a varios puntos de acceso inalámbricos. Mejorar el descubrimiento disparó un marco dedicado que simula miles de endpoints, verificando automáticamente el éxito del descubrimiento. Aunque estas pruebas no se re-ejecutan con cada lanzamiento debido a restricciones de equipamiento y red, se re-ejecutan cuando cambia la lógica de descubrimiento.
Aunque ningún programa de pruebas puede cubrir todos los escenarios posibles, el enfoque extensivo y multifacético de RTI brinda a los clientes confianza en cada nuevo lanzamiento.
Sobre el Autor
Jan se unió a RTI en 2006 tras más de dos décadas en roles técnicos y de cara al cliente en Sun Microsystems, VLSI Technology y otros líderes de la industria. Con experiencia en middleware, aplicaciones grid, diseño de SO y desarrollo de chips de red, Jan ayudó a construir una tasa de satisfacción del cliente del 98% en una nueva organización de soporte. Como VP de Ingeniería, lidera un equipo distribuido de 60+ ingenieros, supervisando I+D, procesos de desarrollo de software y calidad de producto para RTI Connext. Jan posee un título equivalente a MS en Electrónica, Comunicaciones Digitales (Summa Cum Laude) de KIHK, Geel, Bélgica.
Más Información:
- Producción de Vehículos Autónomos
- ¿Qué es DDS?
- Connext DDS Pro
Tecnología de Internet de las cosas
- 634AI elige RTI Connext DDS para optimizar la gestión de flotas AMR
- Domine la Manufactura Moderna: 16 Artículos de Expertos
- Técnicas de Ensayo de Dureza: Métodos Rockwell y Brinell
- Test Flying Probe (FPT): Guía profesional para verificación fiable de funcionalidad PCB
- Por qué las pruebas de circuito funcional son cruciales para la confiabilidad de PCB
- Dispositivo Portátil Asequible Detecta Patógenos Virales y Bacterianos en 30 Minutos
- Simulación de nieve: pruebas precisas de radar y LiDAR para vehículos autónomos
- OpenDDS vs. RTI Connext DDS: Elegir la Solución DDS Adecuada
- RTI Connext 6 Ya Disponible: Rendimiento Mejorado, Seguridad y Conectividad Unificada
- GE lanza spin-off de IIoT de 1.200 millones de dólares para fortalecer su cartera digital
- Pruebas de Software para Dispositivos IoT: Desafíos Clave y Soluciones