De acordo com um inquérito da SlashData realizado em 2020, quase 90% dos programadores entrevistados utilizavam APIs em alguma medida. Tendo isto em mente, não é de admirar que, mesmo que seja um testador manual ou de automação à procura de uma mudança de emprego, a entrevista de recrutamento inclua perguntas relacionadas com APIs.
Neste artigo, apresentarei algumas das perguntas mais comuns e importantes em entrevistas sobre testes de API e fornecerei a resposta ideal para cada uma delas. Vamos começar!
1. O que são os testes de API?
Os testes de API são um tipo de teste de software que envolve a avaliação de APIs (Interface de Programação de Aplicações) para verificar se cumprem os requisitos de funcionalidade, fiabilidade, desempenho e segurança. Como as APIs não têm uma GUI, os testes de API são realizados na camada de mensagens do sistema.
2. Quais são as vantagens de realizar testes de API?
Os testes de API têm várias vantagens. Entre as mais importantes, pode mencionar:
- Testar sem GUI: Os testadores podem realizar testes de API sem terem de utilizar diretamente o software. Esta é uma grande vantagem, pois permite aos engenheiros de QA obterem uma visão antecipada das falhas e dos defeitos, possibilitando aos programadores corrigi-los antes de afetarem a GUI.
- Testar a funcionalidade principal: Antes de realizar testes de GUI, testar a funcionalidade do código ao nível do código permite avaliar a qualidade geral da construção. Isto ajuda a revelar pequenos erros que podem transformar-se em problemas mais significativos ao nível da GUI. O acesso ao núcleo permite realizar testes em simultâneo com o desenvolvimento, promovendo a comunicação e um melhor trabalho de equipa.
- Eficiência de tempo: Os testes de API demoram normalmente menos tempo do que os testes funcionais de GUI. Os testes de GUI demoram mais tempo porque é necessário consultar os componentes Web. A automatização de testes de API envolve, em particular, menos código e oferece uma cobertura de testes melhor e mais rápida quando comparada com os testes automatizados de GUI.
- Independente da linguagem: Um teste de API utiliza XML ou JSON para trocar dados. Estes modos de transferência não dependem da linguagem; por isso, pode utilizar qualquer linguagem de programação ao escrever testes automatizados para a sua API.
3. Em que diferem os testes de API dos testes de UI?
Os testes de API centram-se muito mais nos testes da lógica de negócio, nas respostas de dados e na segurança, bem como nos estrangulamentos de desempenho. Em contrapartida, os testes de UI centram-se na verificação do aspeto e da experiência de uma interface Web ou no funcionamento de determinados botões, formulários, menus pendentes, etc.
Have an account? Log In
4. Quais são os componentes de um pedido HTTP?
Um pedido HTTP tem cinco elementos:
- Um método HTTP (abordado abaixo) que define a ação.
- Um URI (Identificador Uniforme de Recursos) é o identificador do recurso no servidor.
- Uma versão HTTP, por exemplo, HTTP v1.1.
- O cabeçalho do pedido transporta metadados (sob a forma de pares chave-valor) relativos à mensagem do pedido HTTP. O tipo de cliente (ou navegador), os formatos suportados pelo cliente, os formatos do corpo da mensagem, as definições de cache e outras informações são exemplos de metadados.
- O corpo do pedido representa os dados enviados pelo cliente para a API.
5. Quais são os métodos HTTP mais utilizados nas APIs REST?
Os métodos HTTP mais importantes utilizados na realização de testes de API REST são os métodos que executam operações CRUD:
- GET é o método HTTP que lê as informações do recurso.
- O método POST é utilizado para criar ou atualizar recursos.
- PUT modifica um recurso existente.
- DELETE remove um recurso especificado.
6. Qual é a diferença entre os métodos PUT e POST?
Esta é uma pergunta de entrevista que me fizeram frequentemente, e a resposta foi parcialmente dada acima.
Quando precisa de alterar um único recurso que é um componente de uma coleção de recursos, utiliza o método PUT. Quando precisa de adicionar um recurso subordinado a uma coleção de recursos, deve utilizar o método POST. Se a chamada HTTP PUT for enviada mais do que uma vez, os resultados permanecerão iguais. Se um pedido POST for enviado várias vezes, os resultados serão diferentes, ou seja, poderão ser criados vários recursos ou será devolvido um erro.
Por exemplo, se tiver um recurso para criar e atualizar utilizadores, enviar o mesmo método PUT para um utilizador irá atualizá-lo sempre. Enviar o mesmo método POST para um utilizador resultará na criação de vários utilizadores ou num erro a indicar que o nome de utilizador ou o endereço de e-mail já está a ser utilizado.
7. O que são as classes dos códigos de estado da resposta HTTP?
Esta é outra pergunta comum em entrevistas e é importante saber a resposta ao realizar testes de API. As classes de códigos de resposta HTTP são:
- 1xx: as respostas desta categoria são respostas informativas. Significam que o cliente deve continuar o pedido ou ignorar a resposta se este estiver concluído.
- 2xx: um código 200 significa sucesso.
- 3xx: estas respostas são respostas de redirecionamento. Isto significa que existem várias respostas possíveis para o pedido. Uma delas deve ser selecionada pelo agente ou pelo utilizador.
- 4xx: os códigos deste grupo indicam um erro do cliente. Isto significa que o servidor não consegue processar o pedido e interpreta-o como um erro do lado do cliente, como um URL não reconhecido, uma sintaxe de pedido incorreta, entre outros.
- 5xx: o código de resposta HTTP 500 é devolvido quando ocorre um erro do lado do servidor e este não consegue executar o pedido.
Se quiser consultar os detalhes dos estados de resposta, pode encontrar a lista completa na Internet.
8. Quais são algumas ferramentas comuns de automatização de testes de API?
Para esta pergunta, responderia com algumas ferramentas com as quais já trabalhei ou que conheço pelo menos razoavelmente. Por isso, se tiver experiência com alguma ferramenta de testes de API, mencione-a. Caso contrário, pode responder com algumas das mais populares, como Katalon, Postman ou SoapUI. Consulte o nosso artigo sobre as melhores ferramentas de testes de API para obter alguma inspiração.
9. Quais são alguns métodos de autenticação normalmente utilizados nos testes de API?
Uma resposta adequada a esta pergunta seria:
- Autenticação baseada em sessão/cookies
- Autenticação básica
- Autenticação por resumo
- OAuth
10. Qual é a diferença entre autenticação e autorização?
Em resumo, a autenticação é o processo de verificar a identidade de um utilizador, enquanto a autorização é o processo de confirmar o respetivo nível de acesso.
More Articles
11. Porque é que os testes de API são preferidos aos testes de UI para testes automatizados?
Voltando à pirâmide clássica da automatização de testes, é sabido na nossa indústria que os testes de UI de ponta a ponta devem estar no topo, o que significa que devem representar o menor número de testes. Isto deve-se ao facto de os testes automatizados de UI tenderem a demorar mais tempo e serem mais propensos a instabilidade, por terem muitas dependências. Os testes automatizados de API representam a parte dos testes de integração da pirâmide e são muito mais rápidos e, normalmente, mais fiáveis.
12. Qual é a diferença entre testes de API e testes unitários?
Os testes unitários inserem-se nos testes de caixa branca, enquanto os testes de API são normalmente testes de caixa preta. Uma vez que um utilizador final interage com a interface de utilizador, os testes de API têm de representar o sistema como um todo. Nos testes unitários, uma consideração fundamental é verificar se cada componente ou módulo funciona de forma impecável. Ou seja, para alcançar uma arquitetura de módulos sólida, as dependências devem ser minimizadas.
13. Que tipos de testes podem ser aplicados às API?
A maioria dos tipos de testes aplicados aos testes de UI também funciona com API. Alguns dos tipos de testes mais relevantes que pode mencionar nesta pergunta de entrevista sobre API são:
- Testes funcionais: na maior parte das vezes, quererá testar se as APIs fazem aquilo para que foram concebidas. Isto significa que executará casos de teste funcionais nas APIs.
- Testes manuais: o facto de não ser um profissional de testes de automação não significa que não possa testar APIs. Pode utilizar ferramentas como o Postman para enviar pedidos e testar manualmente as respostas.
- Testes automatizados: é boa ideia automatizar os casos de teste das APIs. Muitas das ferramentas acima podem ajudá-lo nesse processo, ou pode criar a sua própria estrutura de APIs.
- Testes de carga: ao simular tráfego para as APIs, os profissionais de testes podem identificar estrangulamentos antes de estes chegarem ao ambiente de produção. Na ausência de uma carga de produção, poderá ser difícil identificar estes estrangulamentos nos ambientes de desenvolvimento. Existem ferramentas de testes de carga que permitem enviar chamadas HTTP para um determinado ponto de acesso e medir o tempo de resposta, os erros e as taxas de erro, bem como outros dados valiosos das respostas. Também podem ajudar a simular grandes volumes de dados para avaliar o comportamento de uma aplicação.
- Testes de segurança: com testes de segurança, a implementação da API fica protegida contra ameaças externas. As fases dos testes de segurança incluem a verificação das técnicas de encriptação e da arquitetura do controlo de acesso à API. A gestão do acesso dos utilizadores e a verificação da autorização também estão incluídas.
- Testes de intrusão: neste tipo de testes, utilizadores que não estão familiarizados com a API tentarão avaliar à distância o vetor de ameaça, concentrando-se nas funcionalidades, nos recursos, nos fluxos de trabalho ou na API completa e nos seus componentes.
Quer seja um profissional de testes manuais ou trabalhe com automação de testes, é essencial saber trabalhar com APIs. Se está a preparar-se para perguntas de entrevistas sobre testes de APIs, espero que considere este artigo útil.
Não se esqueça de subscrever a newsletter do The CTO Club para receber mais dicas e tutoriais sobre testes!







