miércoles, 27 de abril de 2016

Tipos de Pruebas de Performance

Existen distintos tipos de pruebas de performance, y hemos visto últimamente por ahí algunos nombres que a veces son conocidos, a veces son estándares o normalmente nombrados en el ambiente del testing, y hay muchos conceptos que surgen por los nombres que se les da en ciertas herramientas.


Queremos nombrar algunos de ellos (los más comunes) y destacar sus diferencias:

Load test (prueba de carga): El objetivo es simular el uso real del sistema. Para esto es necesario entonces hacer un análisis de la cantidad de usuarios que accederá y qué operaciones se ejecutarán. 
Prueba de carga de un puente.

Stress test (prueba de estrés): El objetivo es encontrar el punto de quiebre del sistema. Entonces, se ejecutarán las operaciones más accedidas (típicamente) en forma incremental en cuanto a la cantidad de usuarios, hasta que el sistema caiga. De esta forma podremos analizar hasta qué cantidad de usuarios es capaz de soportar el sistema con la infraestructura en la que está instalado, y ver cuánto cuesta recuperar el funcionamiento normal luego de una caída. 
Prueba de estrés

Soak test / endurance test (prueba de resistencia): Aquí el objetivo es probar por períodos más prolongados de tiempo. De esta forma intentamos encontrar otro tipo de problemas (esos que se manifiestan luego de cierta acumulación del problema, tal como un memory leak) y analizar cómo se comporta el sistema luego de estar en funcionamiento durante un tiempo. 

Throttle test: La idea es simular la carga limitando la velocidad de conexión de los usuarios virtuales (de todos o solo de un grupo) para analizar de esa forma cómo serán los tiempos de respuesta de esos usuarios que se conectan por redes de menor velocidad (3G, en zonas alejadas, a través de internet, etc.). Para esto se suelen usar speed simulators o traffic shapers, aunque algunas herramientas traen esta funcionalidad incorporada también. 

Peak test (pruebas de picos): El objetivo es analizar el comportamiento del sistema cuando este es expuesto a picos de intensidad mezclados con carga normal, viendo cómo se recompone luego de esa carga mayor. Este tipo de situaciones se dan en la realidad, por lo cual también es interesante analizar cómo se comporta el sistema ante estas situaciones. 

Scalability test (pruebas de escalabilidad): El objetivo es analizar cómo escala nuestro sistema. Por ejemplo, ver cuántos usuarios más podemos soportar si agregamos otro servidor de aplicaciones, o cuánto mejoran los tiempos si agregamos más CPU al servidor de base de datos. 

La siguiente figura muestra una forma de representar algunos de estos tests indicando cómo se vería la gráfica de usuarios virtuales activos a lo largo del tiempo de prueba.
 
 
 
Fuente: blog.abstracta.com.uy

No hay comentarios:

Publicar un comentario