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.
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:
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.
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.
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.
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.
¿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
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.
Cuál es diferencia de entre la prueba de stress y load testing?
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.
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
@Platzi, para cuando un curso de performance / load testing?
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
que buen blog.