Mejores prácticas de pruebas de rendimiento

Actualmente, la funcionalidad de un producto es sin duda un componente importante e integral en el proceso de pruebas. Pero también importan el tiempo de respuesta, la fiabilidad, el uso de recursos y la escalabilidad. Las pruebas de rendimiento son un tipo de prueba independiente que permite garantizar que las aplicaciones de software funcionarán sin problemas bajo la carga de trabajo prevista.

En condiciones para desarrollar pruebas automatizadas, existe una gran variedad de herramientas ya preparadas que permiten generar cargas, grabar scripts y ejecutarlos en un horario establecido. Pero antes de empezar a hacerlo, hay que conocer los conceptos básicos del rendimiento, conocer los parámetros clave en el rendimiento y cómo influir en ellos. En última instancia, esto hará que el proceso de automatización de cargas sea más objetivo y esto le permitirá utilizar los datos correctos, diseñar escenarios útiles y analizar los resultados de forma competente.

Por lo tanto, hoy vamos a considerar los siguientes puntos:

  • qué debemos probar
  • requisitos técnicos y sus tipos
  • lista de herramientas de pruebas de rendimiento
  • objetivos de las pruebas de rendimiento
  • pruebas de rendimiento
  • modelos de carga
  • métricas de rendimiento
  • fuentes de problemas

¿Qué deberíamos probar?

Definiciones de las pruebas de rendimiento

Eficiencia: conjunto de atributos relacionados con la relación entre el nivel de calidad del funcionamiento del software y la cantidad de recursos utilizados en unas condiciones determinadas.

Características de eficiencia:

  • comportamiento en el tiempo: los atributos del software relacionados con los tiempos de respuesta y procesamiento y la velocidad de ejecución de sus funciones.
  • comportamiento de los recursos: atributos del software relacionados con la cantidad de recursos utilizados y la duración de dicho uso en el desempeño de la función.

Estas son las 2 características que tratamos de comprobar al realizar las pruebas de rendimiento: que la naturaleza del cambio con el tiempo y los recursos cumplan con los requisitos

Recordando los fundamentos del diseño de la prueba, debemos saber que los errores más interesantes se producen en los límites de los valores. Así, el comportamiento más interesante del sistema comienza cuando los recursos empiezan a agotarse: CPU, memoria, red, disco, etc. Y cuando llegamos a los valores límite de los recursos, el servidor comienza a experimentar problemas de rendimiento, junto a los cuales se producen problemas funcionales.

Por lo tanto, cuando realizamos pruebas de rendimiento, por un lado, prestamos atención a la eficiencia (al consumo de recursos) y, por otro, también nos interesan los defectos funcionales que se producen cuando se alcanzan los límites de los recursos disponibles del servidor.

Fiabilidad: conjunto de atributos relacionados con la capacidad del software para mantener su nivel de rendimiento en las condiciones dadas durante un periodo de tiempo determinado.

Características de fiabilidad:

  • estabilidad (madurez): atributos del software relacionados con la tasa de fallos en caso de errores del software.
  • tolerancia a fallos: atributos del software relacionados con su capacidad para mantener un determinado nivel de rendimiento en caso de errores o violaciones del software.
  • recuperabilidad: atributos del software relacionados con su capacidad para restablecer el nivel de rendimiento y restaurar los datos directamente dañados en caso de fallo, así como el tiempo y el esfuerzo necesarios para hacerlo.

Estas tres características deben incluirse en las pruebas de rendimiento, es decir, las pruebas de rendimiento son pruebas de fiabilidad + pruebas de eficiencia, utilizando las mismas herramientas y los mismos enfoques de análisis de datos.

Requisitos técnicos

Los requisitos de exhaustividad de la presentación pueden dividirse en detallados e informales.

Los requisitos detallados no siempre son buenos, como puede parecer, porque pueden relajar al probador. Los requisitos informales, por el contrario, dan más libertad a la creatividad. La más adecuada es la opción con requisitos descritos de forma incompleta. Y apenas verá requisitos que se cumplan estrictamente.

Tres componentes básicos de los requisitos técnicos:

  • generación de carga: la carga debe ser generada para la prueba de carga;
  • Seguimiento de las características de rendimiento: dado que la carga del servidor es elevada, es necesario leer una cantidad suficiente de indicadores, y si se desea utilizarlos para el análisis, primero hay que recopilarlos;
  • Análisis de los resultados: obtención de los valores medios de diversos parámetros, así como análisis de las anomalías graves (anormalidades).

Herramientas de pruebas de rendimiento

Herramientas de generación de carga

Las herramientas de generación de carga se utilizan para generar un gran número de solicitudes, escribir los guiones y grabarlos/reproducirlos. A continuación se presenta una lista de algunas de las herramientas más populares.

Monitoring tools

Este tipo de herramientas permite medir la característica principal, el tiempo de respuesta del lado del cliente, no del servidor.

  • herramientas incorporadas
  • herramientas del sistema operativo
  • medios de los servidores, DBMS
  • medios especializados
  • Zabbix, Nagios, Hyper

Herramientas de análisis de resultados

Hablando del análisis de resultados en las pruebas de rendimiento, en primer lugar significa la capacidad de construir varios gráficos. Se puede utilizar las siguientes herramientas:

  • herramientas incorporadas.
  • hojas de cálculo.
  • paquetes para el tratamiento de datos estadísticos.

Objetivos de las pruebas de rendimiento

En pocas palabras, el objetivo de las pruebas de rendimiento es “obtener información sobre el rendimiento y proporcionársela a las partes interesadas para que puedan utilizarla para tomar decisiones”. ¿Cómo se puede seguir utilizando esta información?

  1. Para verificar el cumplimiento de los requisitos.
  2. Para comparar diferentes versiones o configuraciones del sistema.
  3. Para identificar los cuellos de botella.

Modelos de carga

Según el tipo de prueba de rendimiento, debe conocer y utilizar uno de los modelos de carga estándar.

El modelo de carga consiste en cuántos impactos hay que tener en el sistema en un momento determinado.

1. Carga constante

Graphics

Significa que enviamos aproximadamente el mismo número de solicitudes durante un largo periodo de tiempo. Y observamos el tiempo de respuesta, debe permanecer aproximadamente constante, sin cambios durante todo el tiempo de la carga. El objetivo principal de la carga constante es la observación del tiempo de respuesta, que debe permanecer invariable durante todo este tiempo.

2. Carga en continuo aumento

Modelo de carga en continuo aumento

A diferencia del modelo anterior, en el que no debería haber problemas con una carga uniforme, aquí, a medida que la carga aumenta, esperamos encontrar problemas. El objetivo principal de este modelo es encontrar un punto de saturación a partir del cual se producen problemas graves en el sistema, es decir, desviaciones del comportamiento esperado (fallos).

3. Carga constante cerca del límite

Modelo de carga constante cerca del límite

Después de aumentar continuamente la carga debemos comprobar la estabilidad del sistema en estados cercanos al crítico. Para ello, hay que tomar un valor igual a dos tercios del crítico y verificar que el sistema funcionará de forma estable bajo esas cargas. Y luego tenemos que realizar la misma prueba para un valor que sea un 10 % inferior al crítico. Este último permite captar las fugas de recursos. Por lo tanto, este tipo de carga permite probar la estabilidad del sistema bajo cargas cercanas a las marginales.

Métricas de las pruebas de carga

La métrica es un estándar para medir un recurso informático. Las métricas pueden referirse a un recurso y a las unidades de medida, o a los datos recogidos sobre ese recurso.

Las métricas de las pruebas de carga descritas son indicadores clave del rendimiento de su aplicación o sitio web. Las métricas de respuesta muestran la medición del rendimiento desde la perspectiva del usuario, mientras que las métricas de volumen muestran el tráfico generado por la herramienta de pruebas de carga contra la aplicación web objetivo. A continuación se enumeran las métricas de rendimiento más comunes:

  • Tiempo de respuesta: es la métrica más básica; un tiempo de respuesta largo, tanto en la media como en las anomalías y desviaciones individuales, provoca retrasos.
  • Número de fallos: son los fallos en el servidor debido a la carga.
  • Consumo de recursos: cuántos recursos consume el servidor.

Hay otros indicadores de rendimiento que puede medir en función de su proyecto, servidor, requisitos y problemas. Pero las métricas que hemos descrito anteriormente son las principales.

Fuentes de problemas

Se conocen las siguientes razones principales que pueden ser los puntos problemáticos.

  1. Falta de recursos: tiempo de CPU, RAM, ancho de banda de red, tiempo de funcionamiento del subsistema de disco.
  2. Algoritmos no óptimos: el ordenador calcula lentamente, utiliza este tipo de algoritmos, lo que conlleva un largo tiempo de cálculo.
  3. Equilibrio de carga incorrecto: un servidor está sobrecargado mientras el otro está infracargado.
  4. Almacenamiento incorrecto de recursos: los datos utilizados con frecuencia consumen tantos recursos como si los solicitáramos por primera vez, por ejemplo.
  5. Gestión incorrecta de las colas: se asignan más recursos a una solicitud que a otra.
  6. Defectos funcionales: los errores del producto pueden provocar problemas de rendimiento.

Resumen

Las pruebas de rendimiento protegen las inversiones de los fallos del producto. El coste de las pruebas de rendimiento suele compensarse con creces con la mejora de la satisfacción y la retención de los clientes.

En este artículo, hemos cubierto los aspectos más importantes que debe conocer para elaborar pruebas de rendimiento automatizadas de su producto. Las pruebas de rendimiento en sí mismas no son difíciles. Al iniciarlas, tenga en cuenta los fundamentos de las pruebas de rendimiento, y también evalúe los comportamientos de los usuarios, los flujos de trabajo y esté preparado para los escenarios del mundo real.

Sobre QAwerk

QAwerk es una empresa ucraniana deslocalizada que ofrece servicios de pruebas bajo demanda. La experiencia del equipo abarca todas las etapas y métodos de prueba que permiten controlar la estabilidad de las unidades separadas y del sistema en su conjunto, proporcionando posibilidades de integración y garantizando una respuesta positiva de sus clientes. De este modo, QAwerk sirve de ventanilla única para la garantía de calidad de su proyecto.

Elena

HELEN, QA

Los servicios de control de calidad del software desempeñan un papel importante en el proceso de desarrollo. Hoy en día los estándares de los productos de software son altos, y la única manera de cumplirlos es realizar procedimientos de prueba exhaustivos.