Logotipo de Parasoft

¡Vea Parasoft Virtualize en acción!

Realice un recorrido autoguiado del producto.

Comenzar

WEBINAR

Controle los costos de automatización de pruebas con datos de pruebas virtuales

¿Cómo se obtienen buenos datos de prueba que protejan la información confidencial sin tener que gastar mucho dinero? Las pruebas de software automatizadas pueden resultar costosas, especialmente para entornos complejos que interactúan con numerosas API y puntos finales posteriores.

Tradicional gestión de datos de prueba (TDM) No se puede proporcionar un método económico para generar modelos de datos y conjuntos de datos simulados. Al crear conjuntos de datos virtuales reutilizables para probar dependencias, se puede reducir el coste de la automatización de pruebas y obtener mayor control sobre los datos y entornos de prueba.

En esta sesión, aprenderás:

  • ¿Por qué tradicional? gestión de datos de prueba Los enfoques son costosos.
  • Formas de crear datos de pruebas virtuales con ejemplos prácticos.
  • Cuándo y cómo aplicar datos de prueba Técnicas para minimizar costos y maximizar la reutilización.

El alto costo de la gestión tradicional de datos de pruebas

Obtener buenos datos de prueba es un gran obstáculo. No se trata solo de tener datos; se trata de tener la Derecho Datos. Piénsalo como abrir una cerradura: necesitas la combinación perfecta de datos para obtener el resultado deseado. Para las pruebas de software, esto significa contar con las condiciones previas y los datos de entrada adecuados para validar tu aplicación a fondo.

Muchos equipos dedican gran parte de su tiempo, a veces entre el 30 % y el 60 %, simplemente a buscar, gestionar y crear datos de prueba. Esto se debe a que:

  • Acceso limitado: Los equipos de pruebas no suelen tener acceso directo a fuentes de datos en tiempo real. Los datos que obtienen suelen ser un subconjunto de los datos de producción, y su obtención demora.
  • Grandes volúmenes: Los datos de producción pueden ser masivos, especialmente para grandes aplicaciones empresariales, lo que hace que sea complicado manejarlos.
  • Dependencias de datos: Gestionar relaciones y combinaciones de datos complejas en diferentes sistemas es un gran desafío.
  • Tiempos de actualización largos: Una vez que se agotan los datos de prueba, los equipos tienen que volver a realizar todo el proceso para obtener datos nuevos.

Conclusiones clave sobre los desafíos de los datos de prueba:

  • La preparación de datos de prueba requiere mucho tiempo y ocupa entre un 30 y un 60 % del tiempo de los evaluadores.
  • La falta de acceso directo a las fuentes de datos y a los datos de producción es un problema común.
  • Los grandes volúmenes de datos y las dependencias complejas generan una sobrecarga de gestión significativa.
  • Los ciclos de actualización largos de datos de prueba ralentizan los procesos de prueba.

¿Qué hace que los datos de prueba sean buenos (y malos)?

Los buenos datos de prueba deben ser realistas. Los datos poco realistas pueden minar considerablemente la confianza en las pruebas. Si los datos no reflejan cómo se usa realmente la aplicación, podrían pasarse por alto errores críticos o generar falsos positivos. Esto puede obligar a los desarrolladores a volver a revisar su trabajo, lo que aumenta los costes del proyecto.

El equipo también debe controlar los datos. Cuando los testers no son dueños de sus datos, se genera frustración. Si los datos se restablecen inesperadamente o son gestionados por otro equipo, pueden alterar las precondiciones de prueba y los estados que los testers se esforzaron en configurar. Esta falta de control suele provocar bloqueos en el trabajo y ciclos de prueba más largos.

Además, los cambios de estado dentro de la aplicación deben ser visibles. Si los datos de prueba solo se centran en las entradas y salidas, podría perderse lo que ocurre entre bastidores con procesos complejos y asincrónicos o dependencias externas. Esto dificulta la identificación de defectos específicos.

Finalmente, los datos deben estar desacoplados. Cuando los datos están estrechamente acoplados, un cambio en un área puede causar problemas en todas partes, lo que dificulta la solución de problemas o la implementación de actualizaciones sin un efecto dominó. Los datos mal acoplados aumentan directamente los costos del proyecto.

Enfoques tradicionales y sus trampas

Existen varios métodos comunes para obtener datos de prueba, pero cada uno conlleva su propio conjunto de problemas:

  1. Clonación de bases de datos de producción: Esta parece una forma sencilla de obtener datos reales, pero suele ser costosa y requiere mucho tiempo. Además, requiere políticas estrictas para garantizar la privacidad y el cumplimiento normativo de los datos, limitando el acceso a ellos.
  2. Subconjunto/muestreo de datos de producción: Si bien esto ayuda a administrar el volumen de datos, requiere un conocimiento profundo tanto de los conjuntos de datos como de toda la arquitectura del sistema para garantizar que el subconjunto sea relevante y no dañe otras partes de la aplicación.
  3. Generación/sintetización de datos: Este enfoque evita problemas de privacidad, ya que los datos no son reales. Sin embargo, el desafío radica en definir la lógica y los modelos para crear datos realmente útiles para las pruebas, en lugar de solo valores aleatorios.

Estos métodos tradicionales a menudo conducen a entornos de prueba compartidos, soluciones pesadas de gestión de datos de prueba (TDM) y equipos que no respetan la integridad de los datos, todo lo cual contribuye a sobrecostos en los proyectos y a que posibles defectos se escapen a producción.

La solución: datos de prueba virtuales con virtualización de servicios

La virtualización de servicios ofrece una forma eficaz de crear datos de prueba simulados o virtuales. En lugar de depender de bases de datos reales o scripts complejos de generación de datos, puede usar la virtualización de servicios para simular el comportamiento de sus API y fuentes de datos. Esto significa que puede:

  • Crear activos virtuales: Cree servicios virtuales que imiten sus API y respuestas de datos.
  • Servicios basados ​​en datos: Configure estos servicios virtuales para utilizar datos de prueba específicos, lo que le permitirá controlar los datos con los que interactúan sus pruebas.
  • Aislar entornos de prueba: Proporcione a cada equipo su propio entorno de prueba aislado con sus propios datos controlados, fomentando la propiedad y reduciendo los conflictos.

Beneficios de los datos de prueba virtuales:

  • No se necesita infraestructura de base de datos: Puede administrar datos de prueba en varios formatos, como archivos CSV, sin necesidad de amplios conocimientos de DBA.
  • Entornos de prueba aislados: Cree y gestione fácilmente espacios de prueba independientes.
  • Estuches de esquina de cubierta: Manipule datos sobre la marcha para probar casos extremos sin afectar a los demás.
  • Fácil intercambio: Distribuya conjuntos de datos de prueba de manera eficiente a cualquier persona que los necesite.
  • Eliminar la complejidad del esquema: Evite la molestia de lidiar con esquemas de bases de datos subyacentes complejos.
  • Capturar y enmascarar datos: Registre sólo los datos necesarios y enmascare dinámicamente la información confidencial.

Aplicación práctica: una demostración

Imagine una aplicación bancaria como Fairbank. Mediante la virtualización de servicios, puede registrar interacciones con la aplicación, como el inicio de sesión y la consulta de saldos. Estos datos registrados pueden utilizarse para crear activos virtuales; en esencia, servicios virtuales que proporcionan estos datos de prueba específicos.

Por ejemplo, puede capturar datos de cuentas y luego actualizar el servicio virtual para utilizarlos. Si necesita probar escenarios con saldos negativos o un gran número de cuentas, puede modificar directamente el conjunto de datos virtuales. Esto le permite:

  • Genere datos realistas: Capture y reutilice datos que reflejen escenarios del mundo real.
  • Datos de control: Realice cambios sobre la marcha en los datos de prueba, como ajustar los saldos de las cuentas, sin afectar a otros equipos.
  • Administrar cambios de estado: Asegúrese de que sus datos virtuales reflejen los estados de aplicación necesarios para las pruebas.
  • Desacoplar datos: Modifique conjuntos de datos de forma independiente sin afectar otras partes del sistema o servicios virtuales.

Este enfoque se integra perfectamente con los procesos CI/CD, lo que permite la implementación y la gestión automatizadas de entornos de prueba y datos.

Cuándo utilizar datos de prueba virtuales

Los datos de pruebas virtuales son particularmente beneficiosos para:

  • Equipos ágiles: Acelera los ciclos de prueba al simplificar la gestión de datos de prueba y reducir la dependencia de los administradores de bases de datos (DBA) y la disponibilidad de datos de producción. Los equipos pueden realizar pruebas dentro del mismo sprint.
  • Entornos complejos: Cuando su aplicación interactúa con múltiples servicios y dependencias, la virtualización de estos componentes y sus datos proporciona un entorno de prueba estable y controlado.
  • Pruebas de rendimiento: Puede generar fácilmente grandes volúmenes de datos únicos, como credenciales de usuario, necesarios para pruebas de rendimiento.

Adoptando estrategias de datos de prueba virtuales, Las organizaciones pueden reducir significativamente los sobrecostos de los proyectos, mejorar la cobertura de las pruebas y evitar que los defectos lleguen a producción. Las herramientas que respaldan este enfoque suelen ser de bajo código, escalables y se integran bien con las prácticas de DevOps, lo que hace que la gestión de datos de pruebas sea más eficiente y rentable.