Javier Arias Martín Profesor del Máster en Dirección y Gestión de Proyectos
Mié, 26/07/2023 - 09:19

Blog de proyectos, testing

El testing es fundamental antes de lanzar el proyecto para detectar los posibles errores.

Serie. 'A Global Outlook for Project Managers' (XVIII)

El Project Management Body of Knowledge (PMBoK – 7ª edición) es un conjunto de estándares y buenas prácticas desarrollado por el Project Management Institute (PMI), que establece una guía para la gestión de proyectos, describiendo procesos, prácticas y herramientas para planificar, ejecutar y controlar proyectos.

Además de dividirse en diez áreas de conocimiento que cubren desde la integración y el alcance del proyecto hasta la gestión de riesgos y adquisiciones, también describe cinco fases en la gestión de proyectos (no necesariamente secuenciales y que pueden solaparse en el tiempo): inicio, planificación, ejecución, monitoreo y control y cierre.

En un proyecto de desarrollo de la línea de ropa de una tienda, es crucial garantizar la capacidad de soportar una gran cantidad de usuarios y picos de carga durante eventos como el Black Friday, Reyes, día de la madre, ... Como ingenieros, nuestra tarea durante la fase de ejecución y control será llevar a cabo pruebas de rendimiento una vez el sistema esté completo, para asegurarnos de cumplir con este requisito no funcional (Solutions & Jain, 2023).

¿Qué son las pruebas de rendimiento?

Las pruebas de rendimiento consisten en evaluar el rendimiento de un sistema en términos de capacidad de respuesta y estabilidad bajo una carga de trabajo particular. Estas pruebas se ejecutan para examinar la velocidad, solidez, confiabilidad y tamaño de la aplicación.

Este proceso incorpora indicadores de rendimiento (Colaboración, s. f.) tales como:

  • Tiempos de respuesta del navegador, la página y la red
  • Tiempos de procesamiento de solicitudes del servidor
  • Volúmenes de usuarios simultáneos aceptables
  • Consumo de memoria del procesador; número y tipo de errores que se pueden encontrar en la aplicación

Las pruebas de rendimiento del desarrollo se centran en los propios componentes (servicios web, microservicios, API, …), por lo que cuanto antes se prueben los componentes de una aplicación, antes se podrá detectar una anomalía y, por lo tanto, menor será el coste del arreglo. A esto se le llama shift-left testing (Federico, 2017).

A medida que la aplicación comienza a tomar forma, las pruebas de rendimiento deberían volverse cada vez más extensas, siendo las más comunes: load, stress, spike, endurance, scalability y volumen testing.

Si bien cada una de persiguen objetivos diferentes, las más importantes son:

  • Load testing: éstas miden el rendimiento a medida que aumenta la carga de trabajo (usuarios o transacciones concurrentes), es decir, el tiempo de respuesta y la capacidad de mantener el sistema a medida que aumenta la carga de trabajo bajo unas condiciones normales de trabajo.
  • Stress testing: también llamadas fatigue testing, están destinadas a medir el rendimiento del sistema fuera de los parámetros de las condiciones normales de trabajo con el fin de conocer el punto en el que el sistema empieza a fallar.
  • Endurance testing: también llamadas soak testing (pruebas de remojo), evalúan cómo funciona el software con una carga de trabajo normal durante un período prolongado de tiempo. Tienen como objetivo principal comprobar si existen problemas en el sistema como, por ejemplo, las fugas de memoria.

Entornos de ejecución de pruebas

Un entorno de pruebas es un ambiente controlado que se crea para probar aplicaciones, sistemas o dispositivos antes de que se implementen en un entorno productivo.

Las empresas suelen tener a disposición del equipo los siguientes entornos:

  • DEV: entorno usado por los desarrolladores para desplegar su código y comprobar cómo se comporta el código en un servidor.
  • SIT (System Integration Testing): entorno usado por el equipo de QA para realizar pruebas funcionales e integración de otros sistemas en nuestra aplicación.
  • UAT (User Acceptance Testing): entorno que usa negocio para realizar sus propias pruebas de aceptación y dar por validada una funcionalidad.
  • PRE: entorno más parecido a producción, ya que debería usar una réplica exacta de los servidores de producción.
  • PRO: entorno de producción, el que usan los clientes finales.

Una vez vistos los entornos que solemos tener a nuestra disposición, ¿os animáis a colaborar y decir dónde creéis que se deberían ejecutar las pruebas de rendimiento?

Herramientas para ejecución de pruebas de rendimiento

Existen multitud de herramientas para realizar pruebas de rendimiento, si bien JMeter (Apache JMeter - Apache JMeterTM. s. f.) es la aplicación gratuita más extendida y con una mayor comunidad. JMeter es una aplicación basada en Java que puede ejecutarse tanto en Windows, Mac como Linux, por lo que lo único que debemos asegurarnos es de tener instalado Java (mínima versión 8).

JMeter funciona simulando visitantes a la aplicación o servicio permitiendo a los usuarios crear y enviar solicitudes HTTP al servidor. Después se recopilan los datos de respuesta del servidor y los datos estadísticos se muestran en forma de gráficos e informes. A partir de los datos recopilados y creados, los usuarios pueden observar el comportamiento de la aplicación y los cuellos de botella (Josepablosarco, 2015), ofreciendo información sobre dónde deben realizarse las mejoras.

Bibliografía

Apache JMeter - Apache JMeterTM. (s. f.).

Colaboración. (s. f.). KPI’s ¿Qué son, para qué sirven y por qué y cómo utilizarlos?

Federico. (2017, 25 julio). ¿Qué es SHIFT LEFT TESTING? - Federico Toledo. Federico Toledo.

Josepablosarco. (2015, 13 marzo). Cuellos de Botella (Bottlenecks). Testing en Español.

Solutions, V., & Jain, A. (2023). Qué son los requisitos no funcionales: ejemplos, definición, guía completa. Visure Solutions.

Editor: Universidad Isabel I

ISSN 2697-2077

Burgos, España

Añadir nuevo comentario

La Universidad Isabel I tratará la información que nos facilite con el fin de publicar su comentario como respuesta a esta entrada de su blog, así como para mantenerlo informado de nuestra actividad. Más información sobre este tratamiento y sus derechos en nuestra política de privacidad.