Las pruebas de la base de datos incluyen la realización de la validez de los datos, las pruebas de integridad de los datos, la verificación del rendimiento relacionado con la base de datos y la prueba de los procedimientos, los activadores y las funciones de la base de datos.
Hay varias razones por las que se realizan pruebas de bases de datos. Es necesario realizar una verificación de la integridad, la validación y la coherencia de los datos en la base de datos, ya que el sistema backend es responsable de almacenar los datos y se accede a él para múltiples propósitos.
Algunas de las razones comunes por las que se necesita realizar pruebas de base de datos son las siguientes:
Para aliviar la complejidad de las llamadas al backend de la base de datos, los desarrolladores aumentan el uso de View y Stored Procedimientos.
Estas Stored procedimientos y Viewscontienen tareas críticas como insertar detalles del cliente (nombre, información de contacto, etc.) y datos de ventas. Estas tareas deben probarse en varios niveles.
Las pruebas de caja negra realizadas en el front-end son importantes, pero dificultan el aislamiento del problema. Las pruebas en el sistema backend aumentan la solidez de los datos. Es por eso que las pruebas de la base de datos se realizan en el sistema back-end.
En una base de datos, los datos provienen de múltiples aplicaciones y existe la posibilidad de que se almacenen datos dañinos o incorrectos en la base de datos. Por tanto, es necesario comprobar los componentes de la base de datos con regularidad. Además, la integridad y la coherencia de los datos deben comprobarse periódicamente.
Los pasos que debe seguir al realizar la prueba de la base de datos son los siguientes:
- Se deben verificar los datos que están en la base de datos.
- Verifique si se mantienen las restricciones.
- Se debe verificar el desempeño de los procedimientos y ejecución de los disparadores.
- Se debe comprobar la reversión y la confirmación de la transacción.
Sobre la base de la función y la estructura de una base de datos, las pruebas de bases de datos se pueden clasificar en las siguientes categorías:
Structural Database testing - Se ocupa de pruebas de tablas y columnas, pruebas de esquemas, pruebas de procedimientos almacenados y vistas, verificación de activadores, etc.
Functional Testing- Implica comprobar la funcionalidad de la base de datos desde el punto de vista del usuario. El tipo más común de pruebas funcionales son las pruebas de caja blanca y caja negra.
Nonfunctional Testing - Implica pruebas de carga, pruebas de riesgo en la base de datos, pruebas de estrés, requisitos mínimos del sistema y se ocupa del rendimiento de la base de datos.
Las herramientas más comunes que se utilizan para realizar pruebas de procedimientos almacenados son LINQ, SP Test tool, etc.
Las combinaciones se utilizan para conectar dos o más tablas de alguna manera lógica. Los tipos habituales de combinaciones incluyen: combinación interna, combinación sin combinación, combinación externa, combinación automática y combinación cruzada.
Puede unirse a una sola mesa. En este caso, está utilizando la misma tabla dos veces.
Step 1 - Conectarse a la base de datos
db_connect(query1 DRIVER {drivername};SERVER server_name;UID uidname;
PWD password;DBQ database_name );
Step 2 - Ejecutar la consulta de la base de datos -
db_excecute_query (write the required query that is to execute); Specify the appropriate condition
Step 3 - Desconecte la conexión de la base de datos usando
db_disconnect(query);
Con los puntos de control de la base de datos de salida, se deben seleccionar las opciones de consultas manuales de SQL. Aquí, se puede escribir la consulta de selección.
Primero, verifique el requisito del procedimiento almacenado. El siguiente paso es verificar si los índices, combinaciones, eliminaciones y actualizaciones son correctos en comparación con las tablas mencionadas en el procedimiento almacenado.
A continuación, realice las siguientes tareas:
Valide el nombre del procedimiento de llamada, los parámetros de llamada y las respuestas esperadas para diferentes conjuntos de parámetros de entrada.
Ejecute el procedimiento con TOAD o MySQL o Query Analyzer.
Vuelva a ejecutar los procedimientos disponibles enviando diferentes parámetros y compare los resultados con los valores esperados.
Concluyendo el proceso, automatice las pruebas con WinRunner.
El probador debe llamar al procedimiento almacenado en la base de datos usando el comando EXEC. Si se requieren parámetros, deben pasarse. Se deben pasar diferentes valores de parámetros para confirmar si el procedimiento almacenado se ejecuta o no. Al llamar a este comando, debe verificar y verificar la naturaleza y el comportamiento de la base de datos.
Example - Si el procedimiento almacenado está escrito para poblar alguna tabla, se deben verificar los valores de la tabla.
Tenemos tres tipos de declaraciones SQL:
- Lenguaje de manipulación de datos (DML)
- Lenguaje de definición de datos (DDL)
- Lenguaje de control de datos (DCL)
Las declaraciones DDL se utilizan para definir la estructura o esquema de la base de datos. Algunos ejemplos:
CREATE - crear objetos en la base de datos
ALTER - altera la estructura de la base de datos
DROP - eliminar objetos de la base de datos
Los operadores se utilizan para especificar condiciones en una declaración SQL y para servir como conjunciones para múltiples condiciones en una declaración.
- Operadores aritméticos
- Operadores de comparación / relacionales
- Operadores logicos
- Establecer operadores
- Operadores utilizados para negar condiciones
Union se utiliza para combinar los resultados de dos o más sentencias Select. Sin embargo, eliminará las filas duplicadas. Union es un operador fijo.
Unionse utiliza para combinar los resultados de dos o más sentencias Select. Sin embargo, eliminará filas duplicadas.
Union All La operación es similar a Union, pero también muestra las filas duplicadas.
Los activadores se utilizan para mantener la integridad de la base de datos. Para verificar que el disparador esté activado o no, puede verificar los registros de auditoría.
Los activadores no se pueden invocar a pedido. Se invocan cuando ocurre una acción asociada (insertar, eliminar y actualizar) en la tabla en la que están definidos. Los disparadores se utilizan para aplicar reglas comerciales, auditorías y también para las verificaciones de integridad referencial.
Primero, obtenga el requisito funcional. Luego, comprenda la estructura de la tabla, las combinaciones, los cursores y activadores, el procedimiento almacenado utilizado y otros parámetros. A continuación, puede escribir un caso de prueba con diferentes valores como entrada para estos objetos.
La prueba de base de datos implica la prueba de componentes de back-end que no son visibles para los usuarios. Incluye componentes de bases de datos y sistemas DBMS como MySQL y Oracle.
Las pruebas de front-end implican verificar las funcionalidades de una aplicación y sus componentes como formularios, gráficos, menús, informes, etc. Estos componentes se crean utilizando herramientas de desarrollo de front-end como VB.net, C #, Delphi, etc.
El proceso para realizar pruebas de bases de datos es similar a las pruebas de otras aplicaciones. Las pruebas de bases de datos se pueden describir con los siguientes procesos clave:
- Configurando el medio ambiente
- Ejecutar una prueba
- Verifique el resultado de la prueba
- Validando según los resultados esperados
- Informar los hallazgos a las respectivas partes interesadas
Se utilizan varias sentencias SQL para desarrollar los casos de prueba. La declaración SQL más común que se utiliza para realizar pruebas de base de datos es la declaración de selección. Aparte de esto, también se pueden utilizar varias declaraciones DDL, DML, DCL.
Example - Crear, Insertar, Seleccionar, Actualizar, etc.
Una vista es una tabla que realmente no existe por derecho propio, sino que se deriva de una o más tablas base. En otras palabras, no hay ningún archivo almacenado que represente directamente la vista, sino que se almacena una definición de vista en el diccionario de datos.
El crecimiento y la reestructuración de las tablas base no se reflejan en las vistas. Por tanto, la vista puede aislar a los usuarios de los cambios en la base de datos. Por lo tanto, explica la independencia lógica de los datos.
Especifica las vistas del usuario y sus asignaciones al esquema conceptual.
Es un proceso de descomposición de una tabla en varias tablas sin perder información. La normalización se realiza para lograr los siguientes objetivos:
- Para minimizar la redundancia.
- Minimizar las anomalías de inserción, eliminación y actualización.
La indexación es una técnica para determinar la rapidez con la que se pueden encontrar datos específicos. Se utiliza para optimizar el rendimiento de las consultas. La indexación puede ser de los siguientes tipos:
- Indexación de estilo de búsqueda binaria
- Indexación de B-Tree
- Indexación de lista invertida
- Tabla residente en memoria
- Indexación de tablas
SQL es un lenguaje de consulta estructurado diseñado específicamente para operaciones de acceso a datos en estructuras de bases de datos relacionales normalizadas.
La principal diferencia entre SQL y otros lenguajes de programación convencionales es que las sentencias SQL especifican qué operaciones de datos deben realizarse en lugar de cómo realizarlas.
Los procedimientos almacenados se utilizan para realizar una operación definida por el usuario. Un procedimiento almacenado puede tener un conjunto de sentencias de SQL compuesto. Un procedimiento almacenado ejecuta los comandos SQL y devuelve el resultado al cliente.
PL / SQL utiliza cursores para todas las declaraciones de acceso a la información de la base de datos. El lenguaje admite el uso de dos tipos de cursores: implícitos y explícitos.
Cold Backup- Cold Back se conoce como realizar copias de seguridad de archivos de base de datos, rehacer registros y controlar archivos cuando se cierra la instancia. Se trata de una copia de archivo, normalmente desde el disco directamente a la cinta. Debe cerrar la instancia para garantizar una copia coherente.
Si se realiza una copia de seguridad en frío, la única opción disponible en caso de pérdida de archivos de datos es restaurar todos los archivos desde la última copia de seguridad. Se pierden todos los cambios que se realizan después de la última copia de seguridad.
Hot Backup- Algunas bases de datos no se pueden cerrar mientras se realiza una copia de seguridad de los archivos, por lo que la copia de seguridad en frío no es una opción disponible. Para estos tipos de bases de datos utilizamos copias de seguridad en caliente.
La subconsulta SQL es un medio de consultar dos o más tablas al mismo tiempo. La subconsulta en sí es una instrucción SQL SELECT contenida dentro de la cláusula WHERE de otra instrucción SQL SELECT, y separada entre paréntesis. Algunas subconsultas tienen estructuras de combinación SQL equivalentes, pero las subconsultas correlacionadas no se pueden duplicar mediante una combinación
En tal caso, debe probar los siguientes aspectos:
- Dependencias multivalor
- Dependencias funcionales
- Claves candidatas
- Claves primarias
- Llaves extranjeras
Puede ir a la base de datos y ejecutar una consulta SQL relevante. En WinRunner, puede utilizar la función de punto de control de la base de datos. Si la aplicación proporciona la función de visualización, puede verificar la misma desde el front-end.
Las pruebas basadas en datos se definen como un proceso de prueba de automatización en el que la aplicación se probará con múltiples datos de prueba. Es simple y fácil que volver a probar, donde el probador simplemente se sienta frente al sistema e ingresa diferentes valores de entrada nuevos manualmente desde la interfaz de usuario.
Una vez que ejecute los casos de prueba y encuentre los defectos que ya se han detectado y solucionado. La repetición de la misma prueba con diferentes valores de entrada para confirmar que el defecto original se ha eliminado correctamente se denomina Reprueba.
La repetición de pruebas también se denomina prueba basada en datos con una pequeña diferencia:
Retesting - Es un proceso de prueba manual, mientras que la prueba de la aplicación se realiza con un conjunto de datos completamente nuevo.
Data-driven Testing- Es un proceso de prueba de automatización donde la aplicación se probará con múltiples datos de prueba. Es simple y fácil que volver a probar, donde el probador simplemente se sienta frente al sistema e ingresa diferentes valores de entrada nuevos manualmente desde la interfaz de usuario.
Hay cuatro tipos de pruebas basadas en datos:
- Envío dinámico de datos de prueba a través del teclado
- Pruebas basadas en datos a través de archivos planos .txt, .doc
- Pruebas basadas en datos a través de objetos de front-end
- Pruebas basadas en datos a través de una hoja de Excel
La prueba de rendimiento es una técnica de prueba de software para determinar cómo funciona un sistema en términos de velocidad, sensibilidad y estabilidad bajo una gran carga de trabajo.
Se deben considerar los siguientes puntos clave al realizar las pruebas de recuperación de la base de datos:
Periodo de tiempo en el que ocurren cambios o modificaciones en el sistema de la base de datos.
El período durante el cual desea que se lleve a cabo su plan de recuperación.
La sensibilidad de los datos en el sistema de base de datos. Cuanto más críticos sean los datos, más regularmente necesitará probar el software.
Las siguientes herramientas se utilizan para generar datos de prueba:
- Fábrica de datos
- Generador de datos DTM
- Datos turbo
Hay dos tipos de copias de seguridad que se pueden utilizar:
Physical Backups- Copia de seguridad física incluye la toma de una copia de seguridad utilizando 3 rd herramientas de backup partido como Veritas volver red, IBM Tivoli Manager o Administrador de usuarios que utilizan las copias de seguridad utilidades del sistema operativo.
Logical Backups - La copia de seguridad lógica de la base de datos incluye la copia de seguridad de objetos lógicos como tablas, índices, procedimientos, etc.
Una herramienta común para realizar copias de seguridad de datos es Oracle Recovery Manager (RMAN), que es una utilidad de Oracle para realizar copias de seguridad de bases de datos.
Las siguientes acciones se realizan en las pruebas de recuperación de la base de datos:
- Prueba del sistema de base de datos
- Prueba de los archivos SQL
- Prueba de archivos parciales
- Prueba de respaldo de datos
- Prueba de la herramienta de copia de seguridad
- Prueba de copias de seguridad de registros
Las pruebas de seguridad de la base de datos se realizan para encontrar las lagunas en los mecanismos de seguridad y también para encontrar las vulnerabilidades o debilidades del sistema de la base de datos.
Las pruebas de seguridad de la base de datos se realizan para verificar los siguientes aspectos:
- Authentication
- Authorization
- Confidentiality
- Availability
- Integrity
- Resilience
La amenaza de inyección de SQL es el tipo más común de ataque en un sistema de base de datos donde se insertan sentencias SQL maliciosas en el sistema de base de datos y se ejecutan para obtener información crítica del sistema de base de datos. Este ataque aprovecha las lagunas en la implementación de aplicaciones de usuario. Para evitar esto, los campos de entrada del usuario deben manejarse con cuidado.
Las siguientes herramientas se pueden utilizar para realizar pruebas de seguridad de la base de datos: Zed Attack Proxy, Paros, Social Engineer Toolkit, Skipfish, Vega, Wapiti y Web Scarab.
Los desafíos comunes que uno enfrenta al realizar pruebas de base de datos son los siguientes:
- El alcance de la prueba es demasiado grande
- Base de datos de prueba reducida
- Cambios en la estructura de la base de datos
- Planes de prueba complejos
- Buen conocimiento de SQL