En este artículo te indicamos cuándo es necesario hacer un performance test o pruebas de rendimiento.
Un performance test o prueba de rendimiento apunta a indagar sobre el comportamiento de una aplicación cuando se genera una alta demanda de uso. Es una situación muy común en aplicaciones corporativas, en soluciones de e-commerce, servicios en línea para la oferta de productos en fechas especiales.
El performance test consiste en someter una aplicación a distintas pruebas para determinar su comportamiento en circunstancias de carga extrema de trabajo.
El objetivo principal es determinar si la aplicación se comporta como se espera, principalmente cuando el volumen de trabajo es grande. No opera sobre posibles errores en la aplicación específicamente. Lo que busca es determinar el desempeño general del sistema y detectar cuellos de botella que puedan desestabilizar la aplicación y afectar la buena experiencia del usuario.
Durante el performance test se toman en cuenta diferentes indicadores como: nivel de respuesta, velocidad, escalabilidad y estabilidad, recursos consumidos, entre otros.
Para llevar a cabo un test de esta naturaleza, se simula de la manera más realista posible la aplicación, y se ejecuta de distintas maneras y en diferentes situaciones de uso. Por ejemplo, es ideal para determinar el comportamiento de una aplicación cuando ingresan en forma simultánea varios, cientos, miles de usuarios. Permite medir su rendimiento cuando se ejecutan algunas operaciones. Al finalizar las pruebas, se analizan todos los datos generados evaluando el desempeño general de la aplicación. En caso de encontrar anomalías comienza un profundo trabajo de investigación para detectar los problemas del sistema. Puede tratarse de aspectos referidos a la aplicación misma, el software de soporte como Bases de Datos, el sistema operativo, fallas en el hardware, como el servidor, servidores redundantes o la infraestructura de la red.
¿Quieres ahorrarte problemas?
Antes de lanzar una aplicación en producción es recomendable realizar un performance test para ajustar el sistema a su mejor desempeño. Si la aplicación se libera sin ser probada y presenta fallas en el desempeño, se pueden correr riesgos muy graves, los cuales estamos seguros prefieres evitar.
En definitiva, un mal desempeño en una aplicación, aunque sea una vez, resulta tener un usuario insatisfecho que no volverá más o hablará mal de su experiencia. Si esto lo traduce en una escala de interacciones simultáneas, los riesgos de perder son exponenciales.
En la oferta de servicios on line, el usuario espera respuesta inmediata, poderse conectar, obtener lo que quiere en el menor tiempo posible. Un mal desempeño del sistema implica perder visitas, clientes, ventas y credibilidad. En jornadas como el Cyberlunes, que se realiza tanto en Uruguay como en Colombia durante este mes, es primordial establecer la capacidad de carga en situaciones críticas, horas pico y acciones simultáneas, ya que pueden acceder en pocos días cientos de personas a un sitio web. En Colombia la jornada anterior gestionó más de un millón doscientas mil visitas concentradas en tan sólo dos días.
En los sistemas de gobierno electrónico hay aplicaciones que son estacionales como las que cobran impuestos, que tienen alta demanda en períodos concretos y la no disponibilidad puede implicar perder la recaudación y generar multas al ciudadano por pagos fuera de fecha. En un banco, si su sistema de web banking no está disponible puede generar daños a la reputación y pérdida de confianza en la institución.
Distintos tipos de performance test
Un performance test implica realizar varios tipos de pruebas específicas para conocer el comportamiento en distintas situaciones. Alguna de estas pruebas se describe a continuación.
Test de carga, en ese caso la carga de la aplicación se va incrementando progresivamente hasta cierto punto. Por ejemplo, se van incrementando la cantidad de usuarios que utilizan la aplicación o la cantidad de transacciones que se realizan simultáneamente.
Test de Stress, se prueba la estabilidad del sistema cuando los recursos de hardware son insuficientes como la CPU, memoria o el espacio en disco duro.
Test de volumen, en este caso se somete a la aplicación a grandes volúmenes de datos a procesar para validar la eficiencia y probar así el desempeño de la Base de Datos.
¿En qué oportunidades es necesario hacer un performance test?
Antes de lanzar al mercado una aplicación. También es oportuno realizarlo frente a cambios en la configuración de servidores o en la infraestructura de base software y hardware de la aplicación. Cuando se introducen servidores redundantes o sistemas de contingencia y frente a períodos donde se experimente una demanda fuera de lo común es recomendado hacer un performance test previo.
Midiendo el rendimiento, una prueba en acción
Uno de nuestros clientes estaba frente a un cambio importante de infraestructura donde se estaba agregando un nuevo servidor para migrar una aplicación que ya estaba en producción. El servidor nuevo estaba configurado de igual forma que el servidor actual y tenía las mismas características de hardware. Es decir, que a efectos prácticos eran iguales. Al comenzar las pruebas se simulaban unos 2500 usuarios conectados. El nuevo servidor se caía en 1600 usuarios consistentemente. Luego de un análisis profundo se detectó que en el nuevo servidor se generaba un log donde se registraban datos de las operaciones realizadas que llenaba su capacidad y hacía que la Base de Datos dejara de funcionar. Finalmente se aplicó un parche a la instalación de Base de Datos y todo funcionó correctamente.
Software Testing Bureau es una empresa especializada en pruebas de software y nuestra meta es que todo el software que se libere sea funcional, seguro y confiable. Contamos con más de veinte años de experiencia realizando pruebas de software para clientes de toda Latinoamérica.