system onlinepath: /guias/testing/gestion-y-generacion-de-datos-de-prueba/mode: knowledge_baselocal:
Testing y QA · Nivel intermedio

Gestión y generación de datos para pruebas

Una prueba vale lo que valen sus datos. Con datos que cambian solos, o insuficientes, o copiados de producción, hasta la prueba mejor escrita se vuelve inútil o peligrosa.

11 min de lectura▣ Actualizada el ◇ Por Underc0de
Respuesta rápida

Una prueba vale lo que valen sus datos. Aunque el caso esté bien escrito, si los datos cambian solos, no cubren lo que hace falta o dejan el sistema en un estado impredecible, la prueba se vuelve inútil. Gestionar los datos de prueba tiene tres pilares. Primero, generarlos: casi siempre conviene crear datos sintéticos —inventados a propósito, con bibliotecas que producen nombres, correos y fechas realistas pero falsos— en vez de usar datos reales. Segundo, dejar el entorno en un estado conocido antes de cada prueba: precargar exactamente los datos que el caso necesita y limpiar después, para que el resultado sea reproducible. Tercero, nunca usar datos reales de personas sin anonimizarlos: copiar la base de producción a un entorno de pruebas es un riesgo legal (normativas como el RGPD) y de seguridad enorme. Y aislar los datos entre pruebas, para que una no dependa de lo que dejó otra. Datos mal gestionados son, además, una causa principal de pruebas inestables.

Ver índice de contenidos
  1. 01Por qué los datos deciden
  2. 02Generar datos de prueba
  3. 03Dejar el entorno en estado conocido
  4. 04El riesgo de usar datos reales
  5. 05Aislar los datos entre pruebas
  6. 06Errores frecuentes
  7. 07Preguntas frecuentes
  8. 08Fuentes

Por qué los datos deciden

Es fácil pensar que una prueba es su lógica —los pasos, las aserciones— y olvidar que opera sobre datos. Pero los datos son la mitad de la ecuación: el mismo caso, con datos distintos, prueba cosas distintas o directamente falla sin que haya un error real.

Los tres males de los datos mal gestionados

Datos que cambian solos: una prueba que busca «el último pedido» da resultados distintos cada día. Datos insuficientes: si el entorno no tiene un cliente con cupón vencido, el caso que lo prueba no se puede ejecutar. Datos compartidos y sucios: una prueba modifica un registro que otra esperaba intacto, y la segunda falla por culpa de la primera. Los tres convierten pruebas correctas en resultados que no se pueden creer.

Generar datos de prueba

Las tres formas de conseguir datos para pruebas y por qué la generación sintética es la preferida. La primera opción, datos sintéticos generados a propósito: se crean con bibliotecas que producen nombres, correos, direcciones, teléfonos y fechas que parecen reales pero son inventados, o construyendo a mano los pocos registros que un caso concreto necesita; su ventaja es que no involucran a ninguna persona real, se pueden generar exactamente los casos que se quieren probar incluidos los raros y los inválidos, y son reproducibles; es la opción recomendada para la enorme mayoría de las situaciones. La segunda opción, datos reales copiados de producción: parecen cómodos porque reflejan la variedad del mundo real, pero traen dos problemas graves: contienen datos personales de personas reales, lo que los somete a normativas de protección de datos y convierte una simple copia a un entorno de pruebas menos protegido en una filtración potencial y en un riesgo legal; por eso, si se usan, deben anonimizarse antes, reemplazando los datos personales por valores falsos de forma irreversible. La tercera opción, un punto intermedio: partir de datos reales pero anonimizados o enmascarados, conservando la forma y la variedad de producción sin exponer a nadie. En el centro, la jerarquía de preferencia: primero sintéticos, después reales anonimizados solo si hace falta esa variedad, y nunca datos reales sin anonimizar. A la derecha, la advertencia legal y de seguridad destacada: copiar la base de producción tal cual a un entorno de pruebas es de los errores más peligrosos y comunes, porque los entornos de prueba suelen estar menos protegidos y una filtración desde ahí expone datos de personas reales. Al pie, la idea que ordena todo: los datos de prueba deben ser suficientes para cubrir los casos, estables para ser reproducibles, y seguros para no poner en riesgo a nadie.
Primero datos sintéticos; datos reales solo anonimizados y si hace falta la variedad. Copiar producción tal cual es el error peligroso.

La opción preferida en la mayoría de los casos es generar datos sintéticos: datos inventados a propósito, que parecen reales pero no corresponden a ninguna persona. Dos vías:

  • Bibliotecas generadoras. Existen bibliotecas —conocidas genéricamente como generadores de datos falsos— que producen nombres, correos, direcciones, teléfonos y fechas verosímiles pero ficticios. Ideales para llenar un entorno con volumen y variedad.
  • Datos construidos a mano. Para un caso concreto, a veces lo mejor es preparar exactamente los pocos registros que ese caso necesita —un cliente con cupón vencido, un pedido con monto negativo—, porque control total sobre el dato es control total sobre la prueba.

La gran ventaja de lo sintético es doble: no involucra a ninguna persona real, y permite fabricar justamente los casos que querés probar, incluidos los raros y los inválidos que en producción casi no aparecen pero que son donde viven los defectos, como se ve al diseñar casos desde requisitos.

Dejar el entorno en estado conocido

Una prueba reproducible necesita partir siempre del mismo estado. Si el entorno tiene datos distintos cada vez, el resultado también varía, y una prueba que a veces pasa y a veces no, no sirve. El patrón que resuelve esto tiene tres momentos:

  1. Preparar (antes)Antes de la prueba, dejar el entorno con exactamente los datos que el caso necesita: crear el usuario, el pedido, el cupón. Nada de suponer que «ya estarán ahí».
  2. EjecutarLa prueba corre sobre ese estado conocido y controlado.
  3. Limpiar (después)Al terminar, deshacer los cambios y borrar lo creado, para que el entorno quede como estaba y la próxima prueba parta limpia.

Estos datos preparados de antemano se llaman a menudo fixtures o precondiciones. La clave es que cada prueba crea lo que necesita y limpia lo que ensució, en lugar de depender del estado que dejó otra. Cuando el entorno es una base de datos, esto se apoya en operaciones que conviene conocer, tema de introducción a SQL.

El riesgo de usar datos reales

El atajo tentador es copiar la base de datos de producción al entorno de pruebas: «así tengo datos de verdad». Es uno de los errores más peligrosos y comunes, y conviene entender por qué.

!
Copiar producción a pruebas es un riesgo legal y de seguridad

La base de producción contiene datos personales de gente real: nombres, correos, direcciones, a veces datos de pago o de salud. Esos datos están protegidos por normativas como el RGPD, que limitan para qué y dónde pueden usarse. Los entornos de pruebas suelen estar menos protegidos que producción, así que copiar los datos ahí los expone: una filtración desde el entorno de pruebas es una filtración de datos reales, con consecuencias legales y de reputación. No es un tecnicismo: es exponer a personas que confiaron sus datos.

Si de verdad hace falta la variedad de los datos reales, la salida es la anonimización (o enmascaramiento): reemplazar de forma irreversible los datos personales por valores falsos antes de llevarlos al entorno de pruebas, conservando la forma y el volumen pero sin que se pueda identificar a nadie. Y aun así, con cuidado. La opción por defecto, salvo motivo fuerte, siguen siendo los datos sintéticos. Este cuidado es parte del mismo principio de responsabilidad con los datos personales que trata riesgos y uso responsable de la IA.

Aislar los datos entre pruebas

El último pilar: cada prueba debe ser independiente de las demás en cuanto a datos. Cuando varias pruebas comparten los mismos registros, aparecen dos problemas difíciles de rastrear:

  • Dependencia de orden. La prueba B solo pasa si la A corrió antes y dejó cierto dato. Cambiar el orden, o correr B sola, la rompe. Una prueba nunca debería depender de otra.
  • Interferencia. La prueba A modifica un registro que B esperaba intacto, y B falla por culpa de A. El defecto aparente está en B, pero la causa está en A: horas perdidas buscando en el lugar equivocado.

La solución es que cada prueba use sus propios datos —creados en su preparación, borrados en su limpieza— o datos claramente separados. Este aislamiento es una de las defensas más fuertes contra las pruebas inestables: gran parte de la inestabilidad que se atribuye a «la red» o «el timing» es, en realidad, datos compartidos que se pisan.

Errores frecuentes

  • Copiar la base de producción a pruebas. Riesgo legal y de seguridad enorme: expone datos de personas reales.
  • Usar datos reales sin anonimizar. Si hacen falta datos reales, se enmascaran de forma irreversible antes.
  • Depender de datos que ya están en el entorno. Cada prueba prepara lo que necesita; no supone que «estarán ahí».
  • No limpiar después. Los datos que una prueba deja sucios rompen a la siguiente.
  • Pruebas que dependen del orden. Si B solo pasa después de A, hay acoplamiento por datos.
  • Buscar con criterios variables. «El último pedido» cambia cada día; usar datos fijos y controlados.
  • Confundir volumen con cobertura. Mucha cantidad de datos no sirve si faltan los casos raros e inválidos.

Preguntas frecuentes

¿Por qué no usar directamente los datos de producción?

Porque la base de producción contiene datos personales de gente real —nombres, correos, direcciones y a veces información de pago o de salud— que están protegidos por normativas de privacidad como el RGPD, las cuales limitan para qué y dónde pueden usarse. Los entornos de pruebas suelen estar bastante menos protegidos que producción, así que copiar esos datos ahí los expone: cualquier filtración desde el entorno de pruebas se convierte en una filtración de datos reales, con consecuencias legales, económicas y de reputación. No es un tecnicismo burocrático, es exponer a personas que confiaron su información. Si de verdad se necesita la variedad de los datos reales, hay que anonimizarlos de forma irreversible antes de llevarlos a pruebas; pero para la mayoría de los casos, los datos sintéticos generados a propósito son la opción más segura y suficiente.

¿Qué son los datos sintéticos?

Son datos inventados a propósito para las pruebas, que parecen reales pero no corresponden a ninguna persona. Se consiguen de dos maneras. Una es mediante bibliotecas generadoras, conocidas genéricamente como generadores de datos falsos, que producen nombres, correos, direcciones, teléfonos y fechas verosímiles pero ficticios, ideales para llenar un entorno con volumen y variedad. La otra es construir a mano los pocos registros que un caso concreto necesita, por ejemplo un cliente con un cupón vencido o un pedido con un monto inválido, cuando se quiere control total sobre el dato. La gran ventaja de los datos sintéticos es doble: no involucran a ninguna persona real, con lo que evitan todos los riesgos de privacidad, y permiten fabricar exactamente los casos que se quieren probar, incluidos los raros e inválidos donde suelen esconderse los defectos.

¿Qué significa dejar el entorno en un estado conocido?

Significa que antes de cada prueba el entorno tiene exactamente los datos que el caso necesita, ni más ni menos, de modo que la prueba parta siempre del mismo punto y su resultado sea reproducible. El patrón tiene tres momentos: preparar, ejecutar y limpiar. En la preparación se crean los datos que el caso requiere, como el usuario, el pedido o el cupón concretos, sin suponer que ya estarán ahí. Luego la prueba se ejecuta sobre ese estado controlado. Y al terminar, la limpieza deshace los cambios y borra lo creado, para que el entorno quede como estaba y la siguiente prueba también parta limpia. Estos datos preparados de antemano suelen llamarse fixtures o precondiciones, y la clave es que cada prueba crea lo que necesita y limpia lo que ensució, en lugar de depender del estado que dejó otra.

¿Qué es la anonimización de datos?

Es el proceso de reemplazar de forma irreversible los datos personales de un conjunto por valores falsos, de modo que ya no se pueda identificar a las personas a las que pertenecían, conservando la forma y el volumen de los datos originales. Sirve para el caso en que de verdad se necesita la variedad y la escala de los datos reales de producción pero no se puede exponer la información de las personas: se toma una copia, se enmascaran los campos personales antes de llevarla al entorno de pruebas, y así se obtiene un conjunto realista pero seguro. Es importante que la transformación sea irreversible, es decir, que no se pueda revertir para recuperar los datos originales, porque de lo contrario el riesgo persiste. Aun con anonimización, conviene tratar esos datos con cuidado; para la mayoría de los casos, los datos sintéticos siguen siendo la opción por defecto más segura.

¿Por qué mis pruebas fallan de forma intermitente por los datos?

Casi siempre por datos compartidos que se pisan entre pruebas, que es una de las causas más comunes de inestabilidad y una de las más difíciles de rastrear porque el defecto aparente está en un lugar distinto de la causa. Ocurre de dos formas. Una es la dependencia de orden: una prueba solo pasa si otra corrió antes y dejó cierto dato, así que cambiar el orden de ejecución o correrla aislada la rompe. La otra es la interferencia: una prueba modifica un registro que otra esperaba intacto, y la segunda falla por culpa de la primera, aunque su lógica sea correcta. La solución es el aislamiento: que cada prueba use sus propios datos, creados en su preparación y borrados en su limpieza, sin depender del estado que dejó ninguna otra. Buena parte de la inestabilidad que se atribuye a la red o al timing es, en realidad, este problema de datos.

¿Cuántos datos de prueba necesito?

Los suficientes para cubrir los casos que querés probar, que no es lo mismo que muchos. Un error frecuente es confundir volumen con cobertura: tener miles de registros no sirve de nada si entre todos ellos falta justamente el caso raro o inválido que el defecto necesita para manifestarse. Lo que importa es que el conjunto de datos incluya representantes de cada situación relevante, especialmente los bordes y los casos inválidos, que es donde más fallan los sistemas. Para pruebas de volumen o rendimiento sí hacen falta grandes cantidades, y ahí las bibliotecas generadoras son muy útiles. Pero para las pruebas funcionales, lo valioso es la variedad controlada: pocos datos bien elegidos que cubran cada condición del requisito valen más que una montaña de datos que solo repiten el caso feliz.

Fuentes

Documentación oficial y material de la comunidad consultados para esta guía. Fecha de consulta: 28 de julio de 2026.

Aportes de la comunidad Underc0de

  1. Underc0de, foro. Sección QA (Quality Assurance). Consultas sobre datos de prueba y entornos.
  2. Underc0de, foro. Sección Bases de datos. Gestión y preparación de datos.

Documentación oficial

  1. ISTQB. Foundation Level Syllabus. El rol de los datos de prueba y las precondiciones en el testing.
  2. Unión Europea. RGPD. La normativa de protección de datos personales que hace riesgoso usar datos reales, tomada como referencia.
  3. OWASP. Web Security Testing Guide. Buenas prácticas sobre manejo seguro de datos en entornos de prueba.
  4. ISTQB. Glosario. Definición de datos de prueba, precondición y entorno de prueba.