Scaling Mobile Chaos Testing with AI-Driven Test Execution
Este artigo apresenta um sistema de testes de caos móvel impulsionado por IA que integra a execução de testes baseada em LLM com injeção de falhas em nível de serviço para validar automaticamente a resiliência em escala, identificando com sucesso riscos arquiteturais críticos e reduzindo o tempo de depuração em todas as aplicações móveis da Uber.
Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo
Imagine a internet como uma cidade gigante e movimentada onde milhões de pequenos mensageiros digitais (aplicativos) correm para entregar mensagens, comida e viagens. Nos bastidores, os mensageiros dependem de uma vasta e invisível teia de serviços — como usinas de energia, semáforos e armazéns — para manter tudo funcionando perfeitamente. Às vezes, uma dessas partes invisíveis quebra ou fica lenta. Isso é chamado de "falha". No mundo da engenharia de software, existe uma prática chamada Engenharia de Caos, que é basicamente a arte de quebrar coisas propositalmente para ver se o sistema consegue sobreviver. É como um treinamento de incêndio para um edifício, mas em vez de fogo, você simula uma queda de energia para ver se as luzes de emergência funcionam.
No entanto, testar aplicativos móveis (os apps no seu telefone) é complicado. Diferente de um site simples, um aplicativo de celular tem que lidar com milhares de diferentes cidades, idiomas e hábitos de usuários. Se você tentasse testar todas as formas possíveis de o aplicativo quebrar em cada cidade, precisaria escrever milhões de roteiros de teste. É como tentar verificar cada porta de uma cidade do tamanho de Nova York para ver se elas trancam corretamente; é impossível para humanos fazerem isso manualmente. Este artigo aborda esse problema matemático impossível usando Inteligência Artificial (IA) para fazer o teste no lugar das pessoas.
Os pesquisadores da Uber, uma empresa que conecta passageiros a motoristas e pessoas à comida, construíram um sistema que combina duas ferramentas poderosas. A primeira ferramenta é um robô de IA chamado DragonCrawl. Pense no DragonCrawl como um adolescente super inteligente e curioso que consegue olhar para a tela de um telefone, entender o que vê (como "Ah, esse é um botão para pedir uma pizza") e descobrir o que clicar em seguida sem precisar que um humano escreva uma instrução específica para cada botão. A segunda ferramenta é o uHavoc, um sistema que atua como um sabotador controlado. Ele quebra intencionalmente partes do backend (a teia invisível de serviços) para ver como o aplicativo de celular reage.
Normalmente, essas duas ferramentas trabalhavam separadamente. O DragonCrawl testava se o aplicativo funcionava quando tudo estava perfeito, e o uHavoc testava se os servidores conseguiam lidar com uma queda. Mas os pesquisadores perceberam que, se combinassem ambos, poderiam criar uma "máquina de teste de caos" que roda automaticamente. Eles deixaram o DragonCrawl navegar pelo aplicativo enquanto o uHavoc simultaneamente quebrava coisas no plano de fundo. O objetivo era ver se o aplicativo conseguiria continuar funcionando (como pedir uma viagem) mesmo quando os serviços de backend estivessem passando por um dia ruim.
O artigo explica como eles construíram esse sistema e o que aconteceu quando o ligaram. Eles não apenas adivinharam; eles rodaram o sistema mais de 180.000 vezes começando no primeiro trimestre de 2024. Eles testaram 47 fluxos críticos (como reservar uma viagem ou pedir comida) através dos aplicativos Rider, Driver e Eats da Uber. Os resultados foram impressionantes. O sistema impulsionado por IA encontrou 23 problemas sérios que os humanos haviam perdido. A maioria desses casos envolvia situações onde a falha de um serviço pequeno e sem importância causava a interrupção de um recurso grande e importante (como pagar por uma viagem). Na verdade, dois dos problemas encontrados teriam feito o aplicativo travar completamente, algo que só o teste em um telefone real poderia detectar.
Uma das partes mais legais de sua descoberta é como eles resolveram o "jogo de culpados". Quando um teste falhava, levava horas para engenheiros seniores descobrirem qual serviço quebrado fez o aplicativo de celular agir de forma estranha. O novo sistema deles usa IA para analisar as evidções e adivinhar o culpado. Eles acertaram a causa principal 88% das vezes ao observar as cinco principais suposições. Isso reduziu o tempo necessário para corrigir problemas de horas para minutos.
O artigo também destaca que isso não foi apenas uma teoria. Eles provaram que funciona no mundo real sem prejudicar clientes reais. Eles descobriram que a IA era incrivelmente confiável, passando em 99% dos testes mesmo quando coisas estavam quebrando no plano de fundo. Isso significa que o sistema é robusto o suficiente para rodar todas as noites, verificando constantemente se o aplicativo está pronto para o desastre. Os autores argumentam que essa abordagem resolve o problema da "explosão combinatória" — a ideia de que o número de testes necessários cresce tão rápido que se torna impossível de gerenciar. Ao usar a IA para se adaptar à tela em tempo real, eles não precisaram escrever milhões de roteiros de teste; a IA simplesmente descobriu conforme avançava.
No entanto, o artigo é cuidadoso ao notar o que este sistema não pode fazer. Ele não consegue testar coisas como cortes de cabos de internet ou falhas em serviços que a Uber não controla (como um provedor de mapas de terceiros). Também depende de a empresa ter seus serviços devidamente rotulados e rastreados, o que exige muito trabalho para configurar primeiro. Mas para os problemas que ele resolve, o artigo sugere que este é um salto gigantesco à frente. Ele transforma o teste de caos móvel de um evento manual, raro e caro, em uma verificação de segurança rotineira e automatizada que acontece todas as noites, garantindo que, quando você tocar em "Pedir" no seu telefone, o aplicativo esteja pronto para qualquer coisa que a internet possa lançar contra ele.
Afogado em artigos na sua área?
Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.