← Últimos artículos
💻 computer science

Scaling Mobile Chaos Testing with AI-Driven Test Execution

Este artículo presenta un sistema de pruebas de caos móvil impulsado por IA que integra la ejecución de pruebas basada en LLM con la inyección de fallos a nivel de servicio para validar automáticamente la resiliencia a escala, identificando con éxito riesgos arquitectónicos críticos y reduciendo el tiempo de depuración en las aplicaciones móviles de Uber.

Autores originales: Juan Marcano, Ashish Samant, Kai Song, Lingchao Chen, Kaelan Mikowicz, Tim Smyth, Mengdie Zhang, Ali Zamani, Arturo Bravo Rovirosa, Sowjanya Puligadda, Srikanth Prodduturi, Mayank Bansal

Publicado 2026-07-21
📖 5 min de lectura🧠 Análisis profundo

Autores originales: Juan Marcano, Ashish Samant, Kai Song, Lingchao Chen, Kaelan Mikowicz, Tim Smyth, Mengdie Zhang, Ali Zamani, Arturo Bravo Rovirosa, Sowjanya Puligadda, Srikanth Prodduturi, Mayank Bansal

Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo

Imagina que el internet es una ciudad gigante y bulliciosa donde millones de mensajeros digitales diminutos (aplicaciones) corren de un lado a otro entregando mensajes, comida y viajes. Entre bastidores, estos mensajeros dependen de una red masiva e invisible de servicios —como plantas de energía, semáforos y almacenes— para mantener todo funcionando sin problemas. A veces, una de estas partes invisibles se rompe o se vuelve lenta. Esto se llama un "fallo". En el mundo de la ingeniería de software, existe una práctica llamada Ingeniería del Caos, que es básicamente el arte de romper cosas intencionalmente a propósito para ver si el sistema puede sobrevivir. Es como un simulacro de incendio para un edificio, pero en lugar de fuego, se simula un corte de energía para ver si las luces de emergencia funcionan.

Sin embargo, probar aplicaciones móviles (las aplicaciones en tu teléfono) es complicado. A diferencia de un sitio web sencillo, una aplicación de teléfono tiene que lidstar con miles de ciudades, idiomas y hábitos de usuario diferentes. Si intentaras probar todas las formas posibles en que la aplicación podría fallar en cada ciudad, necesitarías escribir millones de guiones de prueba. Es como intentar revisar cada una de las puertas de una ciudad del tamaño de Nueva York para ver si cierran correctamente; es imposible para los humanos hacerlo manualmente. Este documento aborda este problema matemático imposible utilizando Inteligencia Artificial (IA) para realizar las pruebas en lugar de personas.

Los investigadores de Uber, una empresa que conecta a pasajeros con conductores y personas con comida, construyeron un sistema que combina dos herramientas poderosas. La primera herramienta es un robot de IA llamado DragonCrawl. Piensa en DragonCrawl como un adolescente superinteligente y curioso que puede mirar la pantalla de un teléfono, entender lo que ve (como "Ah, ese es un botón para pedir una pizza") y descifrar qué hacer clic después sin necesidad de que un humano escriba una instrucción específica para cada uno de los botones. La segunda herramienta es uHavoc, un sistema que actúa como un saboteador controlado. Intencionalmente rompe partes del backend (la red invisible de servicios) para ver cómo reacciona la aplicación del teléfono.

Normalmente, estas dos herramientas trabajaban por separado. DragonCrawl probaba si la aplicación funcionaba cuando todo era perfecto, y uHavoc probaba si los servidores podían soportar una caída. Pero los investigadores se dieron cuenta de que, si las combinaban, podrían crear una máquina de "pruebas de caos" que se ejecuta automáticamente. Dejaron que DragonCrawl navegara por la aplicación mientras uHavoc simultáneamente rompía cosas en el fondo. El objetivo era ver si la aplicación podía seguir funcionando (como pedir un viaje) incluso cuando los servicios del backend estaban teniendo un mal día.

El documento explica cómo construyeron este sistema y qué sucedió cuando lo encendieron. No solo adivinaron; ejecutaron el sistema más de 180,000 veces comenzando en el primer trimestre de 2024. Probaron 47 flujos críticos (como reservar un viaje o pedir comida) a través de las aplicaciones Rider, Driver y Eats de Uber. Los resultados fueron impresionantes. El sistema impulsado por IA encontró 23 problemas graves que los humanos habían pasado por alto. La mayoría de estos fueron casos en los que el fallo de un servicio pequeño y sin importancia causó que una función grande e importante (como pagar un viaje) colapsara. De hecho, dos de los problemas encontrados habrían causado que la aplicación se congelara y colapsara por completo, algo que solo las pruebas en un teléfono real podrían detectar.

Una de las partes más geniales de su descubrimiento es cómo solucionaron el "juego de la culpa". Cuando una prueba fallaba, antes le tomaba a los ingenieros sénior horas descubrir qué servicio roto causó que la aplicación del teléfono se comportara mal. Su nuevo sistema utiliza IA para analizar la evidencia y adivinar al culpable. Acertó sobre la causa principal el 88% de las veces al observar las cinco mejores suposiciones. Esto redujo el tiempo necesario para solucionar los problemas de horas a minutos.

El documento también destaca que esto no fue solo una teoría. Demostraron que funciona en el mundo real sin afectar a los clientes reales. Encontraron que la IA era increíblemente confiable, pasando el 99% de las pruebas incluso cuando las cosas se estaban rompiendo en el fondo. Esto significa que el sistema es lo suficientemente robusto como para ejecutarse todas las noches, verificando constantemente si la aplicación está lista para un desastre. Los autores argumentan que este enfoque resuelve el problema de la "explosión combinatoria": la idea de que el número de pruebas necesarias crece tan rápido que se vuelve imposible de manejar. Al usar la IA para adaptarse a la pantalla en tiempo real, no necesitaron escribir millones de guiones de prueba; la IA simplemente lo fue descubriendo sobre la marcha.

Sin embargo, el documento tiene cuidado en señalar lo que este sistema no puede hacer. No puede probar cosas como cortes de cables de internet o fallos en servicios que Uber no controla (como un proveedor de mapas de terceros). También depende de que la empresa tenga sus servicios debidamente etiquetados y rastreados, lo cual requiere mucho trabajo para configurarlo primero. Pero para los problemas que resuelve, el documento sugiere que esto es un salto masivo hacia adelante. Convierte las pruebas de caos móviles de un evento manual, raro y costoso, en una verificación de seguridad rutinaria y automatizada que ocurre cada noche, asegurando que cuando tocas "Pedir" en tu teléfono, la aplicación esté lista para cualquier cosa que el internet pueda lanzarle.

¿Ahogado en artículos de tu campo?

Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.

Probar Digest →