Pruebas de Software para Dispositivos IoT: Desafíos Clave y Soluciones
'Susan Harris está sola en la casa cuando, de repente, las puertas se cierran, las ventanas se clavan y el teléfono deja de funcionar. Susan está atrapada por un intruso; pero este no es un matón ordinario. En su lugar, el intruso es una computadora llamada Proteus, un cerebro artificial que ha aprendido a razonar. Y a aterrorizar...'
La película de 1977 Demon Seed, una historia sobre una IA rebelde puede haber sido un poco melodramática sobre el peligro que la inteligencia artificial plantea al hombre, pero tuvo alguna visión inteligente sobre la automatización del hogar y sus potenciales fallos.
Desde salud y automatización del hogar hasta transporte e industria de petróleo y gas, Internet de las Cosas (IoT) está creciendo rápidamente. Investigadores Garner Inc predijeron que para 2020, habrá 20.400 millones de dispositivos IoT conectados a internet.
Así que mientras ves películas en tu smartwatch, le pides a tu casa que se caliente a una temperatura preferida, y quizás negocias qué constituye quemado con tu tostadora, piensa en los testers. Los hombres y mujeres trabajando tras puertas cerradas para asegurar que estos dispositivos realmente funcionen como se pretende.
Entonces, ¿cuáles son los desafíos que enfrentan los testers de software al probar dispositivos IoT?
Primero, está lo obvio: ¿es seguro?
Seguridad
Una búsqueda rápida de IoT traerá una plétora de artículos discutiendo preocupaciones de seguridad con IoT. Sin embargo, en lugar de preocuparte de que tu tetera te esté espiando, está la preocupación muy real de añadir dispositivos nuevos o vulnerables a tus redes de confianza. Con un portátil o software de computadora se puede instalar para proteger dispositivos, pero para dispositivos IoT el soporte es escaso. Muchos dispositivos también tienen nombres de usuario y contraseñas por defecto que el usuario promedio nunca cambia, haciéndolos vulnerables.
Los testers también deben considerar el efecto más amplio que los dispositivos IoT pueden tener en la seguridad de internet. Solo hay que mirar hacia atrás al ataque del botnet Mirai que usó artículos como cámaras digitales y videograbadoras para causar enorme disrupción a grandes partes del internet de América, derribando sitios como Netflix, Twitter, CNN y Reddit.
Para un tester entonces, temas como flujo de datos entre dispositivos, cifrado de datos e integridad del software de prueba (si se automatiza) son todas preocupaciones clave.
A veces los testers simplemente deben confiar en que los usuarios protegerán sus redes. Sin embargo, con routers más baratos que a menudo contienen menos medidas de seguridad, ahí yace otro tema para testers de IoT, el de replicar el entorno en el que operará el artículo.
Replicación de entornos
Cuando se prueba un sitio web es fácil para los testers ejecutar las páginas por el molino. Abrir la página en los navegadores populares, ejecutarla en portátiles, tablets y smartphones y has probado prácticamente cómo será usada por el 90% de usuarios.
Sin embargo, con dispositivos IoT, replicar el entorno de un usuario es mucho más difícil. ¿El dispositivo se usará en casa o en el trabajo? ¿La velocidad de internet será rápida o lenta? ¿Cuántos dispositivos desconocidos también están conectados a esta red? ¿Necesitará el dispositivo salir y volver a unirse a la red?
Olvidando los aspectos técnicos, ¿qué tipo de muebles tendrá el dispositivo encima? Los HomePods de Apple han sido documentados dejando anillos blancos en mesas de madera tratadas o barnizadas. Aunque no es estrictamente un tema para el humilde tester de software, muestra cómo la amplia variedad de entornos significa que el trabajo de replicar condiciones para testers es desafiante.
Por esta razón, los testers deben asegurar que tienen una fuerte comprensión del producto e intentar abarcar tantos escenarios diferentes en sus pruebas como sea posible, incluyendo cómo el dispositivo funcionará con otros.
Cómo funciona con otros dispositivos
La prueba de compatibilidad siempre es una molestia para los testers, pero en el mundo IoT se convierte en una miríada de desafíos. Solo toma las interacciones aparentemente infinitas que pueden crearse en dispositivos que soportan IFTTT; hay simplemente demasiados movimientos en el tablero de ajedrez para analizar y probar cada dispositivo para cada lanzamiento en cada entorno.
La única forma en que los testers pueden empezar a abordar esta tarea es centrarse en los sistemas operativos y métodos de comunicación más populares (ej. bluetooth), en los dispositivos más populares, para que los esfuerzos tengan el alcance más amplio, antes de pasar a artículos más nicho.
Costes
Otro desafío es quizás uno de los más obvios: el coste. Probar algo más simple como un sitio web es razonablemente rápido y barato. Pero probar dispositivos IoT en diferentes entornos con diferentes integraciones puede ser muy costoso. El tiempo es un gran factor, debido a que los testers tienen que cubrir tantas bases, pero otro tema es la posible necesidad de software de prueba especializado. Algunos estudios han aludido que la combinación de falta de desarrolladores que no revisan su código por fallos de seguridad, y falta de pruebas exhaustivas de apps IoT significa que las pruebas se vuelven muy complejas. Y con la complejidad, viene el coste.
Energía y Respaldo
A diferencia de la solución de TI más común de apagarlo y encenderlo de nuevo, algunos dispositivos IoT pueden luchar si hay una pérdida repentina de energía. Los testers necesitan asegurar que prueban cómo cambia un dispositivo tras una pérdida de energía, particularmente para artículos en sectores de salud o industrial.
Esto se volverá menos problema a medida que la energía inalámbrica siga creciendo, pero hasta entonces las variables necesitan ser consideradas. Considera una alarma de intruso inteligente o una cámara de seguridad, si el sistema falla debido a un bug o caída de energía o conexión, son esencialmente inútiles.
Cómo o incluso si un dispositivo respalda es otro tema, especialmente cuando consideras cómo el software nuevo o actualizado responderá a datos más antiguos.
Actualizaciones
El firmware es una parte integral de muchos dispositivos IoT, y no hay nada que a los desarrolladores les guste más que lanzar nuevas actualizaciones. Pero para el tester, las actualizaciones pueden llevar consigo el monumental dolor de cabeza de bugs. Si un bug perdido pasa a una computadora estándar, entonces el problema usualmente puede simplemente probarse y arreglarse antes de que haya demasiado daño. Pero si un bug pasa a un dispositivo IoT, puede tener ramificaciones fisiológicas mucho mayores.
Toma el problema del Termostato Nest en enero de 2016. Una actualización de software el diciembre anterior había resultado en un bug drenando la vida de la batería de algunos Termostatos, causando que el sistema se desactivara. Eventualmente, la empresa lanzó una corrección de nueve pasos para usuarios, pero pruebas apropiadas y exhaustivas podrían haber salvado los temblores del usuario y la cara de la empresa.
Así que mientras no estamos en peligro de que nuestros hogares se conviertan en la IA Demonio Proteus; si los Testers de Software no toman las precauciones apropiadas, sí corren el riesgo de quedarse en el frío.
Tecnología de Internet de las cosas
- Por Qué los Dispositivos IoT con Wi-Fi Representan una Amenaza de Seguridad Creciente
- La adopción de IoT se estanca: por qué la exageración no cumple las expectativas
- Cómo las tecnologías de banda estrecha impulsan la revolución IoT
- Construyendo los cimientos para el éxito del IoT empresarial
- Actualizaciones de dispositivos IoT: superando desafíos de distribución en lugares de trabajo modernos
- Los 3 principales retos en la preparación de datos IoT para el éxito industrial
- Los 5 grandes retos del Internet de las Cosas hoy
- Los cinco retos centrales del IoT: inmersión profunda en las 5C – Parte 1
- Cómo IoT revolucionó la salud durante la pandemia de Covid-19
- Cerrando el punto ciego del IoT en un mundo post-pandemia
- Cómo elegir el socio ideal de desarrollo IoT: Retos clave y soluciones