Cords Cords Cords Cords
Integrações API | Gerenciamento de API

Superando desafios comuns em testes de API

desafios de teste de API

Por Manoj Chaudhary, CTO e vice-presidente sênior de engenharia


Para verificar a funcionalidade, confiabilidade e segurança de suas interfaces de programação de aplicativos (APIs), as equipes de TI realizam uma série de testes diferentes, incluindo avaliações funcionais, de governança, caos, penetração, desempenho, estresse e longevidade. Abaixo, descrevemos os desafios comuns que as equipes enfrentam ao realizar esses testes e oferecemos nossas recomendações para resolvê-los.

Desafio: Passar pela configuração inicial

Criar, desenvolver e colocar a infraestrutura de teste em funcionamento pode ser um esforço demorado e pode ser difícil motivar sua equipe durante todo o processo.

nossa recomendação

Explicar como o processo de teste compensa a longo prazo pode ser fundamental para motivar uma equipe de teste. Também é importante observar como essa fase é crítica no teste de API em geral. Ao fazer a configuração inicial, pense cuidadosamente sobre como você testará a API e o que esses testes exigem em seu projeto de infraestrutura.

Desafio: Gerar e gerenciar grandes volumes de dados de teste

APIs com muitos parâmetros exigem uma quantidade significativa de dados (e, em alguns casos, dados com alta cardinalidade) para testes eficazes. Criar, manter e garantir que esses dados sejam reutilizáveis ​​pode representar um desafio para os testadores.

nossa recomendação

A chave para gerar e configurar dados de teste é entender as estruturas de solicitação e resposta e as chamadas de API associadas. Use ferramentas de gerenciamento de dados que permitem que você entenda essas conexões e, em seguida, mascare, gere e subconjunto de novos dados que atendam às suas necessidades de teste.

Desafio: Entender claramente os objetivos para testes de governança

Crítico para APIs criadas para aplicativos de nuvem multilocatário, o teste de governança é realizado para ajudar a proteger a infraestrutura contra uso excessivo, vizinhos barulhentos e ataques. As APIs geralmente têm regras de governança para seu uso (por exemplo, políticas de armazenamento, limites de taxa e tamanho da carga útil), mas a ausência de conhecimento e entendimento relacionados à lógica da arquitetura da API e a essas regras geralmente resulta em incerteza sobre os objetivos do teste.

nossa recomendação

Crie regras de governança bem definidas e escritas; crie utilitários para sua equipe para ajustá-los conforme necessário para tornar o teste mais fácil e eficiente.

Desafio: Realizar testes de caos de forma eficaz

Em 2010, as equipes de desenvolvimento e operações da Netflix criaram essa forma de teste quando começaram a migrar a infraestrutura tradicional para a infraestrutura de nuvem da Amazon Web Services (AWS). Teste de caos, ou engenharia do caos, é uma abordagem altamente disciplinada que testa a integridade do sistema simulando e identificando falhas de forma proativa antes que elas levem a um tempo de inatividade não planejado ou a uma experiência ruim do usuário. O processo envolve:

  • Testar se um sistema funciona em um estado estacionário definido. Primeiro, os testadores devem identificar uma saída mensurável do sistema que indique o comportamento normal de trabalho. A criação da infraestrutura e das ferramentas para definir e medir um estado estacionário pode ser complexa, dependendo da arquitetura e do escopo dos aplicativos envolvidos.
  • Teste para determinar se o estado estacionário de um sistema se manterá. Depois de estabelecer um estado estacionário, os testadores determinam se ele continuará em condições de controle, experimentais e do mundo real.
  • Teste para impacto mínimo sobre os usuários. Os testadores interrompem ou interrompem o serviço para determinar o impacto negativo para os usuários.
  • Apresentando o caos. Depois de estabelecer que um sistema está funcionando em um estado estacionário definido, que o estado estacionário está se mantendo e que o “raio de explosão” está contido, os testadores executam seus aplicativos de teste de caos para ver como o sistema se comporta sob condições ou circunstâncias de estresse específicas (por exemplo, falhas no servidor, hardware com defeito ou conexões de rede cortadas).

nossa recomendação

Crie ganchos em seu aplicativo e infraestrutura que permitem que sua equipe de teste crie o caos e obtenha facilmente métricas relevantes para o raio de explosão.

Desafio: Envolver a equipe certa para testes de penetração

Nos testes de penetração, um testador com conhecimento operacional limitado da API específica irá atacá-la para avaliar o vetor de ameaça de uma perspectiva externa. Os ataques podem ter como alvo toda a API ou determinadas funções e processos.

nossa recomendação

Uma equipe interna pode realizar o teste de penetração inicial, mas um testador de penetração terceirizado deve realizar o teste de penetração profunda de acompanhamento.

Compartilhar

Dúvidas? Estamos aqui para ajudar.

Contacto