Optimización de Recursos en Pruebas de Sistema
Otros títulos:
Resource Optimization in End to End Testing
Autor(es) y otros:
Director(es):
Palabra(s) clave:
Optimización de recursos
End to End
Pruebas de Sistema
Resource Optimization
Contenerized execution
Docker
E2E
Containers
Fecha de publicación:
Serie:
Máster Universitario en Ingeniería Informática
Descripción física:
Resumen:
La ejecución de grandes conjuntos de casos de pruebas en productos software complejos es algo costoso que puede llegar a requerir prohibitivas cantidades de recursos como pudiera ser tiempo, dinero o infraestructuras lógicas/físicas [1]. Para resolver este tipo de problemáticas, en otros campos científico-técnicos suelen abordar estas referidas como uso eficiente u optimización de recursos. La problemática más recurrente suele ir relacionada con dados unos recursos finitos, optimizar su uso para maximizar los beneficios o resultados (realizar un estudio de la calidad del código con una efectividad similar). En el campo de las pruebas, el rápido crecimiento que ha experimentado el sector del desarrollo durante los últimos años ha dado de sí varias problemáticas en las que hay un amplio margen de mejora en cuanto a la optimización de recursos. Las últimas tendencias, acorde con el crecimiento y la popularidad de los entornos de desarrollo continuos y las infraestructuras en el Cloud [2], son el uso de los recursos contenerizados/ virtualizados con objeto de aprovechar los potenciales recursos flexibles e “ilimitados” bajo demanda que nos ofrece el Cloud. A pesar de que la virtualización/contenerización ha supuesto diversos avances en cuanto a uso de los recursos, hay una serie de desafíos abiertos como la ejecución eficiente de pruebas de sistema (también denominadas End to End) contenerizadas. Durante la ejecución de las pruebas de sistema, son necesarios sistemas cuyo despliegue y/o preparación son costosos y complejos, debido a los cuales ejecutarlas tantas veces como sería necesario se convierte en prohibitivo [1][3]. Esta problemática se agrava cuando dichas pruebas son incorporadas en entornos de integración continua, donde serán re-ejecutadas por cada nueva versión desplegada, con el consiguiente gasto de recursos. Para optimizar estos recursos se podrían realizar menos pruebas, repercutiendo en que quedasen defectos encubiertos en el software y una vez desplegado, arreglarlos en producción pueda tener un coste hasta 100 superior [4]. En cambio, otra solución que si ejecutase todos los casos de prueba, podría pasar por optimizar los recursos orquestando las pruebas de manera que se pudiera reutilizar los recursos que ya hubiera desplegados. Este trabajo de fin de máster presenta una técnica de orquestación denominada RETORCH (Resource-aware E2E Test ORCHestration) compuesta de una caracterización racional de los recursos empleados en las pruebas de sistema para posteriormente basándose en dicha identificación realizar un agrupamiento y ordenación de los casos de prueba acorde al uso que estos hacen de los recursos con el objetivo de reducir el coste Las ideas previas fueron presentadas en QUATIC [5], artículo que más tarde sería aceptado y extendido para la revista Software Quality Journal [6]. Recientemente RETORCH ha sido presentado cómo póster en el ACM Student Contest de la 42th International Conference on Software Engineering.
La ejecución de grandes conjuntos de casos de pruebas en productos software complejos es algo costoso que puede llegar a requerir prohibitivas cantidades de recursos como pudiera ser tiempo, dinero o infraestructuras lógicas/físicas [1]. Para resolver este tipo de problemáticas, en otros campos científico-técnicos suelen abordar estas referidas como uso eficiente u optimización de recursos. La problemática más recurrente suele ir relacionada con dados unos recursos finitos, optimizar su uso para maximizar los beneficios o resultados (realizar un estudio de la calidad del código con una efectividad similar). En el campo de las pruebas, el rápido crecimiento que ha experimentado el sector del desarrollo durante los últimos años ha dado de sí varias problemáticas en las que hay un amplio margen de mejora en cuanto a la optimización de recursos. Las últimas tendencias, acorde con el crecimiento y la popularidad de los entornos de desarrollo continuos y las infraestructuras en el Cloud [2], son el uso de los recursos contenerizados/ virtualizados con objeto de aprovechar los potenciales recursos flexibles e “ilimitados” bajo demanda que nos ofrece el Cloud. A pesar de que la virtualización/contenerización ha supuesto diversos avances en cuanto a uso de los recursos, hay una serie de desafíos abiertos como la ejecución eficiente de pruebas de sistema (también denominadas End to End) contenerizadas. Durante la ejecución de las pruebas de sistema, son necesarios sistemas cuyo despliegue y/o preparación son costosos y complejos, debido a los cuales ejecutarlas tantas veces como sería necesario se convierte en prohibitivo [1][3]. Esta problemática se agrava cuando dichas pruebas son incorporadas en entornos de integración continua, donde serán re-ejecutadas por cada nueva versión desplegada, con el consiguiente gasto de recursos. Para optimizar estos recursos se podrían realizar menos pruebas, repercutiendo en que quedasen defectos encubiertos en el software y una vez desplegado, arreglarlos en producción pueda tener un coste hasta 100 superior [4]. En cambio, otra solución que si ejecutase todos los casos de prueba, podría pasar por optimizar los recursos orquestando las pruebas de manera que se pudiera reutilizar los recursos que ya hubiera desplegados. Este trabajo de fin de máster presenta una técnica de orquestación denominada RETORCH (Resource-aware E2E Test ORCHestration) compuesta de una caracterización racional de los recursos empleados en las pruebas de sistema para posteriormente basándose en dicha identificación realizar un agrupamiento y ordenación de los casos de prueba acorde al uso que estos hacen de los recursos con el objetivo de reducir el coste Las ideas previas fueron presentadas en QUATIC [5], artículo que más tarde sería aceptado y extendido para la revista Software Quality Journal [6]. Recientemente RETORCH ha sido presentado cómo póster en el ACM Student Contest de la 42th International Conference on Software Engineering.
Patrocinado por:
Grupo de Investigación en Ingeniería del Software bajo TestEAMoS (TIN2016-76956-C3-1-R) y continuado en TestBUS (PID2019-105455GB-C32)
Colecciones
- Trabajos Fin de Máster [5265]