Las pruebas de rendimiento evalúan el rendimiento del sistema o el rendimiento de la aplicación con cargas de distintos tamaños.
Los criterios clave incluyen la velocidad (la rapidez con la que funciona), la estabilidad (si funciona sin fallos), la escalabilidad (la fluidez con la que se gestionan las cargas que aumentan) y la capacidad de respuesta (la rapidez con la que responde a las instrucciones del usuario).
El concepto de rendimiento del software subyace a todo uso de la computadora, y un rendimiento deficiente puede socavar los mejores esfuerzos de una organización para ofrecer una experiencia de usuario de calidad. Si los desarrolladores no supervisan adecuadamente las pruebas de rendimiento o ejecutan pruebas de rendimiento con la suficiente frecuencia, pueden introducir cuellos de botella en el rendimiento. Esta situación puede asfixiar la capacidad de un sistema para manejar incluso sus cargas de tráfico típicas durante los períodos esperados. Se vuelve aún más problemático cuando los tiempos inesperados de pico de uso crean una demanda adicional.
Este desafío podría poner en peligro todas las operaciones públicas de una empresa. Las reputaciones de calidad duradera suelen tardar mucho tiempo en desarrollarse. Sin embargo, pueden dañarse rápida y permanentemente cuando el público comienza a cuestionar si un sistema o aplicación puede operar con una funcionalidad confiable. La paciencia del usuario final se está convirtiendo cada vez más en un bien limitado. Por lo tanto, dado que la reputación de la empresa a menudo está en juego, hay mucho en juego cuando los problemas de rendimiento son el tema de conversación.
Boletín de la industria
Manténgase al día sobre las tendencias más importantes e intrigantes de la industria sobre IA, automatización, datos y más con el boletín Think. Consulte la Declaración de privacidad de IBM.
Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.
Primero definamos la metodología utilizada en la mayoría de los escenarios de pruebas de desempeño. Seis pasos de varias partes definen el proceso típico de prueba de rendimiento.
El primer paso en el proceso de pruebas de rendimiento implica establecer parámetros útiles, como describir los objetivos de rendimiento de la aplicación.
Luego, establezca qué constituyen criterios de rendimiento aceptables (como tiempos de respuesta, rendimiento, utilización de recursos y tasas de error).
En esta etapa también es cuando el personal identifica indicadores clave de rendimiento (KPI) para respaldar de manera competente los requisitos de rendimiento y las prioridades comerciales.
No todas las pruebas deben utilizarse en todas las situaciones. Los desarrolladores u otros evaluadores deben definir qué se pretende analizar con las pruebas.
Comienzan por examinar los principales escenarios de uso y diseñar casos de prueba que reflejen las interacciones de los usuarios del mundo real. El siguiente paso es especificar los datos de prueba y las cargas de trabajo que se utilizarán durante el proceso de prueba.
Después de bloquear estas variables, los testers seleccionan las herramientas de prueba de rendimiento, los scripts de prueba y las técnicas de prueba que se utilizarán. Este paso incluye la configuración de puertas, el proceso mediante el cual las puertas de calidad basadas en código permiten o deniegan el acceso a pasos de producción posteriores.
Las pruebas de rendimiento también examinan el ancho de banda para confirmar que las velocidades de transmisión de datos pueden manejar suficientemente el tráfico de cargas de trabajo.
Se debe dar un último paso antes de que el proceso de pruebas de rendimiento pueda comenzar oficialmente. Los evaluadores construyen un entorno de prueba que imita con precisión el entorno de producción real del sistema y luego confirman que las aplicaciones de software bajo prueba (AUT) se han desplegado dentro del entorno de prueba.
La preparación final implica integrar herramientas de monitoreo para capturar métricas de rendimiento generadas por el sistema durante las pruebas.
Con los parámetros de prueba ahora claramente definidos, es hora de ejecutar las pruebas de rendimiento. Los probadores o la automatización de pruebas ejecutan los escenarios de prueba que se han elegido, y esas pruebas se utilizan junto con herramientas de prueba de rendimiento.
Los evaluadores suelen monitorear el rendimiento del sistema en tiempo real para poder verificar el rendimiento, los tiempos de respuesta y el uso de recursos. A lo largo de los escenarios de prueba, los evaluadores monitorean el sistema en busca de cuellos de botella de rendimiento u otras rarezas relacionadas con el rendimiento reflejadas en las métricas de prueba.
A continuación, los evaluadores evalúan los datos de rendimiento recopilados durante el proceso de prueba. Estudian minuciosamente los datos recopilados y buscan áreas de rendimiento que necesitan mejorar.
Luego, los evaluadores comparan estos resultados con los puntos de referencia de rendimiento que se establecieron como parte del primer paso del proceso de prueba. A través de esta comparación, los probadores pueden ver dónde los resultados de las pruebas se desvían del rendimiento esperado y podrían haberse producido cuellos de botella.
Después de identificar los problemas de rendimiento mediante el análisis de los datos de prueba, los desarrolladores trabajan con el código para actualizarlo con el sistema. Utilizan optimizaciones de código, actualizaciones de recursos o cambios de configuración para mitigar los problemas de rendimiento citados.
Luego de implementar los cambios, los desarrolladores repiten la secuencia de pruebas de software para confirmar que aplicaron los cambios con éxito. Los desarrolladores repiten los procedimientos hasta que los resultados de rendimiento se alinean con los puntos de referencia definidos.
Las pruebas de rendimiento profundizan tras bambalinas para verificar los resultados del sistema o de la aplicación, por lo que tiene sentido que los equipos de desarrollo de aplicación sean los usuarios más comunes de los métodos de pruebas de rendimiento. En este primer grupo de usuarios se incluyen profesionales que participan activamente en el proceso de desarrollo: desarrolladores, ingenieros de control de calidad (QA) y equipos de DevOps. Cada uno obtiene algo único de las pruebas de rendimiento:
El siguiente grupo de usuarios no son los desarrolladores, pero aún trabajan a nivel de tierra con la gestión del rendimiento del sistema como un componente importante de sus trabajos:
Pero no es solo la gerencia de la empresa la que realiza pruebas de rendimiento. Muchas organizaciones y empresas también hacen uso frecuente de las pruebas de rendimiento para diversos fines en empresas de todos los tamaños:
Los desarrolladores realizan diferentes tipos de pruebas de rendimiento para derivar tipos específicos de datos de resultados y respaldar una determinada estrategia de pruebas. Estos son los tipos de pruebas más destacados.
Las pruebas de carga indican cómo funciona el sistema cuando opera con cargas esperadas. El objetivo de las pruebas de carga es mostrar el comportamiento del sistema cuando se encuentran cargas de trabajo de tamaño rutinario en condiciones de trabajo normales con un número promedio de usuarios simultáneos.
Ejemplo: Para un sitio web de comercio electrónico, un probador simula ser un usuario del sitio y seguir los pasos de comprar artículos, colocar productos en carritos y pagar esas compras.
Las pruebas de carga muestran si el sistema puede admitir condiciones de carga regulares. La escalabilidad pone a ese sistema bajo estrés al aumentar el volumen de datos o las cargas de usuario que se manejan. Demuestra si un sistema puede mantener un ritmo mayor y seguir ofreciendo resultados.
Ejemplo: en el escalado vertical, un desarrollador puede construir la CPU y la memoria de un servidor de base de datos para que pueda acomodar un mayor volumen de consultas de datos.
La prueba de estrés es análoga a una prueba de buceo realizada por la tripulación de un submarino. Aquí, el sistema se lleva hasta sus límites operativos comprendidos, y luego aún más allá, para determinar exactamente cuánto puede soportar el sistema antes de llegar a su punto de quiebre.
Ejemplo: Las pruebas de conmutación por error son una forma extrema de pruebas de estrés que comienzan con la simulación de fallas de componentes. El objetivo es ver cuánto tiempo tarda el sistema en recuperarse y reanudar el funcionamiento.
Aquí estamos probando un tipo diferente de estrés: cuando el tráfico de usuarios o la transferencia de volumen de datos experimenta repentinamente un aumento brusco y drástico en la actividad. El sistema debe absorber varios cambios mientras continúa con las operaciones habituales.
Ejemplo: Las empresas que ejecutan sitios web deben prepararse no solo para las interrupciones, sino también para el aumento de usuarios que intentan acceder al sitio simultáneamente una vez que vuelve a estar en línea. También deben evaluar si el sistema puede manejar ese aumento repentino de la demanda. Las pruebas de picos pueden calcular qué tan bien es probable que funcione.
A veces, con el rendimiento, estamos hablando del tráfico de usuarios. Las pruebas de volumen, por el contrario, se refieren a cómo un sistema gestiona grandes cantidades de datos. ¿Puede el sistema procesar los datos por completo y proporcionar almacenamiento de datos sin degradación de los datos?
Ejemplo: Una clínica médica mantiene enormes volúmenes de información sobre pacientes y está obligada legalmente a poder acceder a esos historiales de pacientes y a los datos médicos relacionados. Ese flujo constante de datos puede sobrecargar un sistema. Las pruebas de volumen permiten a los usuarios saber si su sistema está a la altura del desafío de aceptar constantemente más datos.
Think en ello como pruebas de rendimiento a largo plazo. Los verdaderos culpables que se buscan en las pruebas de resistencia (también llamadas pruebas de remojo) son la degradación de los datos y los problemas con fugas de memoria que a menudo ocurren durante un periodo prolongado de tiempo.
Ejemplo: Las plataformas de redes sociales funcionan las 24 horas del día, y el uso continuo puede presentar problemas con la estabilidad de la plataforma, el almacenamiento de datos y las cuentas de usuario. Las pruebas de resistencia le brindan una imagen de la operación actual y los indicadores de rendimiento futuro.
Los desarrolladores y evaluadores pueden elegir entre numerosas herramientas diseñadas para pruebas de rendimiento. Estos son algunos de los más populares:
Al igual que con casi todos los asuntos relacionados con las computadoras, la inteligencia artificial (IA) ahora está llevando las pruebas de software a niveles completamente nuevos de eficiencia. Está haciendo que el proceso general de pruebas de rendimiento sea más rápido, más preciso y más fácil de automatizar.
Específicamente, la IA puede emplear ciclos de prueba más cortos, lo que hace que lleve menos tiempo ejecutar las pruebas. Y a través de la precisión de ojo de águila de la IA, es capaz de notar cambios de rendimiento más sutiles que podrían eludir a los evaluadores humanos. Además, a través del análisis predictivo, la IA puede evaluar las tendencias operativas y los datos históricos y predecir dónde y cuándo podrían ocurrir los próximos cuellos de botella. También puede aprovechar ese comportamiento predictivo del sistema e incluso ajustar los parámetros de prueba en función de él.
Pero, con mucho, lo más significativo que ha hecho la IA para las pruebas de rendimiento (hasta ahora) es ayudar en sus esfuerzos a gran escala al permitir la automatización. Esta automatización es sorprendente porque es totalmente capaz de ejecutar todo el proceso de pruebas de rendimiento.
La IA no solo puede automatizar la forma en que se llevan a cabo las pruebas, sino que también puede escribir los scripts de prueba destinados a la ejecución. Además, puede interpretar los resultados de las pruebas en el backend y ofrecer orientación para remediar situaciones problemáticas.
Uno de los impactos más interesantes y prometedores de la IA en las pruebas de rendimiento es el creciente uso de la colaboración entre humanos e IA. Este arreglo se da cuenta de que el instinto humano y el conocimiento aún tienen un papel vital que desempeñar. De hecho, en algunas situaciones, seguir los impulsos humanos sigue siendo la directiva principal.
Algunos Expertos están convencidos de que las pruebas de rendimiento del futuro se basan en este enfoque híbrido. Combina la mentalidad informática y la capacidad de procesamiento con un sentido humano del contexto y los matices.
Automatice la entrega de software para cualquier aplicación on premises, en la nube o en el mainframe.
Utilice el software y las herramientas de DevOps para crear, desplegar y gestionar aplicaciones nativas de la nube en múltiples dispositivos y entornos.
Desbloquee nuevas capacidades e impulse la agilidad empresarial con los servicios de IBM de asesoramiento sobre la nube. Descubra cómo crear conjuntamente soluciones, acelerar la transformación digital y optimizar el rendimiento a través de estrategias de nube híbrida y asociaciones de expertos.