En informática , las pruebas de estrés (a veces llamadas pruebas de tortura ) se pueden aplicar tanto al hardware como al software. Se utilizan para determinar la capacidad máxima de un sistema informático y a menudo se emplean para fines como la escalabilidad para uso en producción y para garantizar la fiabilidad y la estabilidad. [ 1 ] Las pruebas de estrés suelen implicar la ejecución de una gran cantidad de procesos que consumen muchos recursos hasta que el sistema se bloquea o casi se bloquea.
Hardware
Una prueba de estrés (a veces llamada prueba de resistencia extrema) de hardware es una forma de prueba deliberadamente intensa y exhaustiva que se utiliza para determinar la estabilidad de un sistema o entidad. Consiste en realizar pruebas que superan la capacidad operativa normal , a menudo hasta el punto de ruptura, para observar los resultados.
Las razones pueden incluir: determinar los puntos de ruptura y los límites de uso seguro; confirmar que se cumplen las especificaciones previstas; buscar problemas dentro de un producto; determinar los modos de falla (cómo puede fallar exactamente un sistema) y probar el funcionamiento estable de una pieza o sistema fuera del uso estándar. Los ingenieros de confiabilidad a menudo prueban los elementos bajo el estrés esperado o incluso bajo un estrés acelerado para determinar la vida útil del elemento o los modos de falla . [ 2 ]
El término prueba de estrés, en lo que respecta al hardware (incluidos los componentes electrónicos, los dispositivos físicos, las centrales nucleares, etc.), probablemente tenga diferentes significados específicos en contextos concretos. Un ejemplo se encuentra en los materiales; véase Fatiga (material) .
Software
Las pruebas de estrés son una actividad de prueba de software que determina la robustez del software al someterlo a pruebas que superan los límites de su funcionamiento normal. Si bien son especialmente importantes para el software crítico , se utilizan para todo tipo de software. Generalmente, las pruebas de estrés hacen mayor hincapié en la robustez, la disponibilidad y el manejo de errores bajo cargas elevadas que en el comportamiento que se consideraría correcto en circunstancias normales.
A system stress test refers to tests that put a greater emphasis on robustness, availability, and error handling under a heavy load, rather than on what would be considered correct behavior under normal circumstances. In particular, the goals of such tests may be to ensure the software does not crash in conditions of insufficient computational resources (such as memory or disk space), unusually high concurrency, or denial of service attacks.
Examples:
- A web server may be stress tested using scripts, bots, and various denial of service tools to observe the performance of a web site during peak loads. These attacks generally are under an hour long, or until a limit in the amount of data that the web server can tolerate is found.
Stress testing may be contrasted with load testing:
- Load testing examines the entire environment and database, while measuring the response time, whereas stress testing focuses on identified transactions, pushing to a level so as to break transactions or systems.
- During stress testing, if transactions are selectively stressed, the database may not experience much load, but the transactions are heavily stressed. On the other hand, during load testing the database experiences a heavy load, while some transactions may not be stressed.
- System stress testing, also known as stress testing, is loading the concurrent users over and beyond the level that the system can handle, so it breaks at the weakest link within the entire system.
See also
- Burn-in
- Destructive testing
- Load and performance test tools
- Black box testing
- Load testing
- Software performance testing
- Scenario analysis
- Simulation
- Software testing
- White box testing
- Technischer Überwachungsverein (TÜV) – product testing and certification
- Concurrency testing using the CHESS model checker
- Jinx automates stress testing by automatically exploring unlikely execution scenarios.
- Highly accelerated life test
References
- Software testing
- Product testing