En la ingeniería del software, las pruebas de rendimiento son las pruebas que se realizan, desde una perspectiva, para determinar lo rápido que realiza una tarea un sistema en condiciones particulares de trabajo.
Para su diagnóstico, los ingenieros de software utilizan herramientas como pueden ser monitorizaciones que midan qué partes de un dispositivo o software contribuyen más al mal rendimiento o para establecer niveles (y umbrales) del mismo que mantenga un tiempo de respuesta aceptable.
Esta carga puede ser el número esperado de usuarios concurrentes utilizando la aplicación y que realizan un número específico de transacciones durante el tiempo que dura la carga.
Esta prueba normalmente se hace para determinar si la aplicación puede aguantar una carga esperada continuada.
Generalmente esta prueba se realiza para determinar si hay alguna fuga de memoria en la aplicación.
Por otro lado, en relación con este mito, también es falso que cualquier cambio en la interfaz de usuario, especialmente en el ámbito Web, supone un completo desarrollo de los scripts desde cero.
Este problema se vuelve mayor si los protocolos involucrados incluyen Web Services, Siebel, scripts de acciones, Citrix o SAP.
Existen diversas herramientas disponibles para la realización de tales pruebas.
Estas herramientas suelen ejecutar un conjunto de pruebas que simulan usuarios reales utilizando el sistema.
A veces los resultados pueden revelar curiosidades, por ejemplo, si el promedio de tiempo de respuesta puede ser aceptable, si existen valores anómalos en las peticiones que necesitan tiempos considerablemente más largo para ejecutarse - algo que puede ser causado por peticiones poco eficientes a la base de datos, fotos, etc.
¿Cuánto tiempo tarda en recuperarse si se reduce una gran carga?
La idea es identificar el "eslabón más débil" - hay, inevitablemente, una parte del sistema que, si responde con mayor rapidez, eso se traducirá en un funcionamiento del sistema global más rápido.
Hay una supuesta historia de una empresa que gastó una gran cantidad de tiempo y dinero para optimizar su software sin haber realizado un análisis adecuado del problema.
Las cargas deben ser realizadas en puntos realistas del sistema.