Estratégias de testes em APIs REST
Compreendendo principais estratégias de teste para as APIs REST
Esse artigo, com esses pontos, foi inteiramente baseado no original em inglês, escrito pelo time da Sisense. Os créditos são deles. Isso é apenas uma tradução livre, mesclada com um resumo.
Primeira preocupação: testes funcionais
- Temos que garantir que não tenhamos bugs
- Certificar que a funcionalidade esteja de acordo com a especificação
- Evitar que merges e novas releases quebrem o que nós já temos
O que verificar no teste funcional?
- Se o contrato está ok: os endpoints estão corretos? Recursos refletem o que o objeto traz? Existem erros de funcionalidade? Relações entre os recursos estão ok? Os verbos fazem sentido?
- As ações/verbos no teste: validar o status code, os JSON fields (no request e no response), cabeçalhos, verificar como fica o app (se aplicável), como fica o desempenho (em tempo).
- Categorias de cenários de teste: testes positivos básicos (caminho feliz), testes positivos com parâmetros opcionais, testes negativos com entradas válidas, testes negativos com entradas inválidas, testes destrutivos e testes de segurança.
- Fluxos de teste:
- Testar solicitações isoladamente.
- Testar fluxo com várias etapas e solicitações.
- Testes combinados de API e interface de usuário.
O que garantir nos testes não-funcionais
Segurança e autenticação
Verificar se alguns princípios são respeitados:
- Deny-by-default: acesso negado a menos que especificamente autorizado.
- Fail securely: a menos que receba acesso explícito, o acesso deve ser negado.
- Least privilege principle (princípio de privilégio mínimo): o usuário deve receber apenas os privilégios necessários para sua tarefa.
- Rejeição de todas as entradas ilegais: garantindo tanto testes positivos quanto negativos de autorização.
Performance e Carga
- Performance: validar tempo de resposta, latência e TTFB/TTLB.
- Testes de carga: verificar se o sistema funciona sob carga em cenários positivos.
- Testes de stress: verificar se o sistema falha normalmente sob stress em cenários negativos.
Usabilidade
- Para APIs públicas, garantir a usabilidade para usuários sem conhecimento prévio do sistema e verificar se a documentação está correta.
Postagem migrada do Medium.
- Por Mai R. em February 13, 2023.
- Link original
