Al terminar con la tarea de realizar el listado de casos de prueba, comienza una nueva odisea. Poder tener en tiempo y forma el set de datos necesario para poder ejecutar toda la batería planificada.

Registros específicos que solo algunos recursos saben generar, alta dependencia de gerencias con otras prioridades, cantidad limitada o de calidad objetable en los ambientes disponibles… Son problemas con los cuales el encargado debe hacer uso de todas sus habilidades blandas con la organización para llevar el objetivo de la certificación a buen puerto.

Esta misma problemática se aumenta en el momento de que el QA pasa a un modelo ágil de gestión en donde los calendarios de entregas son más acotados. Y la necesidad de esta información ya no es semanal o mensual, si no que pasa a ser un tema del día a día.

Todo parece tener solución

Todo este tiempo gastado en actividades que no se relacionan directamente con las pruebas del software terminan afectando la eficiencia y la eficacia en la comprobación.

La automatización de casos de prueba como una práctica que vaya en ayuda de mejorar estos indicadores no está ajena a los mismos problemas. El generar scripts automatizados que puedan realizar secuencias funcionales pero cuyo inicio requiera datos que no se obtengan de manera fácil o automática terminará con una solución parcial. Con la cual probablemente no obtengamos todos los beneficios que en un inicio planteamos a la organización como retorno a la inversión realizada.

Como una forma de ir abordando esta problemática surge TDM (Test Data Management). Incluye prácticas y lineamientos que permiten ir mejorando el tiempo en que podemos obtener la cantidad y calidad de datos que nuestra organización necesita, mejorando así la eficiencia en los productos a desarrollar.

Dentro de las prácticas y/o lineamientos propuestos tenemos:

  • Analizar los datos requeridos profundamente, e ir definiendo set de datos que puedan ser ocupados por más de un caso de prueba.
  • Identificar y proteger datos sensibles o crear datos artificiales.
  • Priorizar qué información es más importante procesar y entregar.
  • Identificar las reglas del de negocio que sea necesario implementar para generar la información.
  • Implementar extracción de datos productivos de forma automatizada.
  • Tener un repositorio central donde se puedan archivar y versionar los datos, donde podamos encontrar todos los tipos de datos para diferentes tipos de pruebas.

Casos de éxito

Con respecto al éxito en pruebas automatizadas, un análisis realizado por DevOps Research and Assessment indica que los equipos con mejor resultado manejan los siguientes principios básicos:

  • Existen datos de prueba adecuados y disponibles para ejecutar paquetes de prueba automatizados completos.
  • Los datos de prueba para paquetes de prueba automatizados se pueden adquirir según demanda.
  • Los datos de prueba no limitan las pruebas automatizadas que los equipos pueden ejecutar.

Como en todas las áreas de la tecnología, hay softwares pagos que ofrecen ayudar con esta problemática. Así como también es posible utilizar tecnologías libres para lograr los mismos resultados.

Phyton, el favorito de todos

Según el índice TIOBE (The Importance of Being Earnest), Python ocupa el tercer lugar dentro de los lenguajes de programación más utilizados en el transcurso de este año.

Python tiene entre sus grandes ventajas el ser un lenguaje libre, multiplataforma y multiparadigma. Además, permite realizar casi cualquier tipo de solución y cuenta con una gran cantidad de frameworks de gran calidad que pueden resolver lo que necesites rápidamente.

Para ayudarnos con el manejo de la información podemos usar pandas. El cual nos permitirá leer datos de variados tipos de fuentes, tabularlos o administrarlos (dataframe) y cargarlos a otros tipos igualmente variados.

Nos permite generar subgrupos de datos desde la tabulación lo que permite abstraernos de la fuente de donde obtuvimos el dato. También habilita la generación de gráficas a partir de los datos cargados o crear nuevas columnas a partir de existentes de forma simple.

Además, es posible generar datos agrupados, vistas, combinar tablas y generar series de datos, entre otras funcionalidades que permite el manejo acabado de estos.

Herramientas que ayudan

Para enmascarar datos existe faker, que permite inventar nuevos datos de tipos distintos, nombres, direcciones, números de tarjetas de créditos, entre una larga lista.

Otra gran ayuda puede darla fogger, con varias formas de enmascarar la información.

Para la persistencia de información, una forma simple de guardar los sets de datos es usando bases de datos NoSQL.  Estas permiten tener la información completa en un solo registro, sin necesidad de relacionar tablas para lograr la información completa. Una de las más comunes es MongoDB, la conexión con Python, en 5 líneas con pymongo.

Ejecutar nuestros scripts con Python en algún sistema de integración continua como Jenkins, es una actividad más bien simple. También permitirá calendarizar cargas o ejecutar requerimientos a demanda.

Parte de una gestión exitosa está en poder generar indicadores que nos indiquen el avance (o retroceso) de nuestros esfuerzos en la administración de datos de prueba. Pueden ser:

  • Cantidad de Casos de prueba creados vs Cantidad de casos de prueba con datos disponibles al comienzo de la certificación.
  • Cantidad de veces por unidad de tiempo que se accede a un set de datos automatizado, y la periodicidad de la actualización de los mismos.
  • Cantidad de Casos Automatizados vs Cantidad de casos Automatizados que no necesitan datos externos para poder ser ejecutados.
  • Adicionalmente se puede medir la percepción del equipo (encuestas), preguntando si tienen la información para realizar su trabajo o si lo perciben como una limitación.

Hoy desde Practia contamos con centros de calidad para favorecer el time-to-market requerido por los consumidores. También tenemos centros de delivery regionales que aseguran tarifas altamente competitivas y adaptación de metodologías a modelos ágiles o híbridos. Además de partnerships con los más altos referentes en automatización en el mundo, asegurando soluciones de alta efectividad en testing, virtualización en la nube e innovación para incorporar IA y computación cognitiva en este proceso de asegurar la calidad en las soluciones que moldearán nuestro futuro.

¿Te gustaría incorporar o mejorar estos temas en tu organización? Contáctanos haciendo click aquí  y conoce más sobre nosotros en nuestras redes LinkedIn y Twitter.