Como desarrolladores de productos de software solemos enfocarnos en la parte funcional del sistema... pero, ¿nos detenemos a evaluar qué pasará cuando nuestro sistema esté funcionando con miles de usuarios?
Para ello, hoy veremos la diferencia entre dos grandes herramientas que nos ayudarán a mejorar calidad y rendimiento, ¡adelante!
Introducción
Las pruebas de software se definen como una actividad para verificar si los resultados reales coinciden con los resultados esperados y para garantizar que el software este libre de defectos. Implica la ejecución de un componente del sistema para evaluar una o más propiedades de interés. Es una actividad más en el proceso de control de calidad.
Podemos clasificar las pruebas de software en dos categorías según los objetivos en que se centran:
- Pruebas funcionales: se utilizan para validar que la funcionalidad de la aplicación se comporta como esperamos. Por ejemplo, pruebas unitarias.
- Pruebas no funcionales: se utilizan para validar aspectos no funcionales de una aplicación como por ejemplo rendimiento o usabilidad. De esta manera, en las pruebas no funcionales prestaremos atención a la forma en que el sistema funciona y no por medio de comportamientos específicos.
Asimismo, dentro de las pruebas no funcionales podemos encontrarnos con una gran variedad de diferentes tipos, dentro de los cuales podemos mencionar a las pruebas de carga y estrés.
Pruebas de carga
Por un lado las pruebas de carga (load testing) tienen como objetivo saber cuánta carga puede soportar un sistema sin empeorar su rendimiento. Estas pruebas sirven para conocer la capacidad máxima de un sistema bajo una carga determinada y poder dar con las causas que puedan condicionar su rendimiento.
Para ayudarnos a entender este concepto podemos imaginarnos el siguiente ejemplo:
Supongamos que hemos construído un puente y tenemos que probar su calidad. Para esto comenzaremos a agregar grupos pequeños de personas cada cierta cantidad de tiempo, indicándoles que realicen una acción como saltar una vez arriba del puente.
A medida que vamos agregando más grupos comenzaremos a notar algunas falencias en el puente y podremos dar con el límite de personas soportadas sin tener inconvenientes.
Pruebas de estrés
Por otro lado las pruebas de estrés (stress testing) son realizadas sobrecargando un sistema más allá de sus especificaciones, para verificar cómo y cuándo fallará. Dentro de informática podemos colocar una gran carga en la base de datos, entradas (peticiones) continuas al sistema o almacenar información más allá de la capacidad de memoria del sistema.
Siguiendo con el ejemplo anterior, esta vez agregaremos un gran grupo de personas en el mismo instante y en un lapso corto de tiempo agregaremos aún más, observando las fallas en mayor medida.
Conclusión
Por último, para poner en práctica estas pruebas y comenzar a notar sus diferencias te invito a que utilices una herramienta muy conocida llamada JMeter, podrás encontrar más información acerca de la misma en uno de nuestros anteriores posts.