Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf ·...

41
Automatizaci ´ on de Pruebas para Servicios Web Generaci ´ on de Propiedades y Modelos Mac´ ıas L ´ opez 1 , Henrique Ferreiro 1 , Miguel A. Francisco 2 Laura M. Castro 1 1 Grupo de Investigaci´ on MADS (Universidade da Coru ˜ na) 2 Interoud Innovation S.L. (A Coru˜ na) Jornadas de Programaci ´ on y Lenguajes (PROLE’13) Madrid, 18 de Septiembre de 2013

Transcript of Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf ·...

Page 1: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Automatizacion de Pruebas para Servicios WebGeneracion de Propiedades y Modelos

Macıas Lopez1, Henrique Ferreiro1, Miguel A. Francisco2

Laura M. Castro1

1Grupo de Investigacion MADS (Universidade da Coruna)2Interoud Innovation S.L. (A Coruna)

Jornadas de Programacion y Lenguajes (PROLE’13)

Madrid, 18 de Septiembre de 2013

Page 2: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Motivacion

� Vivimos en un mundo de servicios

web

� El software se ha mudado a la red� Una de las soluciones software de integracion mas extendidas

� ¡Pruebas, pruebas, pruebas!

� ¡Coste, coste, coste!

� Compromiso: esfuerzo vs. coste ⇒ menor alcance

???

2 de 19

Page 3: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Motivacion

� Vivimos en un mundo de servicios web

� El software se ha mudado a la red� Una de las soluciones software de integracion mas extendidas

� ¡Pruebas, pruebas, pruebas!

� ¡Coste, coste, coste!

� Compromiso: esfuerzo vs. coste ⇒ menor alcance

???

2 de 19

Page 4: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Motivacion

� Vivimos en un mundo de servicios web

� El software se ha mudado a la red� Una de las soluciones software de integracion mas extendidas

� ¡Pruebas, pruebas, pruebas!

� ¡Coste, coste, coste!

� Compromiso: esfuerzo vs. coste ⇒ menor alcance

???

2 de 19

Page 5: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Motivacion

� Vivimos en un mundo de servicios web

� El software se ha mudado a la red� Una de las soluciones software de integracion mas extendidas

� ¡Pruebas, pruebas, pruebas!

� ¡Coste, coste, coste!

� Compromiso: esfuerzo vs. coste ⇒ menor alcance

???

2 de 19

Page 6: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Motivacion

� Vivimos en un mundo de servicios web

� El software se ha mudado a la red� Una de las soluciones software de integracion mas extendidas

� ¡Pruebas, pruebas, pruebas!

� ¡Coste, coste, coste!

� Compromiso: esfuerzo vs. coste ⇒ menor alcance

???

2 de 19

Page 7: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Motivacion

� Vivimos en un mundo de servicios web

� El software se ha mudado a la red� Una de las soluciones software de integracion mas extendidas

� ¡Pruebas, pruebas, pruebas!

� ¡Coste, coste, coste!

� Compromiso: esfuerzo vs. coste

⇒ menor alcance

???

2 de 19

Page 8: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Motivacion

� Vivimos en un mundo de servicios web

� El software se ha mudado a la red� Una de las soluciones software de integracion mas extendidas

� ¡Pruebas, pruebas, pruebas!

� ¡Coste, coste, coste!

� Compromiso: esfuerzo vs. coste ⇒ menor alcance

???

2 de 19

Page 9: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Motivacion

� Vivimos en un mundo de servicios web

� El software se ha mudado a la red� Una de las soluciones software de integracion mas extendidas

� ¡Pruebas, pruebas, pruebas!

� ¡Coste, coste, coste!

� Compromiso: esfuerzo vs. coste ⇒ menor alcance

???2 de 19

Page 10: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Propuesta

� ¿Y si pudiesemos automatizar las pruebas de servicios web?

� No solo su ejecucion� Tambien su generacion

� ¿Y si pudieramos. . .

� dada una descripcion del servicio� obtener automaticamente tantos casos de prueba como deseemos?

¿¡Imposible!?

3 de 19

Page 11: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Propuesta

� ¿Y si pudiesemos automatizar las pruebas de servicios web?

� No solo su ejecucion� Tambien su generacion

� ¿Y si pudieramos. . .

� dada una descripcion del servicio� obtener automaticamente tantos casos de prueba como deseemos?

¿¡Imposible!?

3 de 19

Page 12: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Propuesta

� ¿Y si pudiesemos automatizar las pruebas de servicios web?

� No solo su ejecucion� Tambien su generacion

� ¿Y si pudieramos. . .

� dada una descripcion del servicio� obtener automaticamente tantos casos de prueba como deseemos?

¿¡Imposible!?

3 de 19

Page 13: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Propuesta

� ¿Y si pudiesemos automatizar las pruebas de servicios web?

� No solo su ejecucion� Tambien su generacion

� ¿Y si pudieramos. . .

� dada una descripcion del servicio� obtener automaticamente tantos casos de prueba como deseemos?

¿¡Imposible!?

3 de 19

Page 14: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

“Tantos casos de prueba como deseemos”

4 de 19

Page 15: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Pruebas basadas en propiedades

5 de 19

Page 16: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Pruebas basadas en propiedades (PBT)

� ¿Por que es difıcil cumplir con el compromiso de esfuerzo/costeque suponen las pruebas?

� Escribir casos de prueba manualmente es tedioso� Se deja para manana lo que (no) se quiere hacer hoy

� Usando PBT:

� Se escriben enunciados declarativos que describen/especifican el sw

(propiedades)� Se escriben generadores de datos para ejemplificarlos� Se utilizan herramientas PBT que traducen esos enunciados en

tantos casos de prueba como deseemos

6 de 19

Page 17: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Pruebas basadas en propiedades (PBT)

� ¿Por que es difıcil cumplir con el compromiso de esfuerzo/costeque suponen las pruebas?

� Escribir casos de prueba manualmente es tedioso� Se deja para manana lo que (no) se quiere hacer hoy

� Usando PBT:

� Se escriben enunciados declarativos que describen/especifican el sw

(propiedades)� Se escriben generadores de datos para ejemplificarlos� Se utilizan herramientas PBT que traducen esos enunciados en

tantos casos de prueba como deseemos

6 de 19

Page 18: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Pruebas basadas en propiedades (PBT)

� ¿Por que es difıcil cumplir con el compromiso de esfuerzo/costeque suponen las pruebas?

� Escribir casos de prueba manualmente es tedioso� Se deja para manana lo que (no) se quiere hacer hoy

� Usando PBT:

� Se escriben enunciados declarativos que describen/especifican el sw

(propiedades)� Se escriben generadores de datos para ejemplificarlos� Se utilizan herramientas PBT que traducen esos enunciados en

tantos casos de prueba como deseemos

6 de 19

Page 19: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Pruebas basadas en propiedades (PBT)

� ¿Por que es difıcil cumplir con el compromiso de esfuerzo/costeque suponen las pruebas?

� Escribir casos de prueba manualmente es tedioso� Se deja para manana lo que (no) se quiere hacer hoy

� Usando PBT:

� Se escriben enunciados declarativos que describen/especifican el sw

(propiedades)

� Se escriben generadores de datos para ejemplificarlos� Se utilizan herramientas PBT que traducen esos enunciados en

tantos casos de prueba como deseemos

6 de 19

Page 20: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Pruebas basadas en propiedades (PBT)

� ¿Por que es difıcil cumplir con el compromiso de esfuerzo/costeque suponen las pruebas?

� Escribir casos de prueba manualmente es tedioso� Se deja para manana lo que (no) se quiere hacer hoy

� Usando PBT:

� Se escriben enunciados declarativos que describen/especifican el sw

(propiedades)� Se escriben generadores de datos para ejemplificarlos� Se utilizan herramientas PBT que traducen esos enunciados en

tantos casos de prueba como deseemos

6 de 19

Page 21: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Pruebas basadas en propiedades (PBT)Probando un servicio web

� Caso de prueba manual: escribir invocaciones HTTP para las

funcionalidades disponibles y ficheros XML/JSON (de entrada y

salida), utilizar herramientas para realizar las invocaciones,

recibir/monitorizar las respuestas, escribir la comparacion,

detectar problemas, depurarlos, y vuelta a empezar

� PBT: escribir una propiedad que relacione la entrada y la salida de

cada funcionalidad disponible y un generador de entradas, escribir

la comparacion

7 de 19

Page 22: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Pruebas basadas en propiedades (PBT)Probando un servicio web

� Caso de prueba manual: escribir invocaciones HTTP para las

funcionalidades disponibles y ficheros XML/JSON (de entrada y

salida), utilizar herramientas para realizar las invocaciones,

recibir/monitorizar las respuestas, escribir la comparacion,

detectar problemas, depurarlos, y vuelta a empezar

� PBT: escribir una propiedad que relacione la entrada y la salida de

cada funcionalidad disponible y un generador de entradas, escribir

la comparacion

7 de 19

Page 23: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Pruebas basadas en propiedades (PBT)Probando un servicio web

∀a, b ∈ Z, addWS(a, b) = a + b

prop_ws_add() ->

?FORALL({A, B}, {int(), int()},

ws_call(add, A, B) == A+B).

8 de 19

Page 24: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Pruebas basadas en propiedadesProbando un servicio web

GET http://calculator.ws.es:8080/add?a=1&b=2

POST http://calculator.ws.es:8080

{ "operation" : add ,

"operands" : { "left_operand" : 1 ,

"right_operand" : 2 } }

9 de 19

Page 25: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Pruebas basadas en propiedadesProbando un servicio web

<?xml version="1.0" encoding="UTF-8"?>

<result>

<description>Resultado de la suma</description>

<value>3</value>

</result>

{ "description" : "Resultado de la suma" ;

"value" : 3 }

10 de 19

Page 26: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Pruebas basadas en propiedadesProbando un servicio web

Problema:

� Escribir propiedades y modelos tampoco es tan divertido

� Componentes con estado S: la propiedad es la conformidad con un

modelo de maquina de estados (S0,OpsWS, δ(S,Opi))

∀Opi ∈ OpsWS,

precond(Opi ,S) ∧expectedResult(Opi ,S) ∧postcond(Opi ,S′)

� Se deja para manana. . .

11 de 19

Page 27: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Pruebas basadas en propiedadesProbando un servicio web

Problema:

� Escribir propiedades y modelos tampoco es tan divertido

� Componentes con estado S: la propiedad es la conformidad con un

modelo de maquina de estados (S0,OpsWS, δ(S,Opi))

∀Opi ∈ OpsWS,

precond(Opi ,S) ∧expectedResult(Opi ,S) ∧postcond(Opi ,S′)

� Se deja para manana. . .

11 de 19

Page 28: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Pruebas basadas en propiedadesProbando un servicio web

Problema:

� Escribir propiedades y modelos tampoco es tan divertido

� Componentes con estado S: la propiedad es la conformidad con un

modelo de maquina de estados (S0,OpsWS, δ(S,Opi))

∀Opi ∈ OpsWS,

precond(Opi ,S) ∧expectedResult(Opi ,S) ∧postcond(Opi ,S′)

� Se deja para manana. . .

11 de 19

Page 29: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Objetivo: automatizacion de PBT para SW

Generacion automatica de propiedades y modelos:

� Dada una descripcion del servicio web (WSDL) + (OCL)

� Creacion automaticamente propiedades y modelos de prueba

para la herramientas PBT QuickCheck

12 de 19

Page 30: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Objetivo: automatizacion de PBT para SW

Generacion automatica de propiedades y modelos:

� Dada una descripcion del servicio web

(WSDL) + (OCL)

� Creacion automaticamente propiedades y modelos de prueba

para la herramientas PBT QuickCheck

12 de 19

Page 31: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Objetivo: automatizacion de PBT para SW

Generacion automatica de propiedades y modelos:

� Dada una descripcion del servicio web (WSDL)

+ (OCL)

� Creacion automaticamente propiedades y modelos de prueba

para la herramientas PBT QuickCheck

12 de 19

Page 32: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Objetivo: automatizacion de PBT para SW

Generacion automatica de propiedades y modelos:

� Dada una descripcion del servicio web (WSDL) + (OCL)

� Creacion automaticamente propiedades y modelos de prueba

para la herramientas PBT QuickCheck

12 de 19

Page 33: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Objetivo: automatizacion de PBT para SW

Generacion automatica de propiedades y modelos:

� Dada una descripcion del servicio web (WSDL) + (OCL)

� Creacion automaticamente propiedades y modelos de prueba

para la herramientas PBT QuickCheck

12 de 19

Page 34: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

WSDLparser

WSDLfile

OCLconstraints

Type information(data + services)

OCLparser

QuickCheckproperties/model

Semantic information(services)

SUT

testcases adapter

Page 35: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´
Page 36: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Automatizacion de Pruebas para Servicios WebArea de investigacion

� Tarea:

Develop methods and techniques for PBT of WS

� Paquete de trabajo:

Dealing with complexity of creating and understanding models

� Proyecto PROWESS

Property-based testing for Web Services FP7-ICT (2012-2015)

15 de 19

Page 37: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´
Page 38: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

i INFERENCIA+ INTERACCIÓN

Page 39: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

REST

Page 40: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Automatizacion de Pruebas para Servicios WebTrabajo futuros

� Modelos de prueba para interfaces (web)

� Presentacion de modelos en lenguaje semi-natural/graficamente

� Modelado de diferencias entre versiones de un servicio

� Medidas de cobertura e inyeccion de errores

� Propiedades y modelos de requisitos no funcionales

www.prowess-project.eu

19 de 19

Page 41: Automatizacion de Pruebas para Servicios Web´babel.ls.fi.upm.es/prole2013/laura_castro.pdf · Automatizacion de Pruebas para Servicios Web´ Generacion de Propiedades y Modelos´

Automatizacion de Pruebas para Servicios WebTrabajo futuros

� Modelos de prueba para interfaces (web)

� Presentacion de modelos en lenguaje semi-natural/graficamente

� Modelado de diferencias entre versiones de un servicio

� Medidas de cobertura e inyeccion de errores

� Propiedades y modelos de requisitos no funcionales

www.prowess-project.eu

19 de 19