lunes, 16 de abril de 2012

Criterio de calidad de las pruebas de prestaciones. Una aproximación

Introducción

Como bien sabe todo aquel que haya presentado en alguna ocasión un informe de pruebas de rendimiento, presenta de manera periódica la típica frase del solicitante de las pruebas:

“Si, el informe muy bien, los gráficos muy bonitos y demás, pero ¿cómo va la aplicación:mejor o peor ,bien o mal…?”

Habitualmente nuestra respuesta se basa en disponer de datos previos al lanzamiento de las pruebas, bien sea por criterios de rangos de rendimiento establecidos por los solicitantes de las pruebas (“se deben alcanzar las 300 transacciones por hora, con una concurrencia de 15 usuarios”) o si se trata de pruebas sobre aplicaciones con versiones en Producción, sacar datos de rendimiento históricos y extrapolarlos.
Sin embargo, muchas veces nos encontramos con la falta de este tipo de información y es cuando surge la pregunta ¿va bien o mal?
Proponemos un criterio que mezcle la subjetividad con los datos que podemos obtener de la prueba. El dato en el que nos podemos basar es el del tiempo en vacio.

Desarrollando el modelo.
Recordemos que esta métrica indica lo que tardaría un usuario sin concurrencia en realizar una navegación o ciclo de prueba. Si tomamos ese dato podemos extrapolarlo al número de operaciones que se pueden ejecutar a la hora. Una manera de establecer el criterio de calidad sería

“Si el usuario tarda 10 segundos en realizar una navegación completa, hará 360 transacciones a la hora”.
Si incrementamos el número de “N” usuarios virtuales/unidades de inyección de carga a lo largo de la prueba, en el punto de saturación debería hacer



Rendimiento teórico=N * transacciones/hora usuario virtual en vacio

Tabla 1. Fórmula del rendimiento máximo teórico del modelo

Como realmente lo que se obtiene en el punto de saturación son “M” transacciones por hora, un criterio de calidad fácil sería


Rendimiento real M / Rendimiento teórico N
Tabla 2. Cálculo del porcentaje de calidad real respecto del máximo teórico

expresado en forma de porcentaje
.



Cuanto más cercano al 1 (o al 100%) mayor calidad de rendimiento. Realmente es un
criterio de escalado.
Ciertamente, esto es muy simplista, por lo que podría mezclarse con otra ecuación



Calidad Tiempo= Tvacio * (1- 1/Usuarios) / Tsaturación

Tabla 3. Cálculo de calidad del tiempo del modelo

Aplicación del modelo
A continuación, mostramos los tiempos en vacio de varios ciclos de prueba

CicloCicTlo
Tiempo de respuesta (segundos).
1
7
2
16
3
24
4
21
5
27
6
0,24
Tabla 4. Valores tiempo de respuesta vacio de prueba

En la prueba sobre estos ciclos, los valores alcanzados en el punto de saturación fueron los que se incluyen en la tabla siguiente





Ciclo



Rendimiento
Transacciones/hora



Tiempo respuesta(segundos)



Usuarios punto
saturación


1


7320


24,41


50


2


4184


44,21


50


3


2737


46


50


4


2366


40,75


35


5


1256


35,8


17


6


246.105


1,69


210

Tabla 5. Rendimientos ,tiempos de respuesta y concurrencia en saturación


Calculo de escalabilidad para los usuarios de cada ciclo

Aplicando las fórmulas definidas en las tablas 2 y 3


Ciclo 1



3600/7 = 515 transacciones/hora por usuario
Valores alcanzados en prueba de estrés 7320 transacciones/hora con 50 usuarios en el
punto de saturación.
Teóricamente estos valores corresponderían a los alcanzados con 15 usuarios (7320/515 )
1-1/50/15=1-0,30=70% escalado


Ciclo 2



3600/16 = 225 trans/hora por usuarios
Estrés:4184 trans/hora con 50 usuarios 4184/225 = 18,59 ; 19 usuarios teóricos
1 -1/50/19 = 1 –0,38 = 62% escalado


Ciclo 3



3600/24 =150 trans/hora por usuario
Estrés : 2366 trans/hora con 50 usuarios = 15,77 -> 16 usuarios teóricos
1 -1/50/16 = 1- 0,32 =68% escalado


Ciclo 4



3600/21 = 171 trans/hora usuario
Estrés 2737 trans/hora con 35 usuarios 2737/171 16 usuarios teóricos
1-1/35/16 = 1-0,54 =46% escalado


Ciclo 5



3600/27 =133 trans/hora por usuario
Estrés 1256 trans/hora con 17 usuarios. 1256/133 =9,44 usuarios teóricos ( 9 usuarios redondeando)
1-1/17/9=1-0,52 =48% escalado


Ciclo 6



3600/0,24 = 15000
transacciones/hora usuario perfecto
Estrés : 246.105 transacciones/hora con
210 usuarios . 246.105/15000 = 16 usuarios teóricos
1-1/210/16 = 1 -0,07=93% escalabilidad


Tabla 6. Cálculos de aplicación modelo
El concepto de “escalado” lo interpretamos como la aproximación del número máximo de usuarios que admitiría la aplicación en el caso de no tener degradación del tiempo de respuesta respecto al vacio.


Ciclo


Grado
de escalabilidad


1


70%


2


62%


3


68%


4


46%


5


48%


6


93%


Tabla 7. Grado de escalabilidad de cada ciclo de prueba
La interpretación que le damos a estos valores es que el ciclo 6 es el que alcanza una mayor adecuación al modelo teórico de concurrencia de usuarios , mientras que el ciclo 4
alcanza valores inferiores a la mitad teórica.

Análisis de los tiempos

Aplicando el estudio y considerando la degradación teórica , alcanzamos los siguientes valores que resumimos en forma de tabla


Ciclo


Tiempo resp vacio


usuarios punto
saturación


Tiempo respuesta punto
saturacion


Degradado Calidad
tiempo


1


7


50


24,41


28,10%


2


16


50


44,21


35,47%


3


24


50


46


51,13%


4


21


35


40,75


50,06%


5


27


17


35,8


70,98%


6


0,24


210


1,69


14,13%


Tabla 8. Rendimientos y calidad


Como colofón, podemos asignar un valor global a la
aplicación , bien en base a los pesos asignados a cada ciclo ( % del total de la ejecución teórica) o de su criticidad de cara al negocio.

Si todos los ciclos tuvieran el mismo valor , la aplicación tendría un 41,65% de degradado del
tiempo de respuesta. Es decir que la concurrencia de usuarios incrementa los tiempos de respuesta un 41,65%. Si queremos verlo desde un punto de vista por ciclo, podemos ver cómo el ciclo 6 sólo sufre un 14% de degradación en el tiempo de respuesta con una concurrencia de 210 usuarios.
Como bien indicamos, esto es sólo un modelo teórico. Podemos incluir más variables a tener en cuenta. Por ejemplo ,porcentaje de transacciones fallidas, número de errores encontrados en la prueba, consumo de recursos..etc. Pero , como bien indicamos, esto es sólo un comienzo para que el lector de sus primeros pasos en la definición de criterios propios de calidad.

3 comentarios:

  1. Muy interesante el artículo, Sr. D Antonio!

    ResponderEliminar
  2. Carlos me hizo favor de compartirme este blog.
    Digno de todos unos Masters, mi respeto para ustedes señores.

    ResponderEliminar
  3. Muchas gracias por los inmerecidos elogios.Seguiremos intentando hacer llegar cosas interesantes desde esta ventanita al mundo. Saludos a ambos

    ResponderEliminar