15. Datos de prueba y preparación del ambiente

15.1 Introducción

Un caso de prueba puede estar muy bien diseñado y aun así fallar si los datos o el ambiente no están preparados. Muchas veces una prueba no falla porque la funcionalidad tenga un defecto, sino porque falta un usuario, el producto no tiene stock, el servicio externo no responde o la configuración del ambiente no corresponde.

Por eso, antes de ejecutar pruebas, debemos pensar en dos elementos fundamentales: datos de prueba y ambiente de prueba.

En este tema veremos qué son, por qué importan, cómo prepararlos y qué errores comunes debemos evitar.

15.2 ¿Qué son los datos de prueba?

Los datos de prueba son los valores, registros, archivos, usuarios, configuraciones o estados que se utilizan para ejecutar una prueba.

Ejemplos:

  • Usuario activo para iniciar sesión.
  • Usuario bloqueado para probar rechazo de acceso.
  • Producto con stock disponible.
  • Producto sin stock.
  • Tarjeta de pago de prueba aprobada.
  • Archivo CSV válido para importar datos.
  • Factura con importe mayor a cierto límite.
  • Cliente con deuda vencida.

Los datos condicionan el resultado de la prueba. Si los datos no son los correctos, el resultado puede ser engañoso.

15.3 ¿Qué es un ambiente de prueba?

Un ambiente de prueba es el entorno donde se ejecutan las pruebas. Incluye aplicación, base de datos, configuración, servicios, usuarios, versiones, infraestructura y dependencias necesarias.

Un ambiente puede incluir:

  • Versión de la aplicación.
  • Base de datos con datos preparados.
  • Servicios internos y externos.
  • Configuraciones de seguridad.
  • Usuarios y permisos.
  • Navegadores o dispositivos.
  • Colas de mensajes o tareas programadas.
  • Herramientas de logs y monitoreo.

Un ambiente mal preparado puede bloquear pruebas o generar defectos falsos.

15.4 Tipos comunes de ambientes

Los nombres pueden variar entre organizaciones, pero suelen existir ambientes como:

Ambiente Uso habitual
Local Usado por desarrolladores en sus máquinas para programar y probar cambios iniciales.
Desarrollo Usado para integrar cambios tempranos y validar funcionalidad en construcción.
Testing o QA Usado por testers para ejecutar pruebas planificadas sobre una versión candidata.
Integración Usado para comprobar comunicación entre sistemas o componentes.
Preproducción Ambiente similar a producción para validaciones finales.
Producción Ambiente real utilizado por usuarios finales.

Las pruebas deben ejecutarse en el ambiente adecuado según su objetivo y riesgo.

15.5 Precondiciones y preparación

Las precondiciones indican qué debe estar listo antes de ejecutar una prueba. Los datos y el ambiente suelen formar parte de esas precondiciones.

Ejemplo de caso de compra:

  • El usuario cliente.activo@correo.com existe y está habilitado.
  • El producto Notebook QA-100 tiene stock disponible.
  • La pasarela de pago de prueba está activa.
  • El ambiente QA tiene desplegada la versión correcta.
  • El servicio de correo está configurado para enviar mensajes de prueba.

Si una de estas condiciones no se cumple, la prueba puede quedar bloqueada o fallar por una causa externa.

15.6 Datos válidos, inválidos y límite

Al preparar datos conviene pensar en distintas categorías:

Tipo de dato Descripción Ejemplo
Válido Debe ser aceptado por el sistema. Correo usuario@correo.com.
Inválido Debe ser rechazado o tratado como error. Correo sin arroba.
Límite Está cerca del borde permitido. Contraseña de exactamente 8 caracteres si el mínimo es 8.
Extremo Representa valores muy grandes, vacíos o poco frecuentes. Nombre con 255 caracteres.
Especial Incluye caracteres, formatos o condiciones particulares. Texto con acentos, espacios o símbolos.

Una buena selección de datos permite descubrir defectos que no aparecen con datos normales.

15.7 Datos positivos y negativos

Los datos positivos están pensados para que la operación se complete correctamente. Los datos negativos están pensados para comprobar que el sistema rechace o maneje condiciones inválidas.

Ejemplo para registro de usuario:

  • Dato positivo: correo válido, contraseña segura y nombre completo.
  • Dato negativo: correo inválido, contraseña demasiado corta o nombre vacío.

Ambos son necesarios. Si solo usamos datos positivos, no sabremos si el sistema se protege frente a entradas incorrectas.

15.8 Datos sintéticos y datos reales

Los datos de prueba pueden ser sintéticos o reales.

Tipo Ventajas Riesgos
Sintéticos Se crean especialmente para probar; son controlados y evitan exponer información sensible. Pueden no representar toda la complejidad de datos reales.
Reales Representan situaciones existentes y pueden revelar problemas difíciles de imaginar. Pueden contener información sensible y requerir anonimización o autorización.

Como regla general, conviene usar datos sintéticos o anonimizados. Usar datos reales sin control puede generar riesgos legales, de seguridad y privacidad.

15.9 Anonimización y privacidad

Cuando se usan datos basados en información real, es importante proteger datos personales o sensibles. La anonimización consiste en modificar datos para que no identifiquen a personas reales.

Datos sensibles pueden incluir:

  • Nombres y apellidos reales.
  • Documentos de identidad.
  • Direcciones y teléfonos.
  • Correos personales.
  • Datos médicos.
  • Información financiera.
  • Contraseñas o tokens.

Un ambiente de prueba no debe convertirse en una copia insegura de producción. La protección de datos también forma parte de la calidad.

15.10 Datos estables y datos variables

Algunos datos deben permanecer estables para que las pruebas sean repetibles. Otros pueden cambiar naturalmente durante la ejecución.

Ejemplo:

  • Un usuario de prueba con permisos conocidos debería mantenerse estable.
  • El stock de un producto puede cambiar después de una compra.
  • Un enlace de recuperación puede vencer después de cierto tiempo.
  • Una orden puede pasar de pendiente a pagada.

Si una prueba depende de datos que cambian, debemos definir cómo restaurarlos, recrearlos o aislarlos para futuras ejecuciones.

15.11 Preparación y limpieza de datos

Para que las pruebas sean confiables, muchas veces se necesita preparar datos antes y limpiarlos después.

Preparar datos puede significar:

  • Crear usuarios.
  • Cargar productos.
  • Configurar permisos.
  • Generar órdenes o facturas.
  • Configurar reglas de negocio.
  • Activar o desactivar servicios.

Limpiar datos puede significar:

  • Eliminar registros creados durante la prueba.
  • Restaurar stock.
  • Desbloquear cuentas.
  • Reiniciar configuraciones.
  • Cancelar operaciones de prueba.

Sin limpieza, una ejecución puede afectar a la siguiente y generar resultados impredecibles.

15.12 Dependencias externas

Muchos sistemas dependen de servicios externos: pagos, correo, mensajería, mapas, autenticación, facturación o APIs de terceros. Estas dependencias afectan la preparación del ambiente.

Preguntas importantes:

  • ¿El servicio externo estará disponible durante la prueba?
  • ¿Usaremos un ambiente de pruebas del proveedor?
  • ¿Hay datos o credenciales específicas?
  • ¿Qué pasa si el servicio responde lento?
  • ¿Podemos simular respuestas exitosas y fallidas?
  • ¿La prueba genera costos reales?

Cuando una dependencia externa no está controlada, puede volver inestables las pruebas.

15.13 Versiones y configuración

Antes de probar, es fundamental saber qué versión está desplegada y con qué configuración. De lo contrario, podríamos reportar defectos sobre una versión incorrecta o comparar resultados con reglas desactualizadas.

Información útil del ambiente:

  • Versión de la aplicación.
  • Fecha y hora de despliegue.
  • Rama o build probado.
  • Configuraciones activas.
  • Servicios conectados.
  • Base de datos utilizada.
  • Navegador, dispositivo o sistema operativo.

Esta información también ayuda a reproducir defectos.

15.14 Ambientes similares a producción

Algunas pruebas necesitan un ambiente lo más parecido posible a producción. Esto es especialmente importante para pruebas de sistema, aceptación, rendimiento, despliegue o integraciones críticas.

Un ambiente similar a producción debería parecerse en aspectos como:

  • Configuración.
  • Versiones de servicios.
  • Base de datos o estructura equivalente.
  • Volumen aproximado de datos.
  • Permisos y seguridad.
  • Integraciones externas.
  • Infraestructura o capacidad.

Si el ambiente de prueba es demasiado diferente, algunos defectos aparecerán recién en producción.

15.15 Ejemplo completo: compra de producto

Para ejecutar un caso de compra exitosa, podríamos preparar:

Elemento Preparación necesaria
Usuario Cliente activo con correo verificado y dirección cargada.
Producto Producto publicado con precio definido y stock mayor a cero.
Pago Tarjeta de prueba aprobada en ambiente de sandbox.
Correo Servicio configurado para capturar correos de prueba.
Ambiente Versión candidata desplegada en QA.
Limpieza Cancelar pedido o restaurar stock luego de la prueba si corresponde.

Esta preparación evita que la prueba falle por causas ajenas al flujo de compra.

15.16 Problemas típicos por mala preparación

Algunos problemas comunes son:

  • El usuario de prueba no existe.
  • La contraseña fue cambiada por otra persona.
  • El producto no tiene stock.
  • El ambiente tiene una versión vieja.
  • La base de datos fue reiniciada sin aviso.
  • El servicio externo está caído.
  • La configuración no coincide con el requisito.
  • Una prueba anterior dejó datos en estado inconsistente.

Estos problemas consumen tiempo y pueden confundirse con defectos reales del producto.

15.17 Errores comunes

Al trabajar con datos y ambientes de prueba, algunos errores frecuentes son:

  • No documentar qué datos se necesitan.
  • Compartir usuarios de prueba sin control.
  • Usar datos reales sensibles sin anonimizar.
  • No limpiar datos después de ejecutar pruebas.
  • Probar en una versión incorrecta.
  • No verificar dependencias externas antes de ejecutar.
  • No registrar el ambiente donde ocurrió un defecto.
  • Depender de datos inestables para pruebas repetibles.

Una buena preparación reduce bloqueos y mejora la confiabilidad de los resultados.

15.18 Buenas prácticas

Para trabajar mejor con datos y ambientes conviene:

  • Definir datos de prueba junto con los casos.
  • Usar datos sintéticos o anonimizados siempre que sea posible.
  • Documentar precondiciones importantes.
  • Separar datos para pruebas positivas, negativas y límite.
  • Verificar la versión del ambiente antes de iniciar.
  • Controlar usuarios, permisos y configuraciones.
  • Preparar mecanismos de limpieza o restauración.
  • Registrar ambiente, navegador, versión y datos relevantes al reportar defectos.
  • Coordinar cambios de ambiente con el equipo.

El objetivo es que una prueba falle por un defecto real, no por desorden en datos o ambiente.

15.19 Qué debes recordar de este tema

  • Los datos de prueba son valores, registros o estados usados para ejecutar pruebas.
  • El ambiente de prueba incluye aplicación, configuración, servicios, datos e infraestructura.
  • Una prueba puede fallar por mala preparación aunque la funcionalidad esté correcta.
  • Los datos pueden ser válidos, inválidos, límite, extremos o especiales.
  • Conviene evitar datos reales sensibles o usarlos solo con anonimización y autorización.
  • Las pruebas repetibles necesitan datos estables o mecanismos de preparación y limpieza.
  • Las dependencias externas deben estar controladas o simuladas cuando sea necesario.
  • Registrar versión y ambiente ayuda a reproducir defectos.

15.20 Conclusión

Los datos y el ambiente son parte esencial del testing. Un caso bien diseñado necesita condiciones adecuadas para ejecutarse. Si los datos son incorrectos o el ambiente está mal configurado, el resultado de la prueba pierde confiabilidad.

Preparar bien significa definir datos, controlar precondiciones, conocer la versión probada, revisar dependencias y mantener el ambiente ordenado. Esto reduce bloqueos, evita falsos defectos y mejora la calidad de la información obtenida.

En el próximo tema estudiaremos una técnica fundamental de diseño de pruebas: clases de equivalencia, que permite seleccionar datos representativos sin probar combinaciones innecesarias.