un método de generación de pruebas de rendimiento para múltiples tecnologías desde modelos uml...
Post on 16-Jul-2015
469 Views
Preview:
TRANSCRIPT
Introducción Generación de artefactos de prueba de rendimiento Conclusiones y trabajo futuro
Un Método de Generación de Pruebas deRendimiento para Múltiples Tecnologías desde
Modelos UML con Anotaciones MARTE
A. García Domínguez e I. Medina Bulo
SEUniversidad de Cádiz, España
JISBD 201218 septiembre, 2012
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 1 / 19
Introducción Generación de artefactos de prueba de rendimiento Conclusiones y trabajo futuro
Contenidos
1 IntroducciónMotivaciónModelos de rendimientoAlgoritmos de inferencia
2 Generación de artefactos de prueba de rendimientoEnfoque generalDesde pruebas unitarias en JavaDesde documentos WSDL
3 Conclusiones y trabajo futuro
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 2 / 19
Introducción Generación de artefactos de prueba de rendimiento Conclusiones y trabajo futuro
Motivación
Rendimiento como requisitoEn algunos contextos, puede ser clave para tener éxitoSe firman Acuerdos de Nivel de Servicio en partes críticasEs difícil garantizar el cumplimiento de un acuerdo en unacomposición de Servicios Web
Principal reto: dependencia en otros servicios¿Cuánto rendimiento debemos pedir?Insuficiente: no cumpliremos nuestro acuerdoExcesivo: pagaremos más de la cuenta
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 3 / 19
Introducción Generación de artefactos de prueba de rendimiento Conclusiones y trabajo futuro
Enfoques existentes para obtener el rendimiento deseado¿Desde acuerdos o desde código? ¿Ascendente o descendente?
Ingeniería de rendimiento tradicional: acuerdos, ascendenteTenemos acuerdos para todos los componentesEstimamos el rendimiento global y comparamos¿Y si no tenemos esa información para algún servicio?
Perfilado o monitorización: código, ascendenteHemos implementado todos los serviciosMedimos tiempos reales y corregimos cuellos de botella¿Y si tenemos que firmar un acuerdo antes de implementar?
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 4 / 19
Introducción Generación de artefactos de prueba de rendimiento Conclusiones y trabajo futuro
Nuestro enfoque: inferencia de rendimiento
CaracterísticasDesde acuerdos, descendenteTenemos requisitos para la composición y anotaciones localescon nuestros conocimientos parciales sobre los servicios usadosInferimos el rendimiento mínimo a exigir a los servicios
VentajasPuede usar la información incompleta que haya disponiblesobre los serviciosPuede ayudar a definir el acuerdo antes de implementar
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 5 / 19
Introducción Generación de artefactos de prueba de rendimiento Conclusiones y trabajo futuro
Ejemplo de modelo: motor de búsqueda de viajes
RecibirConsulta
ConsultarAerolínea A
ConsultarAerolínea B
ConsultarHotel C
ConsultarHotel D
Reservarc
!c
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 6 / 19
Introducción Generación de artefactos de prueba de rendimiento Conclusiones y trabajo futuro
Inferencia de peticiones por segundo
«gastep»{throughput = ?}
RC
«gastep»{throughput = ?}
CAA
«gastep»{throughput = ?}
CAB
«gastep»{throughput = ?}
CHC
«gastep»{throughput = ?}
CHD
«gastep»{throughput = ?}
R
«gascenario»{throughput =(10Hz, req)}
«gastep»{prob = 0.8}
c
«gastep»{prob = 0.2}
!c
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 7 / 19
Introducción Generación de artefactos de prueba de rendimiento Conclusiones y trabajo futuro
Inferencia de peticiones por segundo
«gastep»{throughput = 10}
RC
«gastep»{throughput = 10}
CAA
«gastep»{throughput = 10}
CAB
«gastep»{throughput = 8}
CHC
«gastep»{throughput = 2}
CHD
«gastep»{throughput = 10}
R
«gascenario»{throughput =(10Hz, req)}
«gastep»{prob = 0.8}
c
«gastep»{prob = 0.2}
!c
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 7 / 19
Introducción Generación de artefactos de prueba de rendimiento Conclusiones y trabajo futuro
Inferencia de tiempos límite
«gastep» {hostDemand= {(sRP, req)}}
RR
«gastep» {hostDemand= {(5, req)}}
QAA
«gastep» {hostDemand= {(sAB, req)},rep=3}
QAB
«gastep» {hostDemand= {(sHC, req)}}
QHC
«gastep» {hostDemand= {(2 + sHD, req)}}
QHD
«gastep» {hostDemand= {(3 × sR, req)}}
B
«gascenario»{respT = (10s, req)}«gaanalysiscontext»{contextParams = {sRP = ?, sAB = ?,sHC = ?, sHD = ?,
sR = ?}}
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 8 / 19
Introducción Generación de artefactos de prueba de rendimiento Conclusiones y trabajo futuro
Inferencia de tiempos límite
«gastep» {hostDemand= {(sRP, req)}}
RR
«gastep» {hostDemand= {(5, req)}}
QAA
«gastep» {hostDemand= {(sAB, req)},rep=3}
QAB
«gastep» {hostDemand= {(sHC, req)}}
QHC
«gastep» {hostDemand= {(2 + sHD, req)}}
QHD
«gastep» {hostDemand= {(3 × sR, req)}}
B
«gascenario»{respT = (10s, req)}«gaanalysiscontext»{contextParams = {sRP = ?, sAB = ?,sHC = ?, sHD = ?,
sR = ?}}
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 8 / 19
Introducción Generación de artefactos de prueba de rendimiento Conclusiones y trabajo futuro
Inferencia de tiempos límite
«gastep» {hostDemand= {(sRP, req)}}
RR
«gastep» {hostDemand= {(5, req)}}
QAA
«gastep» {hostDemand= {(sAB, req)},rep=3}
QAB
«gastep» {hostDemand= {(sHC, req)}}
QHC
«gastep» {hostDemand= {(2 + sHD, req)}}
QHD
«gastep» {hostDemand= {(3 × sR, req)}}
B
«gascenario»{respT = (10s, req)}«gaanalysiscontext»{contextParams = {
sRP = 0,6, sAB = 1,66,sHC = 2,6, sHD = 0,6,
sR = 0,6}}
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 8 / 19
Introducción Generación de artefactos de prueba de rendimiento Conclusiones y trabajo futuro
Contenidos
1 IntroducciónMotivaciónModelos de rendimientoAlgoritmos de inferencia
2 Generación de artefactos de prueba de rendimientoEnfoque generalDesde pruebas unitarias en JavaDesde documentos WSDL
3 Conclusiones y trabajo futuro
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 9 / 19
Introducción Generación de artefactos de prueba de rendimiento Conclusiones y trabajo futuro
Punto de partida
Modelo derendimiento
Modelodiseño/impl.
TransformaciónM2T
Artefactosde pruebas
¿Cómo podemos relacionar los modelos de rendimiento con losmodelos de diseño e implementación, a la vez que los mantenemos
limpios de detalles innecesarios?
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 10 / 19
Introducción Generación de artefactos de prueba de rendimiento Conclusiones y trabajo futuro
Entrelazado de modelos para unir rendimiento y diseño
Modelo derendimiento
Modelodiseño/impl.
Modeloentrelazado
TransformaciónM2T
Artefactosde pruebas
¿Qué hacer cuando no tenemos modelos de diseño o deimplementación, sino sólo código?
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 11 / 19
Introducción Generación de artefactos de prueba de rendimiento Conclusiones y trabajo futuro
Extracción de modelos desde código
Modelo derendimiento
Modelodiseño/impl.
Extracciónde modelos
Código
Modelo deentrelazado
TransformaciónM2T
Artefactosde pruebas
¿Qué hacer si el modelo de entrelazado no es suficientementedetallado?
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 12 / 19
Introducción Generación de artefactos de prueba de rendimiento Conclusiones y trabajo futuro
Refinamiento de modelos de entrelazado y resultado final
Modelo derendimiento
Modelodiseño/impl.
Extracciónde modelos
Código
Modelo deentrelazado
Transf. M2Mde refinado
Modelo entr.refinado
TransformaciónM2T
Artefactosde pruebas
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 13 / 19
Introducción Generación de artefactos de prueba de rendimiento Conclusiones y trabajo futuro
Generación desde pruebas unitarias en JavaMuchos SW se hacen en Java (Apache Axis, Apache CXF) y se prueban con JUnit
Código Desc. modelos Modelo entrel. Artefactos de prueba
public class MisPruebasUnitarias {@Testpublic void rechazado() {
// ... test code ...}
@Testpublic void aceptado() {
// ... test code ...}
}
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 14 / 19
Introducción Generación de artefactos de prueba de rendimiento Conclusiones y trabajo futuro
Generación desde pruebas unitarias en JavaMuchos SW se hacen en Java (Apache Axis, Apache CXF) y se prueban con JUnit
Código Desc. modelos Modelo entrel. Artefactos de prueba
Casos de prueba
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 14 / 19
Introducción Generación de artefactos de prueba de rendimiento Conclusiones y trabajo futuro
Generación desde pruebas unitarias en JavaMuchos SW se hacen en Java (Apache Axis, Apache CXF) y se prueban con JUnit
Código Desc. modelos Modelo entrel. Artefactos de prueba
Caso de prueba
Requisito de rendimiento
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 14 / 19
Introducción Generación de artefactos de prueba de rendimiento Conclusiones y trabajo futuro
Generación desde pruebas unitarias en JavaMuchos SW se hacen en Java (Apache Axis, Apache CXF) y se prueban con JUnit
Código Desc. modelos Modelo entrel. Artefactos de prueba
@RunWith(ContiPerfSuiteRunner.class)@SuiteClasses(MyUnitTests.class)@PerfTest( invocations = 100, threads = 10)@Required(max=1000)public class PruebaCargaInferida {}
Se usa la biblioteca ContiPerf para generar menos códigoSe pueden convertir conjuntos completos o pruebas sueltasSe pueden expresar tiempos límite como máximos, promedios,percentiles (90%, 95% , 99%) o medianas
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 14 / 19
Introducción Generación de artefactos de prueba de rendimiento Conclusiones y trabajo futuro
Generación desde documentos WSDL
DiferenciasPodemos usar el documento WSDL como modelo de diseñoNecesitamos otro metamodelo específico de entrelazadoUsamos una herramienta de pruebas de rendimiento separada:The Grinder
Generación de casos de prueba: refinamiento del entrelazadoEl anterior enfoque reutilizaba pruebas existentesEn este caso, el modelo de entrelazado puede especificar cómogenerar las pruebasEl paso de refinamiento del modelo de entrelazado podríaimplementar la generación
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 15 / 19
Introducción Generación de artefactos de prueba de rendimiento Conclusiones y trabajo futuro
Conclusiones y trabajo futuro
ResultadosHemos presentado un enfoque general para generar pruebas derendimiento para varias tecnologías desde los mismos requisitosHemos mostrado dos formas de usar este enfoque, empleandotecnologías libremente disponiblesAmbos enfoques están implementados y disponibles bajo laEclipse Public License
Trabajo futuroEstrategias alternativas para generar entradas desde WSDLValidar el enfoque con casos de estudio mayores
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 16 / 19
Fin de la presentación
¡Gracias por su atención!
Código y descargas:https://neptuno.uca.es/redmine/projects/sodmt
E-mail:antonio.garciadominguez@uca.es
Twitter:@antoniogado
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 17 / 19
Referencias I
A. García-Domínguez, I. Medina-Bulo and M. Marcos-Bárcena.Model-driven design of performance requirements with UMLand MARTE.Actas de ICSOFT 2011, Sevilla, España, págs. 54–63.
H. Bruneliere, J. Cabot, F. Jouault, and F. Madiot.MoDisco: a generic and extensible framework for model drivenreverse engineering.Actas de ASE 2010, Antwerp, Bélgica, págs. 173–174.
D. S. Kolovos.Epsilon ModeLink.http://eclipse.org/epsilon/doc/modelink/
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 18 / 19
Referencias II
V. Bergmann.ContiPerf 2.http://databene.org/contiperf.html
A. García Domínguez e I. Medina Bulo UCASE (Universidad de Cádiz)
Generación de Pruebas de Rendimiento desde MARTE 19 / 19
top related