28

4 pruebas esenciales para evaluar el rendimiento de software

5793Puntos

hace 5 años

Cuando terminas de programar una aplicación te sientes súper exitoso, después de días e incluso semanas de programar tener tu producto terminado es un gran logro. Ahora toca probar el rendimiento de nuestra aplicación para asegurarnos que va a funcionar muy bien en distintos escenarios.

¿Qué son las pruebas de rendimiento de software?

Las pruebas de rendimiento, como bien lo menciona su nombre, son pruebas para evaluar varios aspectos de un programa, de esta manera se asegura su funcionamiento y se controla su calidad. Rendimiento, seguridad y usabilidad son factores clave que se deben revisar con todo el software que desarrolles.

Hoy te quiero hablar sobre pruebas de rendimiento (performance) esenciales que deberías realizar a tus aplicaciones. Un test de performance permite conocer la velocidad, escalabilidad y estabilidad de un sistema en distintos escenarios de uso o carga.

Las cuatro pruebas de perfomance esenciales a realizar son:

  • carga
  • estrés
  • resistencia
  • escalabilidad

Tipos de pruebas de rendimiento o performance

1. Prueba de carga (load testing)

La prueba de carga (load testing) nos permite identificar la cantidad de peticiones que un sistema puede soportar. Por ejemplo, un sistema de transporte tiene una cantidad establecida de usuarios que puede movilizar. De manera similar se puede probar un programa para identificar si se cumple con la cantidad de peticiones concurrentes que se establece en un inicio.

2. Pruebas de estrés (stress)

Una prueba de estrés (stress) consiste en probar los límites que un sistema puede soportar. En este tipo de pruebas se suele enviar más peticiones de las que el software podría atender normalmente para saber el comportamiento de la aplicación.

3. Prueba de resistencia (endurance)

El test de resistencia (endurance) se hace enviando peticiones a un sistema en ciertos intervalos de tiempo. Pensando en una ciudad como un sistema imaginemos que los autos son peticiones y en ciertas horas del día (las horas pico) el sistema tiene una cantidad de peticiones, pero en otros horarios las peticiones disminuyen. ¿La ciudad sigue funcionando después de estos intervalos? Ahora piensa eso pero en software.

4. Prueba de escalabilidad (scalability)

La escalabilidad (scalability) es un factor que al evaluar nos permite identificar las mejoras a la infraestructura donde reside nuestra aplicación. Y así podemos repetir las tres pruebas anteriores para conocer cómo cambia el performance.

¿Sirve hacer este tipo de pruebas?

¿Evaluar tu aplicación asegurará que no tenga errores? No, aunque pruebes y hagas cambios siempre habrá la posibilidad de que aparezca un nuevo fallo. Pero no te desanimes, nuevos errores se transforman en oportunidades para mejorar la aplicación.

Los aspectos que generan más cantidad de errores son: cuando la aplicación entra en un estado de uso que sale del que se previó originalmente, nuevos navegadores, sistemas operativos o dispositivos.

Descubre más sobre el Modelo TCP/IP

¿Quieres aprender cómo probar software?

Si te gustaría aprender más sobre cómo probar software te recomiendo tomar el Curso de Fundamentos de Pruebas de Software. Deja en los comentarios qué más te gustaría saber para realizar tests en los programas que desarrolles.

Daniel
Daniel
danielsanz

5793Puntos

hace 5 años

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
1

Hola, intereasnte el artículo y es justamente lo que estoy buscando/necesitando. Material sobre pruebas de rendimiento (performance).
El contenido del curso no es muy detallado, pero al parecer no trata pruebas de rendimiento. Puede ser??
Gracias

2
2276Puntos
2 años

@Platzi, para cuando un curso de performance / load testing?

1
15144Puntos

que buen blog.

1
14898Puntos

Cuál es diferencia de entre la prueba de stress y load testing?

4
5793Puntos
5 años

La diferencia es que load se prueba una cierta cantidad de peticiones y en stress se busca encontrar lo que más soporta el sistema.

1
12647Puntos

buen resumen. Me gustaría saber los fundamentos o herramientas que esta usando un Q.A y automatizador en .Net_ ejemplos como jenkis , etc.

Saludos