Las pruebas de rendimiento son indispensables para gestionar ciertos riesgos comerciales importantes. Por ejemplo, si su sitio web no puede manejar el volumen de tráfico que recibe, sus clientes comprarán en otro lugar. Más allá de identificar los riesgos obvios, las pruebas de rendimiento pueden ser una forma útil de detectar muchos otros problemas potenciales.
Si bien las pruebas de rendimiento no reemplazan otros tipos de pruebas, pueden revelar información relevante para la usabilidad, la funcionalidad, la seguridad y la imagen corporativa que es difícil de obtener de otras maneras.
Muchas empresas y probadores de rendimiento consideran valioso pensar en los riesgos que las pruebas de rendimiento pueden abordar en términos de tres categorías: velocidad, escalabilidad y estabilidad.
Comprenda cómo se ven la velocidad, la escalabilidad y la estabilidad desde una perspectiva de evaluación del rendimiento.
Conozca cómo se pueden usar las pruebas de rendimiento para mitigar los riesgos relacionados con la velocidad, la escalabilidad y la estabilidad. Conozca los aspectos de estos riesgos que las pruebas de rendimiento no abordan de manera adecuada.
aprenda sobre los riesgos de rendimiento típicos, los tipos de prueba de rendimiento relacionados con esos riesgos y las estrategias comprobadas para mitigar esos riesgos.
La sección “Matriz de resumen” permite comprender los diferentes tipos de pruebas y los riesgos que pueden mitigar. Utilice las diversas secciones de tipos de riesgo para comprender las estrategias relacionadas.
eso puede ayudarlo a determinar el mejor enfoque de prueba para su situación particular.
Riesgos relacionados con la velocidad:
Los riesgos relacionados con la velocidad no se limitan a la satisfacción del usuario final, aunque eso es lo que la mayoría de la gente piensa primero. La velocidad también es un factor en ciertos negocios y datos.
riesgos relacionados Algunos de los riesgos más comunes relacionados con la velocidad que las pruebas de rendimiento pueden abordar incluyen:
- ¿Es la aplicación lo suficientemente rápida como para satisfacer a los usuarios finales?
- ¿La empresa puede procesar y utilizar los datos recopilados por la aplicación antes de que los datos se vuelvan obsoletos? (Por ejemplo, los informes de fin de mes vencen dentro de las 24 horas del cierre de operaciones del último día del mes, pero la aplicación tarda 48 horas en procesar los datos).
- ¿Es la aplicación capaz de presentar la información más reciente (por ejemplo, cotizaciones de bolsa) a sus usuarios?
- ¿Responde un servicio web dentro del tiempo de respuesta máximo esperado antes de que se produzca un error?
Estrategias de mitigación de riesgos relacionadas con la velocidad:
Las siguientes estrategias son valiosas para mitigar los riesgos relacionados con la velocidad:
- Asegúrese de que sus requisitos y objetivos de rendimiento representen las necesidades y los deseos de sus usuarios, no de los de otra persona.
- Compare sus mediciones de velocidad con versiones anteriores y aplicaciones de la competencia.
- Diseñe pruebas de carga que repliquen la carga de trabajo real tanto en horas pico normales como previstas.
- Realice pruebas de rendimiento con tipos de datos, distribuciones y volúmenes similares a los utilizados en las operaciones comerciales durante la producción real (por ejemplo, número de productos, pedidos en estado pendiente, tamaño de la base de usuarios). Puede permitir que los datos se acumulen en bases de datos y servidores de archivos, o crear el volumen de datos, antes de la ejecución de la prueba de carga.
- Utilice los resultados de las pruebas de rendimiento para ayudar a los interesados a tomar decisiones informadas sobre arquitectura y negocios.
- Solicite comentarios representativos sobre la satisfacción de los usuarios con el sistema mientras se encuentra bajo la carga máxima esperada.
- Incluya transacciones de tiempo crítico en sus pruebas de rendimiento.
- Asegúrese de que al menos algunas de sus pruebas de rendimiento se lleven a cabo mientras se ejecutan procesos periódicos del sistema (por ejemplo, descarga de actualizaciones de definiciones de virus o copias de seguridad semanales).
- Mida la velocidad bajo diversas condiciones, niveles de carga y combinaciones de escenarios. (Los usuarios valoran la velocidad constante)
- Valide que se hayan visualizado y guardado todos los datos correctos durante la prueba de rendimiento. (Por ejemplo, un usuario actualiza información, pero la pantalla de confirmación aún muestra la información anterior porque la transacción no ha completado la escritura en la base de datos).
Riesgos relacionados con la escalabilidad:
Los riesgos de escalabilidad conciernen no solo a la cantidad de usuarios que puede admitir una aplicación, sino también al volumen de datos que la aplicación puede contener y procesar, así como a la capacidad de identificar cuándo una aplicación se acerca a su capacidad. Los riesgos comunes de escalabilidad que pueden abordarse mediante pruebas de rendimiento incluyen:
¿Puede la aplicación proporcionar tiempos de respuesta consistentes y aceptables para toda la base de usuarios?
- ¿La aplicación puede almacenar todos los datos que se recopilarán durante la vida de la aplicación?
- ¿Hay señales de advertencia para indicar que la aplicación se está acercando a la capacidad máxima?
- ¿La aplicación seguirá siendo segura bajo un uso intensivo?
- ¿Se verá comprometida la funcionalidad bajo un uso intensivo?
- ¿Puede la aplicación soportar cargas pico no anticipadas?
Estrategias de mitigación de riesgos relacionadas con la escalabilidad:
Las siguientes estrategias son valiosas para mitigar los riesgos relacionados con la escalabilidad:
Compare las velocidades medidas bajo diversas cargas. (Tenga en cuenta que el usuario final no sabe o no le importa cuántas personas están usando la aplicación al mismo tiempo que él / ella).
- Diseñe pruebas de carga que repliquen la carga de trabajo real tanto en horas pico normales como previstas.
- Realice pruebas de rendimiento con tipos de datos, distribuciones y volúmenes similares a los utilizados en las operaciones comerciales durante la producción real (por ejemplo, número de productos, pedidos en estado pendiente, tamaño de la base de usuarios).
- Puede permitir que los datos se acumulen en bases de datos y servidores de archivos, o crear el volumen de datos, antes de la ejecución de la prueba de carga.
- Utilice los resultados de las pruebas de rendimiento para ayudar a los interesados a tomar decisiones informadas sobre arquitectura y negocios.
- Trabaje con pruebas de rendimiento más significativas que se ajusten a los requisitos del mundo real.
- Cuando encuentre un límite de escalabilidad, reduzca gradualmente la carga y vuelva a realizar la prueba para ayudarlo a identificar una métrica que pueda servir como un indicador confiable de que la aplicación se acerca a ese límite con tiempo suficiente para que pueda aplicar contramedidas.
- Valide la precisión funcional de la aplicación bajo diversas cargas comprobando las entradas de la base de datos creadas o validando el contenido devuelto en respuesta a solicitudes de usuarios particulares.
- Realice pruebas de rendimiento más allá de las cargas máximas esperadas y observe el comportamiento haciendo que usuarios representativos y partes interesadas accedan a la aplicación manualmente durante y después de la prueba de rendimiento.
Riesgos relacionados con la estabilidad:
La estabilidad es un término general que abarca áreas como la fiabilidad, el tiempo de actividad y la capacidad de cobertura. Si bien los riesgos de estabilidad suelen abordarse con pruebas de carga, resistencia y estrés, a veces se detectan problemas de estabilidad durante las pruebas de rendimiento más básicas. Algunos riesgos comunes de estabilidad abordados por medio de pruebas de rendimiento incluyen.
- ¿Puede la aplicación funcionar durante largos períodos de tiempo sin que se reinicien los datos, la ralentización o los servidores que necesitan reiniciarse?
- Si la aplicación se cierra inesperadamente, ¿qué ocurre con las transacciones parcialmente completadas?
- Cuando la aplicación vuelve a estar en línea después del tiempo de inactividad programado o no programado, ¿los usuarios podrán ver / hacer todo lo que esperan?
- Cuando la aplicación vuelve a estar en línea después de un tiempo de inactividad no programado, ¿se reanuda en el punto correcto? En particular, ¿no intenta reanudar transacciones canceladas?
- ¿Pueden las combinaciones de errores o errores funcionales repetidos causar un bloqueo del sistema?
- ¿Hay alguna transacción que cause efectos secundarios en todo el sistema?
- ¿Se puede eliminar una parte del entorno de equilibrio de carga y aún proporcionar un servicio ininterrumpido a los usuarios?
- ¿Se puede reparar o actualizar el sistema sin quitarlo?
Estrategias de mitigación de riesgos relacionadas con la estabilidad:
Las siguientes estrategias son valiosas para mitigar los riesgos relacionados con la estabilidad:
- Tómese el tiempo para las pruebas de resistencia realistas.
- Llevar a cabo pruebas de estrés con los escenarios clave. Trabajar con indicadores clave de rendimiento (red, disco, procesador, memoria) e indicadores de negocio, como el número de pedidos perdidos, fallas de inicio de sesión de usuario, etc.
- Realice pruebas de estrés con feeds de datos que reproduzcan operaciones comerciales similares a las de un entorno de producción real (p. Ej., Número de productos, pedidos en estado pendiente, tamaño de la base de usuarios). Puede permitir que los datos se acumulen en bases de datos y servidores de archivos, o adicionalmente crear el volumen de datos, antes de la ejecución de la prueba de estrés. Esto le permitirá replicar errores críticos tales como interbloqueos de bases de datos o aplicaciones y otros patrones de fallas de estrés.
- Ponga un servidor fuera de línea durante una prueba y observe los comportamientos funcionales, de rendimiento y de integridad de datos de los sistemas restantes.
- Ejecute pruebas idénticas inmediatamente antes y después de un reinicio del sistema. Compara los resultados. Puede usar un enfoque idéntico para reciclar servicios o procesos.
- Incluya casos de error o excepción en los escenarios de prueba de rendimiento (por ejemplo, usuarios que intentan iniciar sesión con credenciales incorrectas).
- Aplique un parche al sistema durante una prueba de rendimiento.
- Fuerce una actualización de la seguridad y / o la copia de seguridad durante una prueba de rendimiento.