En esta nota continuaremos conociendo los diferentes tipos de pruebas de software. Ya abordamos las pruebas funcionales y la automatización de pruebas. Ahora haremos una introducción a las pruebas de rendimiento, también conocidas como pruebas de performance.

¿Cuál es el objetivo de las pruebas de rendimiento?

Comencemos por la famosa frase del título: “se cayó el sistema”. Las pruebas de rendimiento ayudan a identificar condiciones que pueden provocar lentitud, errores o interrupciones del servicio. Su propósito es aportar información para reducir estos riesgos y evaluar si el sistema responde a las necesidades de uso.

Estas pruebas permiten estudiar el comportamiento del software bajo determinadas condiciones de carga. Para ello, se observan aspectos como los tiempos de respuesta, la cantidad de operaciones que puede procesar y los recursos que utiliza.

Evaluar el comportamiento bajo carga

Probar cómo responde un sistema ante distintas exigencias es una práctica presente en diversas disciplinas de la ingeniería. Por ejemplo, se evalúa el comportamiento de puentes y estructuras aeronáuticas frente a diferentes cargas.

En el software, las pruebas de rendimiento permiten analizar qué ocurre cuando una aplicación recibe solicitudes de usuarios, procesa operaciones o trabaja con determinados volúmenes de datos.

Esto ayuda a identificar problemas antes de liberar el software al público y a evaluar cambios en sistemas que ya están en producción.

En síntesis, medir el rendimiento permite detectar problemas, orientar mejoras y evaluar sus resultados.

La arquitectura y su impacto en el rendimiento

La arquitectura de un sistema es fundamental para estudiar su performance. Todo sistema de software tiene una estructura y una organización, se hayan definido explícitamente o no.

arquitectura

La arquitectura es el esqueleto del sistema e influye en atributos de calidad como el rendimiento, la seguridad, la usabilidad y la facilidad para realizar modificaciones.

Incluye la interacción entre componentes y su distribución física, las estructuras de control, los protocolos de comunicación, la sincronización y el acceso a los datos, entre otros aspectos.

El recorrido de una solicitud

Los distintos elementos de la arquitectura pueden pensarse como motores de procesamiento. Cada uno realiza determinadas tareas en cierto tiempo y utiliza recursos para hacerlo.

Para estudiar el rendimiento del sistema ante la solicitud de un usuario, es importante conocer cómo circulan los datos y qué componentes participan en su procesamiento.

El rendimiento global depende tanto del comportamiento de esos componentes como de sus interacciones. Por eso, mejorar un componente no implica necesariamente una mejora proporcional en todo el sistema.

Identificar cuellos de botella

Conocer la arquitectura y monitorear sus componentes permite detectar, aislar y analizar problemas de rendimiento.

Estos problemas pueden encontrarse en los elementos del sistema o en sus interacciones. Cuando un recurso o componente limita la capacidad de procesamiento del conjunto, hablamos de un cuello de botella.

Según el problema identificado, será necesario concentrarse en distintos componentes. Las mediciones ayudan a decidir dónde intervenir y a comprobar si los ajustes mejoran el comportamiento del sistema.

Tipos de pruebas de rendimiento

En la industria se manejan diferentes categorías de pruebas de performance. Según sus objetivos, algunas de las principales son las siguientes.

Pruebas de carga

Evalúan el comportamiento del sistema bajo distintos niveles de carga previstos, desde un uso reducido hasta los picos esperados.

Permiten comprobar si los tiempos de respuesta, la capacidad de procesamiento y el uso de recursos se mantienen dentro de los valores requeridos.

Pruebas de estrés

Evalúan el comportamiento del sistema cuando se superan las condiciones de carga previstas o se restringen sus recursos.

Ayudan a identificar sus límites, analizar cómo falla y comprobar su capacidad de recuperación cuando las condiciones vuelven a la normalidad.

Pruebas de escalabilidad

Estudian cómo cambia la capacidad del sistema para atender una carga de trabajo cuando se modifican los recursos disponibles.

Por ejemplo, permiten evaluar qué mejoras se obtienen al aumentar la capacidad de CPU del servidor de bases de datos o incorporar nuevas instancias de un servicio.

Pruebas de volumen

Evalúan el comportamiento del sistema al trabajar con determinados volúmenes de datos, especialmente cuando estos aumentan.

Por ejemplo, permiten analizar cómo cambian los tiempos de consulta o de generación de reportes a medida que crece la cantidad de registros almacenados.

Qué preguntas debe responder una prueba de performance

Más allá de la categoría elegida, lo fundamental es definir qué preguntas necesitamos responder, qué información queremos obtener y qué riesgos queremos mitigar.

Por ejemplo:

  • ¿Cuántos usuarios pueden operar simultáneamente con tiempos de respuesta aceptables?
  • ¿Qué componente limita el rendimiento ante un aumento de la demanda?
  • ¿Cómo cambia el comportamiento del sistema al incorporar más recursos?
  • ¿Qué ocurre cuando aumenta el volumen de datos?

Estas preguntas ayudan a definir los escenarios, las condiciones de ejecución y las métricas que se analizarán.

La visión de un experto

Federico, uno de nuestros expertos en pruebas de rendimiento y docente de la Especialización en Testing de Performance, comparte su experiencia en esta charla sobre desafíos, estrategias y tendencias en testing de performance.

charla sobre testing de performance

Esperamos que esta nota te haya ayudado a conocer qué son las pruebas de rendimiento y cómo contribuyen a evaluar la calidad del software. Puedes contarnos en nuestras redes sociales qué temas te gustaría que abordemos.

LinkedIn · X (Twitter) · Instagram · Facebook