¿Qué es un escenario de prueba?

escenario

¿Qué es un escenario de prueba?

Un escenario de prueba es la representación de uno o más flujos de negocio o flujos críticos que se ejecutarán de forma concurrente sobre la infraestructura objetivo por uno o más usuarios virtuales. Cuando es un solo flujo, este será ejecutado de igual forma para todos los usuarios virtuales, pero cuando se trata de un número mayor de flujos, se deberá generar un modelo de carga con la finalidad de realizar la prueba lo más acercado a la realidad como sea posible.

¿Qué es un flujo de negocio o flujo crítico?

El flujo de negocio o flujo crítico consta una o más transacciones de negocio o transacciones. Los flujos de negocio también son conocidos como procesos de negocio, de igual forma los flujos críticos también se les conoce como procesos críticos. Para evitar confusiones debido a la gran cantidad de parónimos, de aquí en adelante nos referiremos a ellos como flujo y/o transacción.

¿Qué es un modelo de carga?

El modelo de carga es la distribución por medio de porcentajes o número de iteraciones que los usuarios virtuales ejecutarán para cada uno de los flujos. Supongamos que tenemos un aplicativo web para una aerolínea con los siguientes flujos:

  • Búsqueda de vuelo
  • Compra de vuelo
  • Consulta de itinerario

Si no tuviéramos un modelo de carga, lo más probable sería que se distribuyan los porcentajes de manera equitativa para los tres flujos, pero al profundizar en el aplicativo y realizar algunas tareas de análisis sobre las bitácoras, ajustamos el modelo a la siguiente distribución:

  • Búsqueda de vuelo - 70%
  • Compra de vuelo - 15%
  • Consulta de itinerario - 15%

De esta manera estaríamos adecuando el modelo de carga para que la ejecución del escenario sea lo más cercano posible a lo que experimenta nuestro aplicativo en producción.

¿Qué es una transacción?

Es la representación de uno o más casos de prueba. Aquí es dónde podemos ligar el mundo funcional con el no-funcional, dado que los casos de prueba son un entregable en funcional y nosotros podemos utilizarlos para generar las transacciones. Por ejemplo, para realizar un pago de tarjeta de crédito se necesitan los múltiples casos de prueba para reproducir la llegada, autenticación, selección de menú, selección de cuenta(s), llenado de formularios y finalmente el envío del pago. Aquí podríamos suponer que cada caso de prueba podría generar una transacción, sin embargo este proceso requiere de un análisis para evaluar si existen ramificaciones que pudiéramos encapsular.

También podemos definir a la transacción como la agrupación de una o más solicitudes, estás solicitudes pudieran ser de tipo HTTP.

escenario-transaccion

Conclusión

Es recomendable utilizar los casos de prueba para generar las transacciones, las cuales a su vez nos ayudarán a producir los flujos. El modelo de carga define la distribución de los usuarios virtuales que ejecutarán cada flujo en el escenario de prueba. Cabe mencionar que los casos de prueba pueden llegar a tener variantes dado el tipo de dato utilizado, pero el resultado debería ser el mismo. Si el resultado no es el mismo corremos el riesgo de no etiquetar correctamente a las transacciones y medir de forma incorrecta los tiempos de respuesta.

-Antonio