Pruebas rentables de dispositivos IoT con laboratorios virtuales
por Parasoft
18 de agosto de 2017
5 min leer
Incluso el dispositivo de IoT más pequeño vive en un entorno complejo, que puede no entenderse completamente en el momento del desarrollo. De hecho, ya hemos visto los problemas de seguridad asociados con los dispositivos que se conectan a Internet por primera vez. En una anterior post, discutimos los beneficios de la orientación al servicio para el diseño, desarrollo y prueba. En esta publicación, llevaremos las pruebas basadas en servicios y la virtualización de servicios al siguiente paso: laboratorios virtuales. La construcción de un entorno de laboratorio de pruebas físicas realista es difícil e incluso cuando se completa, se convierte en el principal cuello de botella en las pruebas del sistema. Los laboratorios virtuales eliminan este cuello de botella al tiempo que brindan nuevos beneficios a las pruebas de dispositivos IoT basadas en servicios.
Muchos dispositivos de IoT no están listos para el horario estelar
Un estudio descubrió que el 80 por ciento de las aplicaciones de IoT no siendo probado por fallas de seguridad. El Grupo Barr descubrió que 56% de los desarrolladores de dispositivos integrados no revisa el código fuente en busca de vulnerabilidades de seguridad y el 37% no tiene un estándar de codificación escrito. Estas no son estadísticas alentadoras, y está claro que los fabricantes de dispositivos de IoT deben tomarse más en serio la calidad, la seguridad y la protección. La automatización de pruebas es un paso importante para garantizar que las pruebas se realicen de forma más rigurosa, coherente y exhaustiva. Las pruebas, especialmente para las vulnerabilidades de seguridad, a menudo se consideran demasiado costosas y complejas y, por lo tanto, se apresuran o se pasan por alto por completo. Pero es un error costoso permitir que sus clientes (y atacantes) prueben la seguridad de su dispositivo IoT por usted.
Los ingredientes del laboratorio virtual
Un laboratorio de pruebas real requiere la manifestación física más cercana del entorno en el que se planea trabajar un dispositivo de IoT, pero incluso en el laboratorio más sofisticado, es difícil escalar a un entorno realista. Un laboratorio virtual soluciona este problema. Los laboratorios virtuales evolucionan más allá de la necesidad de dependencias de hardware difíciles de encontrar (o quizás inexistentes). Utilice la virtualización de servicios sofisticada con otras herramientas clave de automatización de pruebas:
- Virtualización de servicios simula todas las dependencias que necesita el dispositivo bajo prueba para realizar la prueba completa del sistema. Esto incluye todas las conexiones y protocolos utilizados por el dispositivo con respuestas realistas a la comunicación. Por ejemplo, la virtualización de servicios puede simular el back-end de un servidor empresarial con el que se comunica un dispositivo de IoT para proporcionar lecturas periódicas de los sensores. De manera similar, la virtualización puede controlar el dispositivo IoT de manera realista.
- Prueba de servicio y API proporcionan una forma de controlar el dispositivo que se está probando de manera que se garantice que los servicios que proporciona (y las API proporcionadas) funcionan sin problemas. Estas pruebas se pueden manipular a través de la plataforma de automatización para realizar pruebas de rendimiento y seguridad según sea necesario.
- Supervisión del tiempo de ejecución detecta errores en tiempo real en el dispositivo bajo prueba y captura información de seguimiento importante. Por ejemplo, las fugas de memoria, que pueden pasar desapercibidas en un producto terminado, pueden detectarse y resolverse de forma temprana y económica.
- Gestión y análisis del laboratorio de pruebas proporcionar el control general de los laboratorios virtuales. Una vez virtualizado, toda la configuración del laboratorio se puede replicar según sea necesario y las ejecuciones de prueba se pueden automatizar y repetir. Los análisis proporcionan el resumen necesario de actividades y resultados.
El ecosistema de IoT de computación de borde se muestra a continuación en la Figura 1, que muestra un entorno típico en el que se implementan dispositivos de IoT integrados. Los sensores y los dispositivos de control comunican información al Edge, que es una serie de dispositivos o aplicaciones que pueden recibir información y usar la lógica para comunicarse con un dispositivo o con la nube. Entonces, la nube tiene una lógica de nivel superior que le permite actuar sobre esa información. La nube es un conjunto de servicios (microservicios, conexiones a bases de datos, lógica adicional o servicios de terceros), una red compleja de bloques de construcción funcionales, que se muestra a continuación a la derecha.
Figura 1: Un ecosistema de IoT típico en el que se implementarían dispositivos integrados
Cuando llega el momento de realizar pruebas en el ecosistema de IoT, se requieren pruebas en muchas capas. Para probar la nueva funcionalidad introducida en la puerta de enlace, por ejemplo, la validación de que la puerta de enlace puede recibir información de los sensores y puede comunicarla de la forma en que ha creado la lógica empresarial.
Para validar toda esta complejidad, Virtualización de Parasoft (que simula las dependencias necesarias) y Prueba SOA de Parasoft (que impulsa las pruebas) se utilizan para simular esas entradas. Estas herramientas proporcionan simulaciones de llamadas realistas desde los dispositivos a través de la red (ya sean protocolos como REST / HTTP o protocolos populares de IoT como CoAP, XMPP o MQTT) y prueban que el dispositivo bajo prueba (la puerta de enlace en este ejemplo) se está comunicando con los servicios en la nube de manera adecuada, validando las respuestas que provienen de SOAtest. La Figura 2 a continuación muestra un ejemplo de cómo se puede crear un entorno de laboratorio virtual para los dispositivos periféricos bajo prueba.
Si hay formas externas de comunicar información a esa puerta de enlace, esas llamadas también se pueden simular. Parasoft Virtualize está diseñado para estabilizar el entorno de prueba, para crear respuestas predecibles a las solicitudes que aprovechan los datos de prueba de SOAtest, probando completamente la puerta de enlace y los servicios.
Finalmente, los servicios de nivel superior pueden comunicarse de regreso al borde y de regreso a otros sensores y actores externos, y puede ser importante saber que el flujo de sus entradas se abre camino a través del entorno de regreso al back-end. sistemas. Parasoft Virtualize se utiliza para simular la recepción de esas llamadas hasta el borde (hasta los dispositivos de IoT) y luego transmitir esa información a SOAtest para confirmar que la llamada hizo el viaje de ida y vuelta y se comportó de la manera esperada dentro del ecosistema de IoT. . La combinación de Parasoft Virtualize y SOAtest proporciona un control total para probar todo el entorno, incluso dentro de las complejidades de un ecosistema de IoT.
Figura 2: La función de las herramientas Virtualize y SOAtest de Parasoft crea un entorno de laboratorio virtual para un dispositivo de borde bajo prueba
Mejore la calidad y la seguridad al tiempo que reduce el tiempo, los costos y los riesgos
Los entornos de prueba normales son costosos, probablemente más de lo que prevén la mayoría de los gerentes de desarrollo. Un estudio de investigación de voke encontró que la inversión promedio en un laboratorio de preproducción era de $ 12 millones. En términos de tiempo, el tiempo medio de aprovisionamiento del laboratorio fue de 18 días y se dedicaron otros 12 a 14 días a la configuración. Estos laboratorios requieren mucho tiempo y dinero para configurar, e incluso después de eso, actúan como el cuello de botella para las pruebas debido al acceso limitado. Además, los costos operativos diarios de los laboratorios físicos son significativos. En la mayoría de los casos, duplicar un laboratorio físico para aumentar el rendimiento de las pruebas tiene un costo prohibitivo.
In otra publicación, reducimos los beneficios de la virtualización de servicios para mejorar el acceso a los dispositivos de prueba con un mejor control del comportamiento de las dependencias virtualizadas, lo que reduce los costos y aumenta la velocidad de la prueba. De manera similar, analicemos los beneficios del laboratorio de pruebas virtual de IoT:
- Calidad mejorada a través de pruebas mejores y más completas
Las pruebas basadas en servicios garantizan que los casos de uso clave se ejerciten y perfeccionen. Las pruebas de rendimiento automatizadas garantizan la estabilidad y fiabilidad bajo carga pesada. Además, la supervisión del tiempo de ejecución garantiza que se detecten y rastreen los errores difíciles de encontrar. - Seguridad mejorada con pruebas de penetración automatizadas que simulan datos con formato incorrecto
Las pruebas de carga pueden simular ataques de denegación de servicio y el monitoreo en tiempo de ejecución puede detectar vulnerabilidades de seguridad. La repetibilidad de la prueba garantiza que cada iteración, parche o versión se pruebe exactamente de la misma manera. Además, se simplifica el desarrollo y la manipulación de pruebas (es decir, mejorar y crear nuevas pruebas). - Reducir el tiempo, el riesgo y el costo de las pruebas al eliminar la necesidad de costosas dependencias requeridas para las pruebas de sistemas completos
La automatización proporciona repetibilidad y consistencia que las pruebas manuales no pueden, al tiempo que proporciona pruebas mejores y más completas. Los laboratorios virtuales reducen en gran medida el tiempo de provisión necesario para las configuraciones del laboratorio físico, lo que afecta el tiempo total de prueba.
Conclusión
Dado el estado del desarrollo de dispositivos de IoT, es necesario realizar cambios en los procesos de desarrollo y prueba. La automatización de pruebas es un enfoque probado para reducir costos y riesgos. El siguiente gran paso en la mejora de la calidad y la seguridad de los dispositivos de IoT es el uso de laboratorios virtuales que combinan la virtualización de servicios, las pruebas basadas en servicios, la gestión de laboratorios virtuales y la supervisión del tiempo de ejecución. Esto reduce en gran medida los costos de aprovisionamiento y configuración al tiempo que aumenta en gran medida la calidad de las pruebas que se realizan.