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/plainen lugar deapplication/json).
- Envío de la solicitud con un Content-Type diferente al esperado (por ejemplo,
- Cuerpo de la solicitud vacío:
- Envío de la solicitud sin cuerpo.
- Datos no válidos:
-
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.