Skip to main content

Las pruebas de bases de datos consisten en pruebas de caja negra, caja blanca y ACID (atomicidad, consistencia, aislamiento y durabilidad). En esta guía, te daré definiciones, instrucciones y ejemplos.

¿Qué son las pruebas de bases de datos?

Las pruebas de bases de datos, también conocidas como pruebas de backend o pruebas de datos, se diferencian de las pruebas de interfaz de usuario ya que no se preocupan en absoluto por la interfaz visual del software del sistema. Su principal preocupación es verificar que todos los procesos internos funcionen correctamente y que puedan recuperar datos de forma rápida, precisa y segura.

Las pruebas de bases de datos prueban el esquema de la base de datos, las tablas y los triggers de la base de datos. Ponen la base de datos bajo estrés y pueden incluir la ejecución de consultas complejas para probar a fondo su capacidad y capacidad de respuesta. También se prueban los Sistemas de Gestión de Bases de Datos (DBMS) como Oracle y SQL Server.

¿Quieres más de The CTO Club?

Crea una cuenta gratuita para terminar de leer este contenido y unirte a una comunidad de CTOs y líderes de ingeniería que comparten marcos, herramientas y conocimientos reales para diseñar, desplegar y escalar tecnología impulsada por IA.

Este campo es un campo de validación y debe quedar sin cambios.
Name*
Este campo está oculto cuando se visualiza el formulario

Lectura relacionada: LOS RESULTADOS POSITIVOS DE LAS PRUEBAS NEGATIVAS

¿Qué es el esquema de base de datos?

Un esquema de base de datos es una estructura lógica que define la organización y relación de los datos dentro de una base de datos. Describe el plano de cómo se almacenan, acceden y manipulan los datos en un Sistema de Gestión de Bases de Datos (DBMS). El esquema describe los tipos de datos, restricciones y relaciones entre las entidades de la base de datos, como tablas, vistas, índices y triggers.

El esquema de la base de datos es fundamental para garantizar la integridad y consistencia de los datos dentro de una base de datos. Proporciona a los desarrolladores y administradores de bases de datos un marco para organizar y estructurar los datos de manera significativa. También ayuda a garantizar que los datos almacenados en la base de datos cumplan con requisitos específicos, como validación de datos, seguridad de datos y accesibilidad. Las organizaciones pueden usar un esquema de base de datos para asegurar la organización y optimización de sus bases de datos para una administración de datos eficiente, mejorando las operaciones del negocio y la toma de decisiones.

¿Por qué son importantes las pruebas de bases de datos?

Las pruebas de bases de datos son importantes porque

  1.  Algunos errores solo se pueden encontrar mediante pruebas de bases de datos
  2.  Ciertas condiciones de uso solo se pueden probar con bases de datos
  3.  Las pruebas de bases de datos mejoran la estabilidad y la seguridad 
  4.  Las pruebas de bases de datos aseguran la consistencia

Ejemplo de función de base de datos

Imagina que abres una aplicación de banca en línea en tu teléfono (o incluso ábrela si la tienes). Ahora, transfiere una pequeña cantidad de dinero de tu cuenta corriente a tu cuenta de ahorros.  Cuando termines, piensa en todas las cosas que tuvieron que suceder detrás del escenario en esos pocos segundos.

  1. La app envió la información de la transacción a la base de datos.
  2. Ninguna de tu información (es decir, tu DINERO) se perdió en el camino.
  3. La aplicación no se bloqueó ni falló al completar la transferencia.
  4. La transacción se realizó de forma segura.
  5. Tu dinero ahora está cómodamente en tu cuenta de ahorros (¡felicitaciones!)

Todas esas funciones ocurren dentro de la base de datos. El proceso de pruebas de bases de datos es importante porque, si un sistema de base de datos falla críticamente, el sistema se detiene. No se puede enviar, recuperar, transferir ni asegurar información. La aplicación puede parecer funcionar en la superficie (puedes navegar entre ventanas y prepararte para realizar transacciones), pero no ocurrirá nada realmente relevante.

Por fuera todo parece estar bien, pero internamente es un desastre.

This is fine image

Las pruebas de bases de datos aseguran que no haya desastre. Sin fuego, sin parada, sin dinero perdido. Es del interés de todos que se realicen pruebas de bases de datos. Por eso he escrito una guía completa para ayudarte a sentirte seguro de que, al finalizar, todo ha sido probado de manera exhaustiva.

Principios de las pruebas de bases de datos

La palabra ‘principios’ puede sonar más como un porqué que un cómo. Créeme, estos son dos conceptos importantes y prácticos. 

  1. Propiedades ACID
    • Atomicidad
    • Consistencia
    • Aislamiento
    • Durabilidad
  2. Integridad de los datos

¿Qué son las propiedades ACID?

Esta es la versión más segura del ácido que jamás usarás. No se requieren guantes, las propiedades ACID representan Atomicidad, Consistencia, Aislamiento y Durabilidad. Cada transacción en las pruebas de bases de datos debe cumplir con estos principios. 

Una transacción es un grupo de tareas. Incluso una transacción sencilla en la vida real, como la transferencia bancaria que mencioné anteriormente, implicará varias tareas de menor nivel. Las propiedades ACID existen para confirmar que cada transacción se complete con exactitud, en su totalidad y con integridad.

Mejora tu bandeja de entrada con más sabiduría sobre liderazgo tecnológico para ofrecer mejores programas y sistemas.

Mejora tu bandeja de entrada con más sabiduría sobre liderazgo tecnológico para ofrecer mejores programas y sistemas.

Este campo es un campo de validación y debe quedar sin cambios.
Name*

Propiedades ACID

  • Atomicidad establece que cada transacción debe ser tratada como una unidad atómica. En términos no moleculares, significa que cada transacción debe completarse por completo o de lo contrario falla. Tratar cada transacción de esta manera evita la situación complicada de una transferencia de dinero que se realiza solo a medias. Eso suena estresante, ¿verdad?  Con la atomicidad, si la transacción se queda a la mitad cuando algo sale mal, toda la transacción falla. Dinero de vuelta. Sin estrés. 
  • Consistencia requiere que la base de datos se mantenga consistente después de una transacción. Ninguna transacción puede impactar negativamente sobre otro dato en la base de datos. El hecho de que deposites dinero en tu cuenta bancaria no retirará nada de la cuenta de otra persona. 
  • Aislamiento previene la mezcla de operaciones. Garantiza que, en el caso de múltiples transacciones ocurriendo a la vez, cada transacción sea tratada como si fuera la única que ocurre en la base de datos. Nadie mezcla su información con la de otras personas.  
  • Durabilidad requiere que la base de datos sea lo suficientemente duradera como para conservar todas las transacciones más recientes, incluso si ocurre una falla del sistema. Nuevamente, existen razones prácticas para requerir tal durabilidad en una base de datos. Si realizas una transferencia de dinero y la base de datos se cae diez minutos después, ¿cómo sabrías que tienes que realizar la transferencia nuevamente? Tener requisitos tan estrictos evita la confusión por parte de los usuarios finales.  

Integridad de los Datos

La integridad de los datos es la práctica de verificar que todos los datos más recientes estén actualizados en todos lados. Hay cuatro partes individuales que se combinan para confirmar que los datos tengan integridad. Para un alto nivel de integridad de los datos, un tester de QA debe confirmar que:

  1. Los datos sean verificables
  2. Los datos sean recuperables
  3. Los datos sean precisos
  4. Los datos sean completos

Si los datos no cumplen con esos cuatro requisitos, probablemente no cumplan con el estándar de integridad de datos. Las herramientas de gestión de datos pueden ayudar con esto, pero en última instancia depende de ti asegurar la mayor calidad de los datos.

Como señaló Huw Price en el episodio de The QA Lead Podcast titulado Tu calidad de datos apesta, garantizar que tus sistemas funcionen con datos de alta calidad y seguros va en aumento en importancia a medida que más y más empresas construyen sus propios bancos de datos.

Lenguaje de Manipulación de Bases de Datos

Un Lenguaje de Manipulación de Bases de Datos (DML) es un lenguaje de programación utilizado para manipular datos dentro de un sistema de gestión de bases de datos. El DML se usa principalmente para realizar tareas como insertar, actualizar, eliminar y recuperar datos de una base de datos. En esencia, el DML proporciona un conjunto de comandos y funciones que permiten a los usuarios interactuar con los datos en una base de datos, y modificar o recuperar esos datos según criterios específicos. El DML es un componente esencial de cualquier sistema de bases de datos, permitiendo a los usuarios realizar operaciones sobre los datos sin comprender la estructura o tecnología subyacente de la base de datos.

Los comandos DML suelen utilizarse junto con un Lenguaje de Definición de Datos (DDL), que se utiliza para crear y modificar objetos de la base de datos como tablas, vistas e índices. El DDL y el DML forman los componentes centrales de un sistema de base de datos, permitiendo a los usuarios crear, modificar y manipular datos de manera segura, eficiente y confiable. El uso de DML en la gestión de bases de datos permite a las organizaciones almacenar, administrar y analizar grandes volúmenes de datos, convirtiéndose en una herramienta crítica para las empresas en el mundo actual impulsado por los datos.

Tipos de Pruebas de Bases de Datos

Ahora que hemos cubierto dos de los principios fundamentales de las pruebas de bases de datos, podemos pasar a los diferentes tipos de pruebas. Probablemente hayas oído hablar de algunos de estos enfoques antes. Recuerda, mencioné que si entendías las pruebas de QA te acostumbrarías a las pruebas de bases de datos sin problema. Aquí explicaré cómo cada uno de estos conceptos se aplica a las pruebas de bases de datos. 

Existen tres tipos de pruebas de bases de datos:

  1. Estructurales
  2. Funcionales
  3. No funcionales

Dentro de estos tres tipos de pruebas de bases de datos existen subtipos. No te preocupes, también te los explicaré. 

Pruebas Estructurales

Las pruebas estructurales validan los elementos dentro del repositorio de datos que se usan para el almacenamiento de datos. Estos elementos están ocultos para los usuarios finales y ocurren completamente detrás de escena. Los testers de bases de datos realizan estas pruebas escribiendo consultas SQL. 

Pruebas de Mapeo de Datos

Mapear estructuras de datos es el proceso de establecer conexiones entre dos modelos de datos diferentes. También conocidas como pruebas de esquema, una prueba de mapeo de datos validará tanto el front end como el back end. Se aseguran de que ambos se estén comunicando correctamente.

Por ejemplo, si estás completando un formulario de registro en un sitio web, una correcta asignación de datos tomará ese formulario web y lo transferirá a la base de datos. Tu nombre, correo electrónico y contraseña se almacenarán donde corresponde. Las pruebas de mapeo de datos confirman que ese proceso funciona. 

Existen varias herramientas de mapeo de datos con las que trabajará un evaluador de control de calidad (QA). Una breve lista de herramientas de mapeo de datos incluye:

Pruebas de Tablas de Base de Datos

Las pruebas de tablas realizan varias comprobaciones en la estructura de mapeo de datos. Verifican que los campos en el front-end y el back-end sean compatibles entre sí. Valida la longitud de los campos de la base de datos. Y confirma si hay tablas o columnas de base de datos sin mapear que debas abordar. 

Validaciones del Servidor de Base de Datos

Las validaciones del servidor aseguran que la configuración del servidor cumpla con los requisitos. También garantizan que cualquier persona que intente acceder a ciertas áreas del servidor de base de datos tenga la autorización adecuada. Este es un paso importante para mantener segura la base de datos y proteger a sus usuarios. Finalmente, la validación del servidor verifica que el servidor pueda manejar el número máximo de transacciones simultáneamente. 

Por ejemplo, una validación de servidor para una aplicación bancaria verificaría que el servidor pueda manejar las transacciones financieras de un número determinado de usuarios y que todos los usuarios solo puedan acceder a su propia información. 

Pruebas Funcionales

Vamos a devolverle la diversión a las pruebas funcionales. De verdad, lo haremos. Las pruebas funcionales se centran en verificar que la base de datos cumple con las especificaciones del cliente y que las acciones del usuario final sean coherentes con esos requisitos. Esto significa que hay mucho de hacer de cuenta que eres el usuario final. ¿No te parece divertido? A mí me parece divertido. 

Pruebas de Caja Negra

Las pruebas de caja negra son una estrategia de pruebas de software en la que el diseño del sistema que se está probando es desconocido para el evaluador. Sin un conocimiento detallado del diseño del software, el evaluador aborda el software con expectativas similares a las del usuario final. 

Las pruebas de caja negra se realizan durante las pruebas de bases de datos porque detectan errores en rutas comunes que probablemente encuentre el usuario final. Es la prueba definitiva de ejecución como usuario final. 

Cubrimos las pruebas de caja negra de manera extensa en nuestra guía de 9 Tipos de Pruebas de Software Que Todo Analista de QA Debe Conocer

Pruebas de Caja Blanca

Las pruebas de caja blanca son todo lo contrario a las de caja negra. En las pruebas de caja blanca, el integrante de QA comprende completamente la estructura interna y el diseño del software que se está probando. 

Se acercan a la prueba como si fueran un inspector. Las pruebas de caja blanca a veces se denominan pruebas de caja clara porque el evaluador observa las interacciones entre unidades mientras comprueba el software. A diferencia de las pruebas de caja negra, a quien prueba con caja blanca no le preocupa tanto la experiencia del usuario. 

Pruebas Unitarias

Las pruebas unitarias son una técnica de prueba de software que consiste en probar unidades o componentes individuales de una aplicación de manera aislada del resto del sistema. Esta modalidad se utiliza para probar objetos individuales de la base de datos como tablas, vistas, procedimientos almacenados y funciones. Al probar estos objetos de forma aislada, los desarrolladores pueden asegurarse de que cada objeto funcione según lo previsto.

Las pruebas unitarias para bases de datos suelen implicar la escritura de pruebas automatizadas que ejecutan comandos SQL específicos sobre un objeto o módulo de base de datos y verifican que se obtienen los resultados esperados. Por ejemplo, una prueba unitaria para un procedimiento almacenado podría consistir en pasar un conjunto de parámetros de entrada al procedimiento y comprobar que la salida es correcta. Al emplear pruebas unitarias de este modo, los desarrolladores pueden garantizar que cada objeto de la base de datos funcione como se espera y que cualquier cambio en el esquema de la base o en el código de la aplicación no introduzca consecuencias o errores no previstos.

Pruebas No Funcionales

Las pruebas no funcionales no se preocupan por el usuario final. No es que el usuario final no sea importante. Sucede que simplemente tienen otras cosas en las que centrarse. Las pruebas no funcionales revisan el rendimiento de la base de datos bajo carga, estrés, y buscan oportunidades para optimizar el rendimiento.

Pruebas de Carga 

Las pruebas de carga de bases de datos son un tipo de pruebas de rendimiento que verifican que la carga de usuarios no tendrá un impacto dramáticamente negativo en el rendimiento de la base de datos. El probador de QA ejecuta un montón de consultas de carga y las ejecuta una y otra vez para simular una base de usuarios activa. 

Pruebas de Estrés

Las pruebas de estrés son pruebas de carga, pero más intensas. No buscan ver si la base de datos se ralentiza, sino ver dónde puede romperse. Esto es mucho más destructivo. Así que, es divertido. 

¿Alguna vez has esperado ansiosamente el lanzamiento de un nuevo videojuego o teléfono? Si es así, es posible que conozcas la experiencia de cargar el sitio web o abrir la aplicación para hacer tu compra y encontrarte con pantallas de carga inusualmente largas, códigos de error inesperados y fallos al procesar tu información. Eso es, justamente, una base de datos bajo estrés.

Se diferencia de las pruebas de carga porque somete a la base de datos a un volumen de tráfico repentino y sorprendentemente alto. 

Pruebas Automatizadas de Base de Datos

Las pruebas automatizadas de bases de datos se han vuelto más populares en los últimos años. Requerir que la base de datos sea probada manualmente tomaría demasiado tiempo, requeriría demasiadas personas y simplemente costaría demasiado dinero.

Existen muchas formas de realizar pruebas de automatización. Aquí tienes una lista de algunas herramientas de gestión de bases de datos que ofrecen funciones de prueba.

Lista de herramientas de gestión de bases de datos

Pruebas de una base de datos con API

Una API (Interfaz de Programación de Aplicaciones) es un conjunto de protocolos y estándares que permite que diferentes aplicaciones de software se comuniquen entre sí. Con pruebas de bases de datos, una API puede conectarse a una base de datos y realizar varias operaciones como insertar, actualizar, eliminar y recuperar datos.

La relación entre una API y las pruebas de bases de datos es que las APIs pueden utilizarse para automatizar y optimizar el proceso de pruebas. Al usar una API para conectarse a una base de datos, los probadores pueden automatizar tareas como la inserción, actualización y eliminación de datos, así como realizar consultas para recuperar datos y validar resultados. Esto puede reducir significativamente el tiempo y esfuerzo necesarios para las pruebas manuales y mejorar la precisión y consistencia de los resultados.

Recursos Adicionales

Después de leer este artículo, deberías entender cómo ejecutar pruebas de bases de datos. Por supuesto, es imposible cubrir absolutamente todo en un solo artículo. Aquí tienes dos recursos adicionales que pueden ayudarte a superar problemas específicos.

  1. Cómo realizar pruebas de regresión en una base de datos relacional
  2. Cómo realizar una prueba de rendimiento en una instancia de SQL Server

¿Qué opinas?

Ser responsable de probar una base de datos puede parecer una gran responsabilidad. Estoy seguro de que puedes hacerlo bien. ¿Te sientes más confiado en tu enfoque de pruebas de bases de datos? ¡Cuéntame tu opinión en los comentarios!