¿Cuál es la diferencia entre las pruebas de carga y de estrés?
¿Cuál es la diferencia entre las pruebas de carga y de estrés?
Respuestas:
Wikipedia sobre pruebas de carga (negrita es mía):
[...] Normalmente se realiza una prueba de carga para comprender el comportamiento del sistema bajo una carga esperada específica . Esta carga puede ser el número concurrente esperado de usuarios en la aplicación que realizan un número específico de transacciones dentro de la duración establecida. Esta prueba proporcionará los tiempos de respuesta de todas las transacciones comerciales críticas importantes. [...]
y en las pruebas de estrés :
comprender los límites superiores de capacidad dentro del sistema. Este tipo de prueba se realiza para determinar la solidez del sistema en términos de carga extrema y ayuda a los administradores de aplicaciones a determinar si el sistema funcionará lo suficiente si la carga actual supera el máximo esperado .
Entonces, la conclusión es: si está probando una carga normal esperada (sabe que el sistema será utilizado por hasta 100 usuarios a la vez), esto es una prueba de carga . Pero cuando desea determinar cómo se comporta el sistema bajo una carga extrema (DoS, efecto Slashdot ) y cuando se rompe, esto es una prueba de estrés .
Los términos "pruebas de estrés" y "pruebas de carga" a menudo se usan indistintamente por los ingenieros de pruebas de software, pero en realidad son bastante diferentes.
Pruebas de estrés
En las pruebas de estrés, intentamos romper el sistema bajo prueba abrumando sus recursos o quitándole recursos (en cuyo caso a veces se le llama prueba negativa). El objetivo principal detrás de esta locura es asegurarse de que el sistema falle y se recupere correctamente; esta cualidad se conoce como recuperabilidad. O La prueba de estrés es el proceso de someter su programa / sistema bajo prueba (SUT) a recursos reducidos y luego examinar el comportamiento del SUT mediante la ejecución de pruebas funcionales estándar. La idea de esto es exponer problemas que no aparecen en condiciones normales. Por ejemplo, un programa de múltiples subprocesos puede funcionar bien en condiciones normales, pero en condiciones de disponibilidad reducida de CPU, los problemas de tiempo serán diferentes y el SUT se bloqueará. Los tipos más comunes de recursos del sistema que se reducen en las pruebas de esfuerzo son la CPU, la memoria interna y el espacio en disco externo. Al realizar pruebas de estrés, es común llamar a las herramientas que reducen estos tres recursos EatCPU, EatMem y EatDisk respectivamente.
Mientras que, por otro lado, pruebas de carga
En el caso de la prueba de carga La prueba de carga es el proceso de someter su SUT a cargas pesadas, generalmente mediante la simulación de múltiples usuarios (usando Load runner), donde "usuarios" pueden significar usuarios humanos o usuarios virtuales / programáticos. El ejemplo más común de prueba de carga implica someter una aplicación basada en web o en red a accesos simultáneos de miles de usuarios. Esto generalmente se logra mediante un programa que simula a los usuarios. Hay dos propósitos principales de las pruebas de carga: determinar las características de desempeño del SUT y determinar si el SUT se "rompe" con gracia o no.
En el caso de un sitio web, usaría pruebas de carga para determinar cuántos usuarios puede manejar su sistema y aún tener un rendimiento adecuado, y para determinar qué sucede con una carga extrema: ¿generará el sitio web un mensaje de "demasiado ocupado" para usuarios, o el servidor Web colapsará en llamas?
Prueba de carga: la prueba de carga está destinada a probar el sistema aumentando constante y constantemente la carga en el sistema hasta el momento en que alcanza el límite del umbral.
Ejemplo Por ejemplo, para comprobar la funcionalidad de correo electrónico de una aplicación, podría estar inundada con 1000 usuarios a la vez. Ahora, 1000 usuarios pueden activar las transacciones de correo electrónico (leer, enviar, eliminar, reenviar, responder) de muchas formas diferentes. Si tomamos una transacción por usuario por hora, serían 1000 transacciones por hora. Al simular 10 transacciones / usuario, podríamos probar la carga del servidor de correo electrónico al ocuparlo con 10000 transacciones / hora.
Pruebas de estrés: en las pruebas de estrés, se llevan a cabo varias actividades para sobrecargar los recursos existentes con trabajos en exceso en un intento de averiar el sistema.
Ejemplo: Como ejemplo, un procesador de texto como Writer1.1.0 de OpenOffice.org se utiliza en el desarrollo de cartas, presentaciones, hojas de cálculo, etc. El propósito de nuestras pruebas de estrés es cargarlo con el exceso de caracteres.
Para hacer esto, pegaremos repetidamente una línea de datos, hasta que alcance su límite límite para manejar un gran volumen de texto. Tan pronto como el tamaño de los caracteres alcance los 65.535 caracteres, simplemente se negará a aceptar más datos. El resultado de la prueba de estrés en Writer 1.1.0 produce el resultado de que no se bloquea bajo el estrés y que maneja la situación con elegancia, lo que garantiza que la aplicación funcione correctamente incluso en condiciones de estrés rigurosas.
-> Probar la aplicación con el número máximo de usuarios y entradas se define como prueba de carga . Si bien probar la aplicación con más del número máximo de usuarios y entradas se define como prueba de esfuerzo .
-> En las pruebas de carga medimos el rendimiento del sistema en función de un volumen de usuarios. Durante las pruebas de estrés, medimos el punto de ruptura de un sistema.
-> Load Testing está probando la aplicación para requisitos de carga determinados que pueden incluir cualquiera de los siguientes criterios:
.Total number of users.
.Response Time
.Through Put
Algunos parámetros para comprobar el estado de los servidores / aplicación.
-> Mientras la prueba de estrés está probando la aplicación para una carga inesperada. Incluye
.Vusers
.Think-Time
Ejemplo:
Si una aplicación está diseñada para 500 usuarios, para las pruebas de carga verificamos hasta 500 usuarios y para las pruebas de estrés verificamos más de 500.
Prueba de carga = poner una cantidad específica de carga en el servidor durante cierto tiempo. 100 usuarios simultáneos durante 10 minutos. Asegure la estabilidad del software. Prueba de estrés = aumentar la cantidad de carga de manera constante hasta que el software falla. 10 usuarios simultáneos que aumentan cada 2 minutos hasta que el servidor falla.
Para hacer una comparación con el levantamiento de pesas: "maximiza" su peso para ver lo que puede hacer durante 1 repetición (prueba de esfuerzo) y luego, en los entrenamientos regulares, hace el 85% de su valor máximo para 3 series de 10 repeticiones (prueba de carga)
Prueba de carga : - La prueba de carga está destinada a probar el sistema aumentando constante y constantemente la carga en el sistema hasta el momento en que alcanza el límite del umbral.
Pruebas de estrés : - En las pruebas de estrés, se llevan a cabo diversas actividades para sobrecargar los recursos existentes con trabajos en exceso en un intento de averiar el sistema.
La diferencia básica es la siguiente
Pruebas de carga: gran cantidad de usuarios Pruebas de estrés: demasiados usuarios, demasiados datos, muy poco tiempo y muy poco espacio
Carga: prueba S / W a carga máxima. Estrés: más allá de la carga de S / W o para determinar el punto de ruptura de s / w.