Vea cómo la solución de calidad continua de Parasoft ayuda a controlar y administrar los entornos de prueba para ofrecer software de alta calidad con confianza. Regístrese para la demostración >>
La escala de IoT es grande, probablemente más grande de lo que la mayoría de los fabricantes integrados se han enfrentado anteriormente. Además, los dispositivos individuales son solo parte de un todo más amplio que consta de muchas variedades y tipos de dispositivos. En mi ultimo post, Hablé de cómo la promesa de IoT está en los servicios que proporciona y la conglomeración de muchas "cosas" en algo de valor para la empresa. Es importante lidiar con esta escala tanto en (1) los requisitos del dispositivo ("cosas") como (2) el valor que agrega a toda la automatización ("servicios") en el ciclo de vida del desarrollo de software, con el fin de cubrir los costos, horario y restricciones de tiempo de comercialización. Las pruebas, en particular, deben escalar al entorno operativo esperado, además de brindar soporte para requisitos críticos no funcionales como el rendimiento y la seguridad.
La automatización en el proceso de desarrollo de software se vuelve fundamental a medida que aumenta la escala de la implementación de IoT. Los requisitos de seguridad y no funcionales se vuelven más importantes a medida que aumenta la conectividad y la escala. Las pruebas automatizadas basadas en servicios se vuelven críticas durante las fases de integración y prueba del sistema, al mismo tiempo que permiten las pruebas de seguridad, estabilidad y rendimiento.
Echemos un vistazo a la profundidad y amplitud de Parasoft en la automatización de pruebas, como se muestra en la Figura 1, ya que se aplica a cada fase del SDLC. La conclusión clave es cómo cada solución se complementa con la otra y se escala a medida que crece el producto. Las pruebas unitarias se complementan con análisis estáticos y en tiempo de ejecución. Durante la integración, las pruebas unitarias progresan a API y herramientas de prueba de servicios, que luego progresan a la virtualización de servicios.
Figura 1: Pruebe las soluciones de automatización y dónde se introducen en el ciclo de vida del desarrollo de software.
La mayoría de los desarrolladores están familiarizados con algunos aspectos de la automatización de pruebas; sin embargo, muchos no están pensando en términos de servicios o pruebas y virtualización basadas en servicios. A medida que el paradigma cambia de "cosas" a "servicios", el beneficio de las pruebas basadas en servicios se vuelve más evidente.
A medida que un producto avanza a través del proceso de desarrollo hacia la integración, las pruebas se vuelven más complicadas y costosas. Esta es también la etapa en la que se encuentran muchos errores críticos, incluidos problemas de seguridad y rendimiento no detectables a nivel de unidad. Un gran riesgo es la disponibilidad de personal de pruebas, laboratorios y recursos de hardware.
La solución aquí es la automatización. La automatización proporciona una forma de aumentar la productividad de las pruebas, la repetibilidad y el alcance de las pruebas del sistema. Un enfoque de prueba automatizado y basado en servicios es fundamental para el éxito de un dispositivo IoT recientemente desarrollado.
Los beneficios incluyen los siguientes:
Una prueba funcional pura no es suficiente para llevar un dispositivo al mercado. Los requisitos no funcionales, como la seguridad y el rendimiento, son críticos, pero son algunas de las características más difíciles de probar. Un dispositivo que tiene un rendimiento deficiente o una seguridad deficiente simplemente no es competitivo, pero cumplir con las limitaciones de tiempo de comercialización y probar adecuadamente el rendimiento y la seguridad es un desafío serio para los dispositivos de IoT. La orientación al servicio proporciona una forma común de especificar los requisitos (por ejemplo, rendimiento por servicio) y para probar la seguridad (por ejemplo, ataques que explotan servicios y API expuestos).
Es probable que los requisitos de rendimiento y seguridad se expresen en términos de una declaración de calidad de servicio. Por ejemplo, es posible que se requiera un sistema HVAC para mantener la temperatura del edificio a 75 grados en dos horas en base a una diferencia de 5 grados en la temperatura exterior, informando la temperatura actual cada 10 segundos. Si diseña un termostato para este producto, puede probar la funcionalidad a nivel individual y quizás también el rendimiento. Sin embargo, si un sistema implementado consta de cientos de termostatos, el rendimiento del dispositivo es solo una pequeña parte de una red compleja de otros dispositivos.
Los requisitos de seguridad suelen ser vagos y a nivel del sistema. En el ejemplo del sistema HVAC, es posible que se requiera que un termostato no falle bajo cargas pesadas de la red. Un ataque de denegación de servicio se basa en inundar el objetivo con mucho tráfico, a veces con paquetes mal formados. Las pruebas de penetración y fuzz se utilizan en estos casos para asegurarse de que los dispositivos puedan soportar un entorno de red hostil. La escalabilidad disponible en un entorno virtual supera lo que es posible con hardware real.
El siguiente paso lógico para las pruebas automatizadas basadas en servicios es la virtualización. Es posible un entorno virtual completo simulando todos los componentes dependientes más un conjunto completo de estímulos de prueba. El beneficio de la virtualización de servicios no es solo los entornos de prueba realistas y repetibles, sino la capacidad de duplicar e implementar a voluntad, creando así un "laboratorio virtual", un laboratorio que es tan efectivo como el real pero a una fracción del costo.
La automatización de pruebas, en general, es fundamental para cumplir los objetivos de los productos de IoT, como el tiempo de comercialización y el presupuesto. Un enfoque basado en servicios aumenta la productividad de las pruebas y permite pruebas de rendimiento y seguridad altamente repetibles y escalables, junto con la capacidad de crear entornos de prueba virtuales. A medida que crece la complejidad de los dispositivos de IoT y su entorno de implementación, la necesidad de pruebas escalables a nivel de servicio se vuelve más apremiante.
Las herramientas de prueba de software automatizadas líderes en la industria de Parasoft respaldan todo el proceso de desarrollo de software, desde que el desarrollador escribe la primera línea de código hasta las pruebas unitarias y funcionales, hasta las pruebas de rendimiento y seguridad, aprovechando los entornos de prueba simulados en el camino.