Las pruebas de rendimiento, conocidas como performance testing en inglés, son un tipo de pruebas de software no funcional que determinan cómo la estabilidad, la escalabilidad, la velocidad y la capacidad de rápida respuesta de un programa se mantienen bajo una determinada carga de trabajo. Estas pruebas conforman un paso clave para garantizar la calidad del software. Sin embargo, desafortunadamente a menudo se realizan como una idea de último momento, de forma aislada y luego de realizar las pruebas funcionales y, en la mayoría de los casos, después de que el código está listo para su lanzamiento.
Los objetivos de las pruebas de rendimiento incluyen evaluar el resultado de la aplicación, la velocidad de procesamiento, la velocidad de transferencia de datos, el uso del ancho de banda de la red, el número máximo de usuarios simultáneos, la utilización de la memoria, la eficiencia de la carga de trabajo y los tiempos de respuesta de los comandos.
Las organizaciones ejecutan pruebas de rendimiento por al menos una de las siguientes razones:
- Para determinar si la aplicación cumple con los requisitos de rendimiento (por ejemplo, el sistema debe manejar hasta 1000 usuarios simultáneos).
- Para localizar cuellos de botella informáticos dentro de una aplicación.
- Para establecer si los niveles de rendimiento declarados por un proveedor de software son realmente ciertos.
- Para comparar dos o más sistemas e identificar el que funciona mejor.
- Para medir la estabilidad en eventos de tráfico pico.
¿Cómo hacer pruebas de rendimiento?
Los pasos específicos de las pruebas de rendimiento variarán según la organización y la aplicación. Incluso, su ejecución depende de los indicadores de rendimiento (más información) que la empresa considere más importantes. Sin embargo, los objetivos generales de las pruebas de rendimiento son en gran medida los mismos en todos los ámbitos, por lo que hay un cierto flujo de trabajo que será la base de la mayor parte de las estrategias de pruebas funcionales.
Identificar el entorno de producción, el entorno de prueba y las herramientas de prueba a disposición son los primeros pasos en todos los casos. Aquí es importante documentar el hardware, el software, las especificaciones de infraestructura y las configuraciones tanto en entornos de prueba como de producción para garantizar la coherencia. Es posible que se realicen algunas pruebas de rendimiento en el entorno de producción, pero debe haber medidas de seguridad rigurosas que eviten que las pruebas interrumpan las operaciones de producción.
Definir criterios de rendimiento aceptables es clave en todo proyecto de testing de performance. Esto implica determinar las restricciones, los objetivos y los umbrales que definirán el éxito de la prueba. Los criterios principales se derivarán directamente de las especificaciones del proyecto, pero los testers deben estar adecuadamente facultados para establecer un conjunto más amplio de pruebas y puntos de referencia.
Asimismo, es importante desarrollar un plan de pruebas. Para eso, es necesario pensar en cuán ampliamente variará el uso y luego crear escenarios de prueba que se adapten a todos los casos de uso factibles. Con esos escenarios se diseñan las pruebas en consecuencia y se describen las métricas que deben capturarse.