Sobes.tech
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/plain em vez de application/json).
    • Corpo da requisição vazio:
      • Envio de requisição sem corpo.
  • 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.