La prueba de escalabilidad es un tipo de prueba no funcional en la que se prueba el rendimiento de una aplicación de software, un sistema, una red o un proceso en términos de su capacidad para aumentar o reducir el número de requests de carga del usuario u otros atributos de rendimiento similares. Puede llevarse a cabo a nivel de hardware, software o base de datos. Las pruebas de escalabilidad se definen como la capacidad de una red, sistema, aplicación, producto o proceso para realizar la función correctamente cuando se realizan cambios en el tamaño o el volumen del sistema para satisfacer una necesidad creciente. Garantiza que un producto de software pueda administrar el aumento programado en el tráfico de usuarios, el volumen de datos, la frecuencia de conteo de transacciones y muchas otras cosas. Pone a prueba la capacidad del sistema, procesos o bases de datos para satisfacer una necesidad creciente.
La prueba de escalabilidad es para medir en qué punto el producto de software o el sistema deja de escalar e identificar la razón detrás de esto. Los parámetros utilizados para esta prueba difieren de una aplicación a otra. Por ejemplo, la prueba de escalabilidad de una página web depende de la cantidad de usuarios, el uso de la CPU, el uso de la red, mientras que la prueba de escalabilidad de un servidor web depende de la cantidad de requests procesadas.
Objetivo de las pruebas de escalabilidad:
El objetivo de las pruebas de escalabilidad es:
- Para determinar cómo se escala la aplicación con el aumento de la carga de trabajo.
- Determinar el límite de usuarios para el producto de software.
- Para determinar la degradación del lado del cliente y la experiencia del usuario final bajo carga.
- Para determinar la solidez y la degradación del lado del servidor.
Atributos de prueba de escalabilidad:
- Tiempo de respuesta:
El tiempo de respuesta es el tiempo consumido entre la solicitud del usuario y la respuesta de la aplicación. El tiempo de respuesta puede aumentar o disminuir en función de la carga de diferentes usuarios en la aplicación. Básicamente, el tiempo de respuesta de una aplicación disminuye a medida que aumenta la carga de usuarios. La aplicación que tiene el menor tiempo de respuesta se considera la aplicación de mayor rendimiento. - Rendimiento:
el rendimiento es la medida del número de requests procesadas en una unidad de tiempo por la aplicación. Difiere de una aplicación a otra, ya que en la aplicación web se mide en la cantidad de requests de usuario procesadas en una unidad de tiempo, mientras que en la aplicación de base de datos se mide en la cantidad de consultas procesadas en una unidad de tiempo. - Medición del rendimiento con el número de usuarios:
según el tipo de aplicación, siempre se prueba el número de usuarios que puede admitir sin que se produzca una avería o una situación de espera ocupada. - Carga de umbral: la carga
de umbral es la cantidad de requests o transacciones que la aplicación puede procesar con el rendimiento deseado. - Uso de la CPU:
el uso de la CPU es la medida de la utilización de la CPU mientras se ejecutan las instrucciones del código de la aplicación. Básicamente se mide en términos de la unidad Megahertz . - Uso de la memoria:
el uso de la memoria es la medida de la memoria consumida para realizar una tarea por parte de una aplicación. Básicamente se mide en términos de bytes unitarios . - Uso de la red:
el uso de la red es la medida del ancho de banda consumido por una aplicación bajo prueba. Se mide en términos de bytes recibidos por segundo, tramas recibidas por segundo, segmentos recibidos y enviados por segundo, etc.
Pasos involucrados en las pruebas de escalabilidad: Los
siguientes son los pasos involucrados en las pruebas de escalabilidad:
- Defina un proceso que sea repetible para ejecutar la prueba de escalabilidad.
- Determinar los criterios para la prueba de escalabilidad.
- Determinar las herramientas de software necesarias para llevar a cabo la prueba.
- Establezca el entorno de prueba y configure el hardware necesario para ejecutar la prueba de escalabilidad.
- Cree y verifique el guión visual.
- Cree y verifique los escenarios de prueba de carga.
- Ejecute la prueba.
- Evalúa el resultado.
- Generar informe requerido.