Middle
¿Qué casos de prueba se pueden desarrollar para probar bases de datos?
sobes.tech AI
Respuesta de la IA
Pruebas de la estructura de la base de datos, incluyendo esquemas, tablas, índices, restricciones (PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, NOT NULL).
Pruebas de datos:
- Verificación de la corrección de los datos después de operaciones: INSERT, UPDATE, DELETE.
- Verificación de la conformidad de los datos con la lógica de negocio.
- Pruebas de integridad de datos en operaciones concurrentes.
- Pruebas de importación/exportación de datos.
- Pruebas de migración de datos.
Pruebas de procedimientos almacenados, funciones y triggers:
- Pruebas de parámetros de entrada y resultados de salida.
- Pruebas de manejo de errores y excepciones.
- Pruebas del impacto en los datos de las tablas.
- Pruebas de rendimiento.
Pruebas de rendimiento y carga:
- Pruebas de tiempo de ejecución de consultas (SELECT).
- Pruebas de velocidad de operaciones de modificación de datos (INSERT, UPDATE, DELETE).
- Pruebas del comportamiento de la base de datos bajo alta carga.
- Pruebas de escalabilidad.
Pruebas de seguridad:
- Pruebas de permisos de acceso de usuarios.
- Pruebas de vulnerabilidades de inyección SQL.
- Pruebas de auditoría y registro.
Pruebas de regresión tras cambios en el esquema de la base de datos o en el código.
Pruebas de respaldo y recuperación de datos.
Ejemplos de casos para verificar restricciones:
| ID | Nombre del caso | Pasos | Resultado esperado |
|---|---|---|---|
| 1 | Verificación de PRIMARY KEY - duplicación de valor | Intentar insertar un nuevo registro con un ID que ya existe en la tabla. | El sistema debe emitir un error por violación de unicidad de PRIMARY KEY. |
| 2 | Verificación de FOREIGN KEY - referencia a registro inexistente | Intentar insertar un registro en una tabla dependiente que hace referencia a un ID que no existe en la tabla principal. | El sistema debe emitir un error por violación de integridad de clave externa. |
| 3 | Verificación de NOT NULL - inserción de NULL | Intentar insertar un registro en la tabla dejando NULL en un campo marcado como NOT NULL. | El sistema debe emitir un error por violación de restricción NOT NULL. |
| 4 | Verificación de CHECK - valor incorrecto | Intentar insertar/actualizar un registro con un valor en un campo que no cumple con la restricción CHECK (por ejemplo, valor negativo en edad). | El sistema debe emitir un error por violación de la restricción CHECK. |
Ejemplo de consulta SQL para probar vulnerabilidades:
-- Verificación de posibilidad de inyección SQL en campo de login
SELECT * FROM users WHERE username = 'admin' AND password = '' OR '1'='1';
Ejemplo de consulta para probar rendimiento:
-- Medición del tiempo de ejecución de una consulta SELECT compleja
EXPLAIN ANALYZE SELECT o.order_id, c.customer_name, p.product_name
FROM orders o
JOIN customers c ON o.customer_id = c.customer_id
JOIN order_items oi ON o.order_id = oi.order_id
JOIN products p ON oi.product_id = p.product_id
WHERE c.country = 'USA' AND o.order_date > '2023-01-01';