Middle
Podes dar um exemplo de como escolherias os casos de teste para uma requisição PUT?
sobes.tech IA
Resposta da IA
Eu escolheria casos de teste com base no seguinte:
-
Atualização bem-sucedida:
- Atualizar todos os campos com valores válidos.
- Atualizar um ou vários campos deixando os outros inalterados.
- Atualizar campos com valores limite (se aplicável).
-
Atualização mal-sucedida (testes negativos):
- Dados inválidos:
- Formato de dados incorreto para os campos (por exemplo, string em vez de número).
- Valores que excedem o comprimento máximo ou estão fora do intervalo permitido.
- Campos obrigatórios ausentes no corpo da requisição.
- Recurso inexistente:
- Requisição PUT com um ID que não existe no sistema.
- Conflito de dados:
- Tentativa de atualizar um recurso que foi modificado por outro utilizador (se for utilizado um mecanismo de controlo de versões ou bloqueios).
- Falta de permissões:
- Tentativa de atualizar um recurso sem as permissões adequadas.
- Erros de validação:
- Violação da lógica de negócio ou restrições da base de dados (por exemplo, duplicação de valor único).
- Tipo de Content-Type incorreto:
- Envio de requisição com um Content-Type diferente do esperado (por exemplo,
text/plainem vez deapplication/json).
- Envio de requisição com um Content-Type diferente do esperado (por exemplo,
- Corpo da requisição vazio:
- Envio de requisição sem corpo.
- Dados inválidos:
-
Condições limite:
- Atualizar recurso com o conjunto mínimo de campos (se permitido).
- Atualizar recurso com o conjunto máximo de campos.
- Verificar o comportamento ao enviar no corpo campos adicionais não esperados.
Exemplo de estrutura de casos de teste:
| Caso | Descrição | Resultado esperado |
|---|---|---|
| Atualização bem-sucedida | Atualizar todos os campos com valores corretos. | 200 OK / 204 No Content (depende da API) |
| ID inexistente | Tentativa de atualizar recurso com ID que não existe. | 404 Not Found |
| Formato de dados inválido | Tentativa de atualizar campo numérico com uma string. | 400 Bad Request |
| Falta campo obrigatório | Falta no corpo da requisição um campo marcado como obrigatório. | 400 Bad Request |
| Falta de permissões | Tentativa de atualizar recurso por usuário sem permissões necessárias. | 403 Forbidden |
Para automação, usaria frameworks como RestAssured (Java), Requests (Python) ou Supertest (Node.js) e ferramentas para gerar dados de teste.