O que é teste de caos?

O teste chaos é uma técnica usada para testar a resiliência dos sistemas de software introduzindo falhas ou interrupções inesperadas. O teste do caos também é conhecido como engenharia do caos. O objetivo do teste de caos é identificar pontos fracos e melhorar a resiliência do seu aplicativo.

O teste de caos baseia-se na ideia de que os sistemas falham de maneiras inesperadas. Os métodos de teste tradicionais geralmente ficam aquém na descoberta desses modos de falha inesperados. Ao usar o teste de caos, você simula cenários do mundo real, como falhas de servidor, latência de rede ou esgotamento de recursos. Simular esses comportamentos ajuda a expor problemas ocultos e pontos fracos que podem não ser evidentes em condições normais de teste.

Aqui estão alguns pontos-chave a serem lembrados sobre o teste de caos:

  • Seja proativo. Em vez de aguardar que falhas ocorram, o teste de caos introduz proativamente falhas para ver como o sistema responde. O teste de caos permite identificar e corrigir problemas antes que eles se tornem grandes problemas.
  • Obtenha informações. O objetivo do teste de caos é aprender com falhas. Ao introduzi-los, você pode obter informações valiosas sobre como o sistema se comporta sob estresse e usar essas informações para melhorá-lo.
  • Promover um esforço de equipe. O teste de caos é mais eficaz quando você faz isso de forma colaborativa. Você deseja a contribuição de desenvolvedores, testadores, equipe de operações e outras partes interessadas. Trabalhando em conjunto, você pode identificar as áreas mais importantes para testar e garantir que todos sejam informados.
  • Comece pequeno e cresça. Quando você começa com o teste de caos pela primeira vez, é uma boa ideia começar pequeno e aumentar gradualmente a complexidade de seus testes. Começar pequeno ajuda você a criar confiança e desenvolver uma melhor compreensão de como o sistema se comporta em diferentes condições.

Em resumo, o teste de caos é uma técnica poderosa que pode ajudá-lo a melhorar a resiliência de seus aplicativos. Ao introduzir falhas de forma proativa e aprender com elas, você pode identificar e corrigir problemas antes que eles se tornem grandes problemas.

Teste de caos para as APIs que seu aplicativo consome

O teste de caos geralmente se concentra na infraestrutura: servidores, redes e contêineres. Se o seu aplicativo depende de APIs, algumas das falhas que seus usuários notam vêm dessas APIs: uma 500 de um provedor de pagamento, um 429 do GitHub ou da OpenAI, ou uma resposta que leva 8 segundos em vez de 80 milissegundos. Você pode aplicar as mesmas ideias de teste de caos a essas dependências, no nível das respostas individuais da API:

  • Erros. Retorne 5xx erros aleatoriamente e verifique se seu aplicativo tenta novamente o que é seguro tentar novamente e mostra uma mensagem útil para o restante.
  • Limitação. Retorne 429 com um Retry-After cabeçalho e verifique se seu aplicativo aguarda antes de fazer a solicitação novamente.
  • Latência. Atrase as respostas e verifique seus tempos limite, indicadores de carregamento e o que acontece quando as respostas chegam fora de ordem.
Approach O que você encontra Do que você sente falta
Aguardar a produção Falhas reais Tudo, até que um usuário clique nele
Simular a API em seus testes ou deixar seu agente de codificação escrever a simulação Se as ramificações de erro são executadas Os formatos reais de falha da API, a política de repetição do SDK e como o aplicativo em execução se comporta. Seu aplicativo também precisa de uma opção somente de teste para acessar o mock.
Comprometer a infraestrutura real (por exemplo, eliminar um serviço ou bloquear o tráfego de rede) Como seu sistema lida com interrupções Falhas no nível da API, como um código de erro específico ou um Retry-After cabeçalho
Interceptar o tráfego real do aplicativo e injetar falhas de API Erros, limitação de taxa e latência nas URLs reais, na taxa que você escolher Falhas de infraestrutura. Use ferramentas de caos de infraestrutura para esses casos.

Experimente em seu aplicativo

Dev Proxy introduz falhas de API em seu aplicativo enquanto ele continua chamando as URLs reais. Ele funciona com qualquer tipo de aplicativo, em qualquer pilha de tecnologia, sem alterar seu código. Por exemplo, para fazer com que metade das solicitações a uma API falhem com erros aleatórios, siga Testar meu aplicativo com erros aleatórios e, para torná-las lentas, consulte Simular respostas lentas da API. Para executar os mesmos testes em seu pipeline de CI, consulte Use Dev Proxy in CI/CD.

Próxima etapa