Título: Metodología para Pruebas de Performance
Marco de Trabajo: Investigación CES
Área de desarrollo: Ingeniería de Software, Testing
Autor: Matías Reina
Contacto: mreina@ces.com.uy
Día: MIERCOLES
Hora: 16:00
Palabras Claves: Metodología, Pruebas, Desempeño, Pruebas de Performance, Pruebas de Carga
Resumen:
Uno de los desafíos de las pruebas de performance es lograr reducir riesgos del negocio y obtener información útil del sistema en tiempos reducidos, tratando de obtener información de valor que permita maximizar la relación costo/beneficio de la prueba. Para poder atacar la complejidad que presentan este tipo de pruebas sin perder el foco en sus metas, es necesaria una metodología aplicable que provea un mapa de ruta en el proyecto de pruebas de desempeño. Esta metodología fue desarrollada por el CES y utilizada con éxito en proyectos críticos de la industria, con fundamento académico, pero sobre todo sumamente práctica.
Una prueba de performance se define como una investigación técnica para determinar o validar la velocidad, escalabilidad y/o características de estabilidad de un sistema bajo prueba. Las pruebas de carga (load test) tienen como objetivo simular la realidad a la cual estará sometido el sistema en producción (lo cual se conoce como escenario) para analizar su desempeño ante esa situación.
La metodología presentada es aplicable a pruebas de carga, y puede ser adaptada para otro tipo de pruebas de performance como por ejemplo pruebas de estrés o escalabilidad. La misma consta de seis etapas: Etapa inicial, Análisis de requerimientos, Automatización, Armado de la infraestructura definitiva, Ejecución y reportes y Etapa final. La metodología ha sido pensada para ser usada por una empresa de pruebas tercerizadas (outsourcing) como lo es el CES, por lo que hace foco en identificar claramente las responsabilidades de todas las partes involucradas. Sin embargo, la misma puede ser utilizada tanto por la empresa de desarrollo para realizar sus pruebas de performance como por cualquier empresa que adquiere un nuevo sistema.
Dicha metodología ha demostrado ser efectiva para la temprana detección de problemas de desempeño, ayudar a realizar la “sintonía” de los diferentes componentes del sistema y conocer los límites del sistema antes de alcanzarlos. Contar con una metodología probada para realizar pruebas de desempeño ayuda también a estimar el esfuerzo y los recursos necesarios para la realización de este tipo de pruebas.
Es importante destacar que el área de estudio de pruebas de performance es reciente, las metodologías sobre estas pruebas no se encuentran ampliamente desarrolladas ni estandarizadas.
La complejidad de las tareas que se deben desarrollar para que una prueba de desempeño sea útil es tal, que merece el tratamiento de dicha actividad como un proyecto en sí mismo.
Se trata de un proceso en etapas secuenciales, con la particularidad de que la quinta etapa es iterativa.
La ejecución del proceso de pruebas de desempeño está a cargo de profesionales que cumplen roles bien definidos. Del lado del equipo de pruebas, existe un líder de proyecto quien se encarga de la gestión del proyecto, e interactúa con su contraparte en la empresa cliente, por lo general el gerente de tecnología o el líder de proyecto de desarrollo. Esta es la persona responsable del proyecto de pruebas por parte del cliente. Además, se cuenta con los “testers” que son los idóneos en las distintas herramientas de testing utilizadas en el proyecto, así como también del proceso. En contraparte al equipo de pruebas, se tienen varios roles. Además del líder de proyecto antes nombrado, existen los roles de experto funcional y experto de infraestructura. Los expertos funcionales son personas conocedoras del dominio de la aplicación o del negocio, mientras que los expertos de la infraestructura son personas idóneas en los distintos componentes del sistema.
|