Sobes.tech
Middle

¿Puedes dar un ejemplo de cómo seleccionarías casos de prueba para una solicitud PUT?

sobes.tech AI

Respuesta de la IA

Elegiría casos de prueba basándome en lo siguiente:

  • Actualización exitosa:

    • Actualizar todos los campos con valores válidos.
    • Actualizar uno o varios campos dejando los demás sin cambios.
    • Actualizar campos con valores límite (si aplica).
  • Actualización fallida (pruebas negativas):

    • Datos no válidos:
      • Formato de datos incorrecto para los campos (por ejemplo, cadena en lugar de número).
      • Valores que exceden la longitud máxima o fuera del rango permitido.
      • Campos obligatorios ausentes en el cuerpo de la solicitud.
    • Recurso inexistente:
      • Solicitud PUT con un ID que no existe en el sistema.
    • Conflicto de datos:
      • Intento de actualizar un recurso que ha sido modificado por otro usuario (si se usa un mecanismo de control de versiones o bloqueos).
    • Falta de permisos:
      • Intento de actualizar un recurso sin los permisos adecuados.
    • Errores de validación:
      • Violación de la lógica de negocio o restricciones de la base de datos (por ejemplo, duplicación de valores únicos).
    • Tipo de contenido incorrecto:
      • Envío de la solicitud con un Content-Type diferente al esperado (por ejemplo, text/plain en lugar de application/json).
    • Cuerpo de la solicitud vacío:
      • Envío de la solicitud sin cuerpo.
  • Condiciones límite:

    • Actualización de un recurso con el mínimo conjunto de campos (si es permitido).
    • Actualización de un recurso con el máximo conjunto de campos.
    • Comprobación del comportamiento al enviar en el cuerpo campos adicionales no esperados.

Ejemplo de estructura de casos de prueba:

Caso Descripción Resultado esperado
Actualización exitosa Actualizar todos los campos con valores correctos. 200 OK / 204 No Content (depende de la API)
ID inexistente Intento de actualizar un recurso con un ID que no existe. 404 Not Found
Formato de datos no válido Intento de actualizar un campo numérico con una cadena. 400 Bad Request
Falta campo obligatorio Falta en el cuerpo de la solicitud un campo marcado como obligatorio. 400 Bad Request
Falta de permisos Intento de actualizar un recurso por un usuario sin permisos necesarios. 403 Forbidden

Para automatización, usaría frameworks como RestAssured (Java), Requests (Python) o Supertest (Node.js) y herramientas para generar datos de prueba.