Sie sind auf Seite 1von 28

De los casos de uso a los casos de

prueba
Proceso ETUC
Javier Gutirrez / javierj@us.es

Objetivo
Objetivo: resumir los aspectos
ms importantes de nuestra
propuesta de generacin de
pruebas a partir de casos de
uso.

ndice

Introduccin.
Actividades y tareas.
Modelos.
Generacin de objetivos de prueba.
Cobertura.
Herramienta ObjectGen.
Conclusiones.

Introduccin

Un proceso de generacin de pruebas


Casos de uso

Requisitos de informacin
Use
case
UC-01
UC-01
UC-03
UC-03
UC-03
UC-03
UC-04

Variable

Name

Type

Dom ain

System configuration
C
In
(SR-01)
Use
Variable
Nam e Array
Type
Combination
to
Cd
Out
case
discover
UC-01
System configuration
In
System configuration
C
InC
(SR-01)
UC-01
Combination
to
Out
Combination
to
Cd
InCd
Array
discover
discover
Use
Variable
UC-03
System
configuration
C
In
User combination
Cj
Inner
Array
case
UC-03
Cd
In
User tries Combination
UC-01 to
Ni SystemInner
configuration
Integer
discover
System configuration
Out
UC-01 C Combination
to(SR-01)
UC-03
User combinationdiscoverCj
Inner
UC-03
User tries
Ni
Inner
UC-03
System configuration
UC-04
System
configuration
C
UC-03
Combination
to Out
discover
UC-03
User combination
UC-03
User tries
UC-04
System configuration

Domain
(SR-01)
Array
Name
(SR-01)
CArray
Cd
Array
CInteger
(SR-01)
Cd
Cj
Ni
C

Type

Dom ain

In
Out

(SR-01)
Array

In
In

(SR-01)
Array

Inner
Inner
Out

Array
Integer
(SR-01)

Otros requisitos

Comenzaremos viendo las ideas


generales.
Nuestro punto de partida son
requisitos escritos en lenguaje
informal.
Es difcil manipularlos de
manera automtica.
el primer paso ser transformar los
requisitos en modelos manipulables
automticamente.

Un proceso de generacin de pruebas


A partir de dichos modelos
obtenemos los objetivos de
prueba.
Un objetivo de prueba es algo
que tenemos que probar.
Por ejemplo un escenario de un
caso de uso o un conjunto de
valores o una secuencia de
casos de uso.
Para obtener objetivos de prueba aplicamos
criterios de cobertura sobre los modelos.

Un proceso de generacin de pruebas


Los objetivos estn expresados
en base a los requisitos.
No es automtico
implementarlos.
An no tenemos la aplicacin
final.

Para facilitar la implementacin de las


pruebas, generamos pruebas independientes
de las herramientas.

Un proceso de generacin de pruebas


Cuando tenemos la aplicacin
final tenemos la informacin
necesaria:
Interfaces.
Resultados.
Herramientas de prueba

Traducimos las pruebas abstractas en


pruebas concretas ejecutables mediante una
herramienta.

Un proceso de generacin de
pruebas
Con la aplicacin definitiva
podemos traducir las pruebas
abstractas a cdigo ejecutable.

Un proceso de generacin de
pruebas
Resumen de ideas.
1. Construir modelos manipulables
automticamente.
2. Extraer objetivos de prueba (acciones y valores
de prueba).
3. Traducir los objetivos a casos de prueba
abstractos.
4. Implementar los casos de prueba.

Procesos e informacin
Algunas definiciones:
Objetivo de prueba: un escenario concreto de un
caso de uso (acciones de los actores y valores de
prueba).
Prueba abstracta: Prueba que verifica un objetivo
expresada de una manera genrica, no atada a
ninguna interfaz ni herramienta de prueba.
Prueba ejecutable: implementacin de una prueba
abstracta, que puede ejecutarse directamente
contra la aplicacin a prueba.

Actividades y tareas

Procesos e informacin
Una visin global

Proceso ETUC.

El proceso ETUC

El proceso ETUC
Construccin del modelo de comportamiento
1.
2.
3.

Construccin del modelo de


comportamiento.
Resolucin de inclusiones y extensiones.
Identificacin de variables operacionales.

Generacin de secuencias de acciones.


1.
2.

Seleccin de criterios de cobertura y


recorrido.
Recorrido del modelo de comportamiento.

Generacin de valores de prueba.


Resultado:
Objetivos de prueba.
(pasos + valores de prueba)

1.
2.
3.

Construccin del modelo de datos.


Particin en categoras.
Generacin de valores de prueba.

Construccin de objetivos de prueba.


1.

Combinacin de secuencias de ejecucin


con valores de prueba.

El proceso ETUC

El proceso ETUC
Definicin de interfaces abstractas.
1. Seleccin del metamodelo de componentes
GUI.
2. Definicin de las interfaces abstractas.

Construccin de casos de prueba abstractos.


1. Construccin de casos de prueba abstractos.

Construccin de rbitros.
Resultado:
Pruebas abstractas.
(acciones sobre un interfaz +
valores de prueba + resultado
esperado)

1. Identificacin de los puntos de verificacin y


resultados esperados.
2. Construccin de los rbitros.
3. Combinacin de rbitros y pruebas abstractas

El proceso ETUC

El proceso ETUC
Construccin de casos de prueba ejecutables.
1.
2.
3.
4.

Seleccin de la herramienta / plataforma de


pruebas.
Definicin de la arquitectura de prueba.
Traduccin de las pruebas, valores de prueba y
rbitros a cdigo ejecutable.
Codificacin de los test harness.

Resultado:
Cdigo ejecutable.
(acciones sobre un interfaz + valores de
prueba + resultado esperado)
Arquitectura de prueba.

Modelos

10

Modelos
Por qu modelos?.
Una propuesta de generacin de pruebas
recibe informacin de entrada, va
transformando esa informacin y genera
informacin de salida.
Los modelos describen cmo se define toda
esa informacin (entrada, transicin,
salida).

Modelos
Proceso ETUC.
Modelo de
requisitos de
informacin

Modelo de casos
de uso

Modelo de
comportamiento

CIM

Modelo de datos
de prueba

Modelo de interfaz
abstracta

PIM

Modelo de
interaccin

Modelo de interfaz
concreta

PSM

Modelo de
acciones

11

Modelo de comportamiento
Modelo de
requisitos de
informacin

Modelo de casos
de uso

Modelo de
comportamiento

Modelo de datos
de prueba

Modelo de interfaz
abstracta

Modelo de
interaccin

Modelo de interfaz
concreta
Modelo de
acciones

Como ya hemos visto existen


muchas alternativas.
Mquinas de estados.
Modelos UML: actividades,
secuencia, etc.
Modelos propios: escenarios de
uso, transiciones de casos de uso,
etc.
Modelos matemticos: Z, cadenas
de Markov, etc.

Modelos de comportamiento
Utilizamos diagramas de actividades porque

Son fciles de construir.


Se aprecia fcilmente
quien realiza las
actividades.
Se muestra claramente
la interaccin actores /
sistema.
Permiten indicar la
informacin utilizada.

12

Modelo de datos de prueba


1

Modelo de
requisitos de
informacin

Modelo de casos
de uso

2
Modelo de
comportamiento

Modelo de datos
de prueba

Modelo de interfaz
abstracta

3
Modelo de
interaccin

Modelo de interfaz
concreta
Modelo de
acciones

Estructura de la informacin (clases)

Categoras (clases)

Valores de prueba concretos (objetos)

Modelo de interfaz abstracta


Modelo de
requisitos de
informacin

Modelo de casos
de uso

Modelo de
comportamiento

Modelo de datos
de prueba

Modelo de interfaz
abstracta

Modelo de
interaccin

Modelo de interfaz
concreta
Modelo de
acciones

Definen los elementos de una


interfaz sin detalles de
implementacin.
Existen muchas alternativas en
procesos de desarrollo de sistemas.
Dos submodelos:
Modelo de componentes: describen los
elementos que podemos usar.
Modelo de interfaz: un conjunto de
componentes concreto para una pantalla.

13

Modelo de interfaz abstracta


GUI Component

GUI Screen
-title

-name
1

GUIErrorScreen
-errorMsg : string

Componentes de la interfaz (clases)

Una pantalla concreta (objetos)

GUI Object
*

Field
-value

Text

Table

ActionObject

-text

Header
insertar : Action
1
name

Body

cancelar : Action

categoria : Action

name

name
1

1
nombreField : Field
name
value

1
1
1
1

URLField : Field

1
nombreLabel : Text

linkScreen : GUI1Screen

name

title
1

1 text

11

URLLabel : Text

name
value

name
text

1
descriptionField : Field

descripcionLabel : Text

name
value

name
text

Modelo de interaccin
Modelo de
requisitos de
informacin

Modelo de casos
de uso

Modelo de
comportamiento

Modelo de datos
de prueba

Modelo de interfaz
abstracta

Modelo de
interaccin

Describe la interaccin de la prueba


y los rbitros con el sistema a un
nivel abstracto.
Dos submodelos:
Lenguaje de interaccin y rbitros.
Modelo de interaccin: interacciones y
validaciones entre la prueba y el sistema.

Modelo de interfaz
concreta
Modelo de
acciones

14

Modelo de interaccin
Interaccin prueba - sistema:
Instruccin

Descripcin

ClickOn(component)

Representa una pulsacin con el botn


izquierdo sobre el componente indicado

SetField(field, value) Asigna al campo el valor indicado.

rbitros:
Instruccin
Assert(component.attribute, value)

Descripcin
Verifica que el atributo del componente indicado coincide con el
valor.

AssertTable(table, index, GUIObject)

Verifica que la fila indicada por index de la tabla contiene todos los
atributos del objeto en el mismo orden y con el mismo valor.
Verifica que la pantalla que muestra el sistema coincide con la
pantalla indicada

Screen(GUIScreen)

Assert open file dialog

Assert file loaded

Assert(focusedScreen, openDialog)

Assert(focusedScreen,
mainScreen)

Assert(mainScreen.document,
file01.content)

Modelo de interfaz abstracta


Modelo de
requisitos de
informacin

Modelo de casos
de uso

Modelo de
comportamiento

Herramientas:

Modelo de datos
de prueba

Modelo de interfaz
abstracta

Modelo de
interaccin

Modelo de interfaz
concreta
Modelo de
acciones

15

Herramienta ObjectGen

Herramienta ObjectGen

16

Conclusiones

Objetivos
Aspectos no contemplados en ETUC.

1.
2.
3.
4.

Pruebas de secuencias de casos de uso.


Test Oracles.
Estado inicial del sistema.
Prioridad y orden de las pruebas.

17

Modelos
Proceso ETUC.

Hemos viso el qu.


Nos falta el cmo.

?
?

Lo veremos con un
caso prctico

18

Generacin de objetivos de prueba

19

Presentamos una extensin a la plantilla de


requisitos de NDT.
No es obligatoria utilizar esta extensin,
pero nos ayuda a automatizar el proceso.

Redactar casos de uso


Del actor: describe una accin de un
actor con el sistema
Del sistema: describe una accin del
sistema como solicitar informacin,
mostrar informacin
De caso de uso: si el paso consiste en la
realizacin de otro caso de uso.

Condicin de excepcin: situacin que


provoca la excepcin.
Accin asociada: Eespuesta a la
Seextrae la informacin mediante patrones lingsticos.
excepcin.
Espaol:
Terminacin
de la excepcin: indica si,
[Nmero]. [Artculo] [actor / sistema / el evento] [verbo de accin] [lo que
hace].
despus la accin asociada, el caso de uso
Ingls:
[Number]. [actor / system / event] [action verb][action performed].
continua o se cancela.

20

Aqu hay que que poner ms cosas de los


casos de uso: triggers, resultados esperados,
estc.

Modelo de comportamiento
Diagramas de actividades:

Quin realiza cada accin.

Accin descrita en el caso


de uso.

Condicin para ejecutar


una secuencia alternativa.

21

Generacin de objetivos de
prueba
Criterios de cobertura:
Todos los nodos.
Todas las transiciones.
Etc.

Todos los escenarios.

Mejorar la tool.

22

Una descripcin del proceso

Una vez visto los procesos, informacin


externa y modelos, aqu describo cada uno
de los procesos.
Me baso en lo que cuento en JISBD y RE.

23

Descripcin del proceso


Objetivo: qu hay que
probar. Esto se traducir
en prueba ejecutables.
Proceso: construir un
modelo formal a partir de
los casos de uso,
recorrerlo mediante un
criterio y calcular los
valores de prueba.

Plantillas de NDT
Del actor: describe una accin de un
actor con el sistema
Del sistema: describe una accin del
sistema como solicitar informacin,
mostrar informacin
De caso de uso: si el paso consiste en la
realizacin de otro caso de uso.

Condicin de excepcin: situacin que


provoca la excepcin.
Accin asociada: Eespuesta a la
excepcin.
Terminacin de la excepcin: indica si,
despus la accin asociada, el caso de uso
continua o se cancela.

24

Descripcin del proceso


Objetivo: traducir los
objetivos de prueba en
interacciones con la
interfaz grfica del
sistema.
Proceso: construir un
modelo genrico de las
interfaces y traducir los
objetivos en acciones
sobre dicha interfaz.

Descripcin del proceso


Objetivo: traducir
Proceso: construir

25

Validaciones
Dos tipos de validaciones.
Ejecucin estricta: La prueba falla si no se
pueden ejecutar todas las instrucciones de
prueba en el orden en que se indicaron.
Asertos: La prueba falla si no se cumplen
todos los asertos en el orden indicado.

Un ejemplo.

Cobertura de las pruebas

26

Resumen

Hacer aqu un resumen de todo lo visto.

Es un proceso muy flexible, ya que nos


permite definir nuestra propia arquitectura,
por lo que, por ejemplo, podemos incrustar
los datos de prueba, o tener un selector o
incluso obtenerlos a partir de bases de
datos, etc.

27

Futura investigacin
Modelo de
requisitos de
informacin

Modelo de casos
de uso

Modelo de
comportamiento

Modelo de datos
de prueba

Modelo de interfaz
abstracta

Modelo de
interaccin

Metamodelos y transformaciones
Modelo de interfaz
concreta
Modelo de
acciones

Futura investigacin
Modelo de
requisitos de
informacin

Modelo de casos
de uso

Modelo de
comportamiento

Modelo de datos
de prueba

Modelo de interfaz
abstracta

Tesis??

Modelo de
interaccin

Valores de prueba

Modelo de interfaz
concreta

Modelo de
acciones

28

Das könnte Ihnen auch gefallen