Por Manoj Chaudhary, CTO e SVP de Engenharia
Para verificar a funcionalidade, a confiabilidade e a segurança de suas interfaces de programação de aplicações (APIs), as equipes de TI realizam uma variedade de testes diferentes, incluindo avaliações funcionais, de governança, de caos, de penetração, de desempenho, de estresse e de longevidade. Abaixo, descrevemos cinco dos desafios de teste de API mais comuns que as equipes enfrentam e oferecemos nossas recomendações para resolvê-los.
1. Passando pela configuração inicial
Criar, desenvolver e colocar a infraestrutura de testes em funcionamento pode ser uma tarefa demorada e pode ser difícil motivar sua equipe durante todo o processo.
Nossa recomendação
Explicar como o processo de testes compensa a longo prazo pode ser fundamental para motivar uma equipe de testes. Também é importante observar o quão crucial essa fase é nos testes de API em geral. Ao fazer a configuração inicial, pense cuidadosamente em como você testará a API e o que esses testes exigem no design da sua infraestrutura.
2. Geração e gerenciamento de 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 podem 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 permitam entender essas conexões e, em seguida, mascarar, gerar e criar subconjuntos de novos dados que atendam às suas necessidades de teste.
3. Compreender claramente os objetivos para o teste de governança
Fundamental para APIs desenvolvidas para aplicativos em nuvem multilocatários, os testes de governança são realizados para ajudar a proteger a infraestrutura contra uso excessivo, vizinhos problemáticos e ataques. As APIs geralmente possuem regras de governança para seu usage (por exemplo, políticas de armazenamento, limites de taxa e tamanho da carga útil), mas a falta de conhecimento e compreensão tanto da lógica da arquitetura da API quanto dessas regras frequentemente resulta em incerteza quanto aos objetivos dos testes.
Nossa recomendação
As equipes podem mitigar esse desafio de teste de API criando regras de governança bem definidas e bem escritas; construa utilitários para sua equipe ajustá-las conforme necessário para tornar os testes mais fáceis e eficientes.
4. Realizando testes de caos de forma eficaz
Em 2010, as equipes de desenvolvimento e operações da Netflix criaram esta forma de teste ao começarem a migrar a infraestrutura tradicional para a infraestrutura de nuvem da Amazon Web Services (AWS). O teste de caos, ou engenharia de caos, é uma abordagem altamente disciplinada que testa a integridade do sistema, simulando e identificando proativamente falhas antes que elas levem a uma interrupção não planejada ou a uma experiência ruim para o usuário.
O processo envolve:
- Testando 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 funcionamento. Criar a infraestrutura e as ferramentas para definir e medir um estado estacionário pode ser complexo, dependendo da arquitetura e do escopo das aplicações envolvidas.
- Testes para determinar se o estado estacionário de um sistema se manterá. Após o estabelecimento de um estado estacionário, os testadores determinam se ele continuará em condições de controle, experimentais e do mundo real.
- Testando para impacto mínimo nos usuários. Os testadores quebram ou interrompem o serviço para determinar o impacto negativo sobre os usuários.
- Introduzindo o caos. Após estabelecer que um sistema está funcionando em um estado estacionário definido, que esse 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 específicas de estresse ou circunstâncias (por exemplo, falhas de servidor, hardware com mau funcionamento ou conexões de rede interrompidas).
Nossa recomendação
Construa ganchos em sua aplicação e infraestrutura que permitam à sua equipe de testes criar caos e obter facilmente métricas relevantes sobre o raio de explosão.
5. Contratar a equipe certa para testes de penetração
Em testes de invasão, um testador com conhecimento prático limitado da API específica irá atacá-la para avaliar o vetor de ameaça a partir 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 testes de penetração iniciais, mas um testador de penetração terceirizado deve realizar o teste de penetração profundo de acompanhamento.
Supere os desafios dos testes de API com o Jitterbit API Manager
Como parte da plataforma unificada Harmony, Jitterbit API Manager simplifica os testes de API ao oferecer visibilidade de todo o ciclo de vida — desde o projeto até o monitoramento de desempenho — e ao possibilitar a colaboração por meio de uma plataforma centralizada management console.
No Jitterbit API Manager, a documentação da API gerada a partir das definições do OpenAPI é automaticamente convertida em documentação interativa do Swagger UI, permitindo que as equipes testem os endpoints em tempo real. Saiba mais sobre o API Manager ou conectar com um especialista em produtos para solicite uma demonstração gratuita.