Tutorial de pruebas de bases de datos

ยฟQuรฉ es la prueba de base de datos?

Prueba de base de datos Es un tipo de prueba de software que verifica el esquema, las tablas, los activadores, etc. de la base de datos bajo prueba. Tambiรฉn verifica la integridad y la consistencia de los datos. Puede implicar la creaciรณn de consultas complejas para realizar pruebas de carga/estrรฉs en la base de datos y verificar su capacidad de respuesta.

Prueba de base de datos

ยฟPor quรฉ son importantes las pruebas de bases de datos?

Las pruebas de bases de datos son importantes in pruebas de software porque garantiza que los valores de los datos y la informaciรณn recibida y almacenada en la base de datos sean vรกlidos o no. Las pruebas de bases de datos ayudan a evitar la pรฉrdida de datos, guardan datos de transacciones abortadas y evitan el acceso no autorizado a la informaciรณn. La base de datos es importante para cualquier aplicaciรณn de software, por lo que los evaluadores deben tener buenos conocimientos de SQL para realizar pruebas de bases de datos.

Los miembros del equipo de prueba y desarrollo generalmente le dan mรกs รฉnfasis a la GUI, ya que la interfaz grรกfica de usuario es la parte mรกs visible de la aplicaciรณn. Sin embargo, lo que tambiรฉn es importante es validar la informaciรณn que es el corazรณn de la aplicaciรณn, tambiรฉn conocida como BASE DE DATOS.

Consideremos una aplicaciรณn bancaria en la que un usuario realiza transacciones. Ahora bien, desde el punto de vista de las pruebas de bases de datos, los siguientes puntos son importantes:

  1. La aplicaciรณn almacena la informaciรณn de la transacciรณn en la base de datos de la aplicaciรณn y la muestra correctamente al usuario.
  2. No se pierde informaciรณn en el proceso.
  3. La aplicaciรณn no guarda informaciรณn de operaciones parcialmente realizadas o abortadas.
  4. Ninguna persona no autorizada tiene permitido acceder a la informaciรณn del usuario.

Para garantizar todos estos objetivos anteriores, debemos utilizar la validaciรณn o prueba de datos.

Diferencias entre pruebas de interfaz de usuario y pruebas de datos

Pruebas de interfaz de usuario frente a pruebas de datos

Pruebas de interfaz de usuario Pruebas de bases de datos o datos
Este tipo de prueba tambiรฉn se conoce como prueba de interfaz grรกfica de usuario o prueba de interfaz de usuario. Este tipo de prueba tambiรฉn se conoce como Backend Testing o prueba de datos.
Este tipo de prueba se ocupa principalmente de todos los elementos comprobables que estรกn abiertos al usuario para su visualizaciรณn e interacciรณn, como formularios, presentaciones, grรกficos, menรบs e informes, etc. (creados a travรฉs de VB, VB.net, VC++, Delphi โ€“ Herramientas de interfaz de usuario) Este tipo de prueba se ocupa principalmente de todos los elementos comprobables que generalmente estรกn ocultos al usuario para su visualizaciรณn. Estos incluyen procesos internos y almacenamiento como Assembly, DBMS como Oracle, Servidor SQL, MYSQL, etc.

Este tipo de prueba incluye validar el

  • cuadros de texto
  • seleccionar menรบs desplegables
  • calendarios y botones
  • Navegaciรณn de pรกgina
  • visualizaciรณn de imรกgenes
  • Aspecto y sensaciรณn de la aplicaciรณn general.

Este tipo de pruebas implica validar:

  • el esquema
  • tablas de base de datos
  • columnas
  • claves e รญndices
  • desencadenantes de procedimientos almacenados
  • validaciones del servidor de base de datos
  • validar la duplicaciรณn de datos
El evaluador debe tener un conocimiento profundo de los requisitos comerciales, asรญ como del uso de las herramientas de desarrollo y el uso de marcos y herramientas de automatizaciรณn. Para poder realizar pruebas de backend, el evaluador debe tener una sรณlida experiencia en el servidor de bases de datos y los conceptos del lenguaje de consulta estructurado.

Tipos de pruebas de bases de datos

Tipos de pruebas de bases de datos

Los 3 tipos de pruebas de bases de datos son

  1. Pruebas estructurales
  2. Prueba de funcion
  3. Pruebas no funcionales

En este tutorial de prueba de bases de datos, analizaremos cada tipo y sus subtipos uno por uno.

Pruebas de bases de datos estructurales

Pruebas de bases de datos estructurales es una tรฉcnica de prueba de bases de datos que valida todos los elementos dentro del repositorio de datos que se utilizan principalmente para el almacenamiento de datos y que no pueden ser manipulados directamente por los usuarios finales. La validaciรณn de los servidores de bases de datos tambiรฉn es una consideraciรณn importante en las pruebas estructurales de bases de datos. Para completar con รฉxito esta prueba es necesario dominar las consultas SQL.

ยฟQuรฉ es la prueba de esquemas?

Prueba de esquema en las pruebas de bases de datos valida varios formatos de esquema asociados con la base de datos y verifica si los formatos de mapeo de tablas/vistas/columnas son compatibles con los formatos de mapeo de la interfaz de usuario. El objetivo principal de las pruebas de esquema es garantizar que la asignaciรณn de esquemas entre el front-end y el back-end sea similar. Por lo tanto, tambiรฉn se le conoce como prueba de mapeo.

Analicemos los puntos de control mรกs importantes para las pruebas de esquemas.

  1. Validaciรณn de los distintos formatos de esquemas asociados a las bases de datos. Muchas veces el formato de mapeo de la tabla puede no ser compatible con el formato de mapeo presente en el nivel de interfaz de usuario de la aplicaciรณn.
  2. Es necesaria una verificaciรณn en el caso de tablas/vistas/columnas no asignadas.
  3. Tambiรฉn es necesario verificar si las bases de datos heterogรฉneas en un entorno son consistentes con el mapeo general de la aplicaciรณn.

Veamos tambiรฉn algunas de las interesantes herramientas de prueba de bases de datos para validar esquemas de bases de datos.

  • DBUnit integrado con Ant es muy adecuado para pruebas de mapeo.
  • SQL Server permite a los evaluadores poder verificar y consultar el esquema de la base de datos escribiendo consultas simples y no mediante cรณdigo.

Por ejemplo, si los desarrolladores quieren cambiar la estructura de una tabla o eliminarla, el evaluador querrรก asegurarse de que todos los procedimientos almacenados y las vistas que utilizan esa tabla sean compatibles con el cambio en particular. Otro ejemplo podrรญa ser que si los evaluadores desean verificar cambios de esquema entre dos bases de datos, pueden hacerlo mediante consultas simples.

Tabla de base de datos, prueba de columnas

Analicemos varias comprobaciones para pruebas de bases de datos y columnas.

  1. ยฟSi la asignaciรณn de los campos y columnas de la base de datos en el backend es compatible con esas asignaciones en el front-end?
  2. Validaciรณn de la longitud y convenciรณn de nomenclatura de los campos y columnas de la base de datos segรบn lo especificado por los requisitos.
  3. Validaciรณn de la presencia de tablas/columnas de bases de datos no utilizadas o no asignadas.
  4. Validaciรณn de la compatibilidad del
  • tipo de datos
  • longitudes de campo

de las columnas de la base de datos back-end con las presentes en el front-end de la aplicaciรณn.

  1. Si los campos de la base de datos permiten al usuario proporcionar las entradas deseadas segรบn lo requieren los documentos de especificaciรณn de requisitos comerciales.

Pruebas de claves e รญndices.

Comprobaciones importantes de claves e รญndices โ€“

  1. Compruebe si se requiere
  • Clave primaria
  • Clave externa

Se han creado restricciones en las tablas requeridas.

  1. Compruebe si las referencias de claves forรกneas son vรกlidas.
  2. Compruebe si el tipo de datos de la clave principal y las claves externas correspondientes son los mismos en las dos tablas.
  3. Compruebe si se han seguido las convenciones de nomenclatura requeridas para todas las claves e รญndices.
  4. Verifique el tamaรฑo y la longitud de los campos e รญndices requeridos.
  5. Si el requerido
  • Clusterรญndices ed
  • no Clusterรญndices ed

se han creado en las tablas requeridas segรบn lo especificado por los requisitos comerciales.

Pruebas de procedimientos almacenados

Las pruebas importantes para comprobar los procedimientos almacenados son:

  1. Si el equipo de desarrollo adoptรณ las convenciones estรกndar de codificaciรณn requeridas, A) y B) el manejo de excepciones y errores. Para todos los procedimientos almacenados para todos los mรณdulos de la aplicaciรณn bajo prueba.
  2. ยฟSi el equipo de desarrollo cubriรณ todas las condiciones/bucles aplicando los datos de entrada requeridos a la aplicaciรณn bajo prueba?
  3. ยฟSi el equipo de desarrollo aplicรณ correctamente la operaciรณn TRIM cada vez que se obtienen datos de las tablas requeridas en la base de datos?
  4. ยฟLa ejecuciรณn manual del procedimiento almacenado proporciona al usuario final el resultado requerido?
  5. ยฟLa ejecuciรณn manual del procedimiento almacenado garantiza que los campos de la tabla se actualicen segรบn lo requiere la aplicaciรณn bajo prueba?
  6. ยฟSi la ejecuciรณn de los procedimientos almacenados permite la invocaciรณn implรญcita de los desencadenantes requeridos?
  7. Validaciรณn de la presencia de procedimientos almacenados no utilizados.
  8. Validaciรณn para la condiciรณn Permitir nulo que se puede realizar a nivel de base de datos.
  9. Validaciรณn de que todos los Procedimientos y Funciones Almacenados se han ejecutado exitosamente cuando la Base de Datos bajo prueba estรก en blanco.
  10. Validaciรณn de la integraciรณn general de los mรณdulos de procedimientos almacenados segรบn los requisitos de la aplicaciรณn bajo prueba.

Algunas de las herramientas รบtiles de prueba de bases de datos para probar procedimientos almacenados son LINQ, la herramienta de prueba SP, etc.

Prueba de activaciรณn

  1. ยฟSe han seguido las convenciones de codificaciรณn requeridas durante la fase de codificaciรณn de los Activadores?
  2. Verifique si los activadores ejecutados para las respectivas transacciones DML han cumplido las condiciones requeridas.
  3. ยฟSi el disparador actualiza los datos correctamente una vez que se han ejecutado?
  4. Validaciรณn de la funcionalidad de activaciรณn requerida de Actualizaciรณn/Inserciรณn/Eliminaciรณn en el รกmbito de la aplicaciรณn bajo prueba.

Validaciones del servidor de base de datos

Validaciones del servidor de base de datos

  1. Verifique las configuraciones del servidor de base de datos segรบn lo especificado por los requisitos comerciales.
  2. Verifique la autorizaciรณn del usuario requerido para realizar solo aquellos niveles de acciones que requiere la aplicaciรณn.
  3. Verifique que el servidor de la base de datos pueda satisfacer las necesidades del nรบmero mรกximo permitido de transacciones de usuario segรบn lo especificado en las especificaciones de requisitos comerciales.

Pruebas funcionales de bases de datos

Pruebas funcionales de bases de datos es un tipo de prueba de base de datos que se utiliza para validar los requisitos funcionales de una base de datos desde la perspectiva del usuario final. El objetivo principal de las pruebas funcionales de bases de datos es probar si las transacciones y operaciones realizadas por los usuarios finales relacionadas con la base de datos funcionan como se esperaba o no.

A continuaciรณn se presentan las condiciones bรกsicas que deben observarse para las validaciones de bases de datos.

  • ยฟEl campo es obligatorio y se permiten valores NULL en ese campo?
  • ยฟSi la longitud de cada campo es de tamaรฑo suficiente?
  • ยฟTodos los campos similares tienen los mismos nombres en todas las tablas?
  • ยฟHay algรบn campo calculado presente en la base de datos?

Este proceso particular es la validaciรณn de las asignaciones de campos desde el punto de vista del usuario final. En este escenario particular, el evaluador realizarรญa una operaciรณn a nivel de base de datos y luego navegarรญa hasta el elemento relevante de la interfaz de usuario para observar y validar si se han realizado o no las validaciones de campo adecuadas.

Tambiรฉn se debe cumplir la condiciรณn inversa, en la que el probador realiza la primera operaciรณn en la interfaz de usuario y luego la misma se valida desde el back-end.

Comprobaciรณn de la integridad y coherencia de los datos

Las siguientes comprobaciones son importantes

  1. ยฟEstรกn los datos lรณgicamente bien organizados?
  2. ยฟSi los datos almacenados en las tablas son correctos y cumplen con los requisitos comerciales?
  3. ยฟHay datos innecesarios presentes en la aplicaciรณn bajo prueba?
  4. ยฟSi los datos se han almacenado segรบn el requisito con respecto a los datos que se han actualizado desde la interfaz de usuario?
  5. ยฟSe realizaron las operaciones TRIM en los datos antes de insertarlos en la base de datos bajo prueba?
  6. ยฟSi las transacciones se han realizado de acuerdo con las especificaciones de los requisitos comerciales y si los resultados son correctos o no?
  7. ยฟSi los datos se han confirmado correctamente si la transacciรณn se ha ejecutado con รฉxito?
  8. ยฟSi los datos se han revertido correctamente si el usuario final no ha ejecutado correctamente la transacciรณn?
  9. ยฟSe han revertido los datos si la transacciรณn no se ha ejecutado correctamente y han estado involucradas mรบltiples bases de datos heterogรฉneas en la transacciรณn en cuestiรณn?
  10. ยฟSe han ejecutado todas las transacciones utilizando los procedimientos de diseรฑo requeridos segรบn lo especificado por los requisitos comerciales del sistema?

Inicio de sesiรณn y seguridad del usuario

Las validaciones de las credenciales de inicio de sesiรณn y seguridad del usuario deben tener en cuenta lo siguiente.

  1. Si la aplicaciรณn impide que el usuario continรบe con la aplicaciรณn en caso de un
  • nombre de usuario no vรกlido pero contraseรฑa vรกlida
  • nombre de usuario vรกlido pero contraseรฑa no vรกlida.
  • nombre de usuario no vรกlido y contraseรฑa no vรกlida.
  1. ยฟSe permite al usuario realizar solo aquellas operaciones especรญficas especificadas por los requisitos comerciales?
  2. ยฟSi los datos estรกn protegidos contra el acceso no autorizado?
  3. ยฟHay diferentes roles de usuario creados con diferentes permisos?
  4. ยฟTodos los usuarios tienen los niveles de acceso requeridos en la base de datos especificada segรบn lo exigen las especificaciones comerciales?
  5. Compruebe que los datos confidenciales, como contraseรฑas y nรบmeros de tarjetas de crรฉdito, estรฉn cifrados y no almacenados como texto sin formato en la base de datos. Es una buena prรกctica asegurarse de que todas las cuentas tengan contraseรฑas complejas y difรญciles de adivinar.

Pruebas no funcionales

Pruebas no funcionales en el contexto de las pruebas de bases de datos se pueden clasificar en varias categorรญas segรบn lo requieran los requisitos comerciales. Estas pueden ser pruebas de carga, pruebas de estrรฉs, Pruebas de seguridad, Las pruebas de usabilidad y Pruebas de compatibilidad, etcรฉtera. Las pruebas de carga, asรญ como las pruebas de estrรฉs, que se pueden agrupar en la gama de pruebas de rendimiento, tienen dos propรณsitos especรญficos cuando se trata de la funciรณn de las pruebas no funcionales.

Cuantificaciรณn del riesgoโ€“ La cuantificaciรณn del riesgo ayuda a las partes interesadas a determinar los diversos requisitos de tiempo de respuesta del sistema bajo los niveles de carga requeridos. Esta es la intenciรณn original de cualquier garantรญa de calidad tarea. Debemos tener en cuenta que las pruebas de carga no mitigan el riesgo directamente, sino que, a travรฉs de los procesos de identificaciรณn y cuantificaciรณn del riesgo, presentan oportunidades correctivas y un impulso para la remediaciรณn que mitigarรก el riesgo.

Requisito mรญnimo de equipo del sistemaโ€“ La configuraciรณn mรญnima del sistema que permitirรก que el sistema cumpla con las expectativas de rendimiento formalmente establecidas por las partes interesadas, de modo que se puedan minimizar los costos de propiedad y hardware ajenos. Este requisito en particular se puede categorizar como el requisito general de optimizaciรณn empresarial.

Prueba de carga

El propรณsito de cualquier prueba de carga debe entenderse y documentarse claramente. Los siguientes tipos de configuraciones son imprescindibles para Prueba de carga.

  1. Las transacciones de usuario utilizadas con mรกs frecuencia tienen el potencial de afectar el rendimiento de todas las demรกs transacciones si no son eficientes.
  2. Se debe incluir al menos una transacciรณn de usuario que no requiera ediciรณn en el conjunto de pruebas final, de modo que el rendimiento de dichas transacciones pueda diferenciarse de otras transacciones mรกs complejas.
  3. Deben incluirse las transacciones mรกs importantes que facilitan los objetivos centrales del sistema, ya que la falla bajo una carga de estas transacciones tiene, por definiciรณn, el mayor impacto.
  4. Se debe incluir al menos una transacciรณn editable para que performance de dichas transacciones pueden diferenciarse de otras transacciones.
  5. Tiempo de respuesta รณptimo ante una gran cantidad de usuarios virtuales para todos los requisitos potenciales.
  6. Tiempos efectivos para la recuperaciรณn de varios registros.

Herramientas importantes de prueba de carga son LoadRunner Profesional, gana corredor y JMeter.

ยฟQuรฉ son las pruebas de estrรฉs de bases de datos?

Pruebas de estrรฉs de bases de datos es un mรฉtodo de prueba que se utiliza para probar el sistema de base de datos con una carga pesada, de modo que falle en algรบn momento. Esto ayuda a identificar el punto de falla del sistema de base de datos. Requiere una planificaciรณn y esfuerzos adecuados para evitar el uso excesivo de recursos. Datos pruebas de estrรฉs Tambiรฉn se conoce como prueba tortuosa o prueba de fatiga.

Herramientas importantes para las pruebas de estrรฉs son LoadRunner Profesional y JMeter.

Problemas mรกs comunes que ocurren durante las pruebas de bases de datos

A significant amount of overhead could be involved to determine the state of the database transactions

La Soluciรณn: La planificaciรณn y el cronograma general del proceso deben organizarse de manera que no aparezcan problemas relacionados con el tiempo y los costos.

New test data have to be designed after cleaning up of the old test data.

La Soluciรณn: Se debe disponer de un plan y una metodologรญa previos para la generaciรณn de datos de prueba.

An SQL generator is required to transform SQL validators in order to ensure the SQL queries are apt for handling the required database test cases.

La Soluciรณn: El mantenimiento de las consultas SQL y su actualizaciรณn continua es una parte importante del proceso de prueba general que deberรญa ser parte del proceso general. estrategia de prueba.

The above mentioned prerequisite ensure that the set-up of the database testing procedure could be costly as well as time consuming.

La Soluciรณn: Debe haber un delicado equilibrio entre la calidad y la duraciรณn general del cronograma del proyecto.

Mitos o conceptos errรณneos relacionados con las pruebas de bases de datos

Mitos

Database Testing requires plenty of expertise and it is a very tedious job

Realidad: Las pruebas de bases de datos eficaces y eficientes en las pruebas de software proporcionan estabilidad funcional a largo plazo a la aplicaciรณn general, por lo que es necesario trabajar duro para respaldarla.

Database testing adds extra work bottleneck

Realidad: Por el contrario, las pruebas de bases de datos agregan mรกs valor al trabajo general al descubrir problemas ocultos y, por lo tanto, ayudar de manera proactiva a mejorar la aplicaciรณn general.

Database testing slows down the overall development process

Realidad: Una cantidad significativa de pruebas de bases de datos ayuda a la mejora general de la calidad de la aplicaciรณn de base de datos.

Database testing could be excessively costly

Realidad: Cualquier gasto en pruebas de bases de datos es una inversiรณn a largo plazo que conduce a la estabilidad y solidez de la aplicaciรณn a largo plazo. Por lo tanto, el gasto en pruebas de bases de datos o SQL Es necesario realizar pruebas.

Mejores Prรกcticas

  • Todos los datos, incluidos los metadatos y los datos funcionales, deben validarse de acuerdo con su asignaciรณn mediante los documentos de especificaciรณn de requisitos.
  • Verificaciรณn de la datos de prueba que ha sido creado por/en consulta con el equipo de desarrollo debe ser validado.
  • Validaciรณn de los datos de salida mediante el uso de procedimientos tanto manuales como automatizados.
  • Implementaciรณn de diversas tรฉcnicas, como la tรฉcnica de grรกficos de causa efecto, la tรฉcnica de particiรณn de equivalencia y la tรฉcnica de anรกlisis de valores lรญmite para generar las condiciones de datos de prueba requeridas.
  • Tambiรฉn es necesario validar las reglas de validaciรณn de integridad referencial para las tablas de la base de datos requeridas.
  • La selecciรณn de valores de tabla predeterminados para la validaciรณn de la coherencia de la base de datos es un concepto muy importante. Si los eventos de registro se han agregado correctamente en la base de datos para todos los eventos de inicio de sesiรณn requeridos.
  • ยฟSe ejecutan los trabajos programados de manera oportuna?
  • Realice una copia de seguridad oportuna de la base de datos.

Tambiรฉn comprobar- Preguntas y respuestas de la entrevista sobre pruebas de bases de datos

Resumir este post con: