¿Qué son las pruebas de ESTRÉS en las pruebas de software?
⚡ Resumen inteligente
Las pruebas de estrés llevan una aplicación más allá de sus límites operativos normales para encontrar el punto de ruptura, confirmar que los fallos se gestionan correctamente y demostrar que el sistema se recupera sin problemas una vez que se elimina la carga extrema.
¿Qué son las pruebas de estrés?
Pruebas de estrés Las pruebas de estrés son un tipo de prueba de software que verifica la estabilidad y confiabilidad de una aplicación. Su objetivo es medir la robustez y la capacidad de manejo de errores del software bajo cargas extremadamente pesadas, y garantizar que no falle en situaciones críticas. Se realizan pruebas que van más allá de los límites normales de operación y se evalúa el comportamiento del software en condiciones extremas.
En las pruebas de estrés, la aplicación bajo prueba (AUT) se somete a una carga excesiva durante un breve periodo de tiempo para determinar su capacidad de resistencia. El uso más común de las pruebas de estrés es determinar el límite de fallos del sistema, el software o el hardware. También se comprueba si el sistema gestiona eficazmente los errores una vez superado dicho límite.
In Ingeniería de SoftwareLas pruebas de estrés a menudo se enumeran junto con... Pruebas de resistencia, pero ambas difieren: las pruebas de estrés aplican una carga anormalmente alta en un breve lapso para encontrar el punto de ruptura, mientras que las pruebas de resistencia (o de inmersión) mantienen una carga moderada durante horas para revelar la degradación gradual.
La captura de pantalla que aparece a continuación muestra un gran bloque de datos que se copia desde una página web.
La aplicación bajo prueba se somete a una prueba de estrés al copiar 5 GB de datos del sitio web y pegarlos en el Bloc de notas. El Bloc de notas se ve entonces sobrecargado y muestra el mensaje de error "No responde", tal como se muestra en la siguiente captura de pantalla.
El mismo principio se aplica directamente a los sistemas del lado del servidor.
Necesidad de pruebas de estrés
Consideremos los siguientes ejemplos en tiempo real donde el uso de las pruebas de estrés se hace evidente:
- Durante la época del festival, una tienda en líneaping El sitio web puede experimentar un aumento repentino del tráfico o cuando anuncia una oferta.
- Cuando se menciona un blog en un periódico importante, su tráfico aumenta repentinamente.
Es imprescindible realizar pruebas de estrés para gestionar estos picos de tráfico anormales. No poder gestionar este tráfico repentino puede resultar en pérdidas de ingresos y daños a la reputación.
Las pruebas de estrés también son extremadamente valiosas por las siguientes razones:
- Comprueba si el sistema funciona en condiciones anormales.
- Confirma que se muestra un mensaje de error apropiado mientras el sistema está bajo presión.
- Un fallo del sistema en condiciones extremas podría ocasionar enormes pérdidas de ingresos.
- Es mejor estar preparado para condiciones extremas realizando pruebas de resistencia con antelación.
La siguiente sección detalla lo que debe demostrar una prueba de estrés exitosa.
Objetivos de las pruebas de estrés
El objetivo de las pruebas de estrés es analizar el comportamiento del sistema tras un fallo. Para que las pruebas de estrés sean exitosas, el sistema debe mostrar un mensaje de error apropiado mientras se encuentra en condiciones extremas.
Para realizar pruebas de estrés, a veces se utilizan conjuntos de datos masivos, y estos datos pueden perderse durante la falla del sistema. Los evaluadores deben asegurarse de que estos datos relacionados con la seguridad no se pierdan durante las pruebas de estrés.
El objetivo principal de las pruebas de estrés es asegurar que el sistema se recupere después de una falla, una propiedad denominada recuperabilidad. Pruebas de recuperación Luego verifica el procedimiento de restauración en detalle.
Pruebas de carga frente a pruebas de estrés
Ambas técnicas pertenecen a la Test de rendimiento son familiares, por lo que es fácil confundirlos. El siguiente diagrama compara los dos perfiles de carga.
| Prueba de carga | Pruebas de estrés |
|---|---|
| Prueba de carga Prueba el comportamiento del sistema en condiciones normales de carga de trabajo; simula la carga de trabajo real prevista. | Las pruebas de estrés evalúan el comportamiento del sistema en condiciones extremas y se realizan hasta que el sistema falla. |
| Las pruebas de carga no dañan el sistema. | Las pruebas de estrés intentan deliberadamente quebrar el sistema saturándolo de datos o privándolo de recursos. |
Los perfiles relacionados incluyen: Prueba de picos (una explosión corta y repentina), Pruebas de volumen (grandes conjuntos de datos en lugar de muchos usuarios) y Pruebas de escalabilidad (margen de crecimiento).
Tipos de pruebas de estrés
A continuación se describen los tipos de pruebas de estrés, explicados uno por uno.
Pruebas de estrés distribuidas
En los sistemas distribuidos cliente-servidor, las pruebas se realizan en todos los clientes desde el servidor. La función del servidor de estrés es distribuir un conjunto de pruebas de estrés a todos los clientes de estrés y track el estado de cada cliente. Después de que un cliente se comunica con el servidor, este agrega el nombre del cliente y comienza a enviar datos para la prueba. La siguiente figura muestra cómo el servidor de pruebas de estrés llega a algunos clientes pero no a otros.
Mientras tanto, las máquinas cliente envían una señal, o latido, que confirma que siguen conectadas al servidor. Si el servidor no recibe ninguna señal de una máquina cliente, es necesario investigar dicha máquina para depurar el problema. En la figura, el servidor puede conectarse con dos clientes (Cliente 1 y Cliente 2), pero no puede enviar ni recibir señales de los Clientes 3 y 4.
Para estos escenarios de pruebas de estrés, la mejor opción es realizar una prueba durante la noche. Los grandes centros de datos necesitan un método más eficiente para determinar qué equipos han sufrido fallos por estrés que requieren investigación.
Pruebas de estrés de la aplicación
Estas pruebas se centran en encontrar defectos relacionados con el bloqueo y la retención de datos, problemas de red y cuellos de botella en el rendimiento de una única aplicación.
Pruebas de estrés transaccionales
Realiza pruebas de estrés en una o más transacciones entre dos o más aplicaciones. Se utiliza para ajustar y optimizar el sistema.
Pruebas de estrés sistémico
Se trata de una prueba de estrés integrada que puede ejecutarse en varios sistemas que comparten el mismo servidor. Se utiliza para detectar fallos en los que una aplicación bloquea los datos de otra.
Pruebas de estrés exploratorias
Este es el tipo de prueba de estrés que se utiliza para probar el sistema con parámetros o condiciones inusuales que es poco probable que se presenten en un escenario real. Se utiliza para encontrar defectos en situaciones inesperadas, tales como:
- Un gran número de usuarios iniciaron sesión al mismo tiempo.
- El antivirus se inicia simultáneamente en todos los equipos.
- Una base de datos se desconecta mientras se accede a ella desde un sitio web.
- Se está insertando un gran volumen de datos en la base de datos simultáneamente.
Independientemente de la variante que se aplique, la secuencia de ejecución permanece invariable.
¿Cómo hacer pruebas de estrés?
El proceso de pruebas de estrés se puede realizar en 5 pasos principales:
- Paso 1) Planificación de la prueba de estrés: Aquí se recopilan los datos del sistema, se analiza el sistema y se definen los objetivos de la prueba de estrés.
- Paso 2) Crear scripts de automatización: En esta fase, se crean los scripts de automatización de las pruebas de estrés y se generan los datos de prueba para los escenarios de estrés.
- Paso 3) Ejecución del script: En esta etapa, se ejecutan los scripts de automatización de las pruebas de estrés y se almacenan los resultados de dichas pruebas.
- Paso 4) Análisis de Resultados: En esta etapa, se analizan los resultados de la prueba de estrés y se identifican los cuellos de botella.
- Paso 5) Ajustes y optimización: En esta etapa, se ajusta el sistema, se modifican las configuraciones y se optimiza el código con el objetivo de alcanzar el nivel de referencia deseado.
Por último, se ejecuta todo el ciclo de nuevo para determinar si los ajustes han producido los resultados deseados. Por ejemplo, no es raro necesitar de 3 a 4 ciclos del proceso de prueba de estrés antes de alcanzar los objetivos de rendimiento, por lo que los scripts normalmente se mantienen junto con el regresión sucesivamente.
Herramientas recomendadas para pruebas de estrés
Las cuatro herramientas que se describen a continuación cubren la mayoría de las necesidades, desde suites empresariales hasta una opción gratuita de código abierto.
LoadRunner
LoadRunner es una herramienta de prueba de carga ampliamente utilizada, ahora vendida por OpenText en las ediciones Professional, Enterprise y Cloud después de pasar de HP a Micro Focus a OpenTextLos resultados de las pruebas de carga generados por LoadRunner se utilizan como referencia.
JMeter
Apache JMeter es una herramienta de prueba de código abierto. Es una herramienta puramente Java Aplicación para pruebas de estrés y rendimiento, y está diseñada para cubrir tipos de pruebas como carga, funcionales y de estrés. Versiones actuales 5.6.x de Apache JMeter exigir Java 8 o posterior, con Java 17 recomendados.
Probador de estrés
Esta herramienta proporciona un análisis exhaustivo del rendimiento de las aplicaciones web, presenta los resultados en formato gráfico y es fácil de usar. No se requiere programación de alto nivel, lo que mantiene el retorno de la inversión entractivo para equipos más pequeños.
NeoCarga
NeoCarga, ahora parte del Tricentis portafolio, es una herramienta popular para probar web y aplicaciones móvilesPuede simular miles de usuarios para evaluar el rendimiento de la aplicación bajo carga y analizar los tiempos de respuesta. Además, admite pruebas de rendimiento, carga y estrés integradas en la nube, y ofrece una buena escalabilidad.
En la guía se enumeran más opciones herramientas de prueba de rendimiento; sea cual sea la opción elegida, su resultado solo significa algo en relación con las métricas que se indican a continuación.
Métricas para pruebas de estrés
Las métricas ayudan a evaluar el rendimiento de un sistema y generalmente se estudian al final de la prueba de estrés. Las métricas más utilizadas se agrupan en tres familias.
Medición de la escalabilidad y el rendimiento
- Páginas por segundo: Mide cuántas páginas se han solicitado por segundo.
- rendimiento: Una métrica básica: tamaño de los datos de respuesta por segundo.
- Rondas: El número de veces que se han planificado escenarios de prueba en comparación con el número de veces que un cliente los ha ejecutado.
Respuesta de la aplicación
- Hora de golpe: Tiempo promedio para recuperar una imagen o una página.
- Tiempo hasta el primer byte: Tiempo que tarda en devolverse el primer byte de datos o información.
- Tiempo de página: Tiempo necesario para recuperar toda la información de una página.
Fallas
- Conexiones fallidas: Número de conexiones fallidas rechazadas por el cliente (señal débil).
- Rondas fallidas: Número de rondas que fallan.
- Resultados fallidos: Número de intentos fallidos del sistema (enlaces rotos o imágenes no visualizadas).
La sección final enumera las situaciones que con mayor frecuencia justifican una prueba de estrés.
Ejemplos de pruebas de estrés
Las pruebas de estrés se justifican siempre que se prevé que un evento genere un aumento del tráfico muy superior al nivel habitual diario:
- Un sitio web de comercio electrónico anuncia una venta especial por el festival.
- Un sitio web de noticias en el momento de un evento importante.
- Un organismo educativo que publica los resultados de los exámenes.
- Sitios de redes sociales, blogs y aplicaciones móviles durante un momento viral.
En cada caso, la prueba supervisa recursos como la memoria, el procesador y la red, comprueba que aparezcan los mensajes de error apropiados bajo estrés y confirma que el sistema vuelve a la normalidad posteriormente. Se ajusta a la ciclo de vida de las pruebas de software como una comprobación no funcional junto con Pruebas del sistema y el conjunto más amplio de tipos de pruebas de software.

.png)
.png)

