Académique Documents
Professionnel Documents
Culture Documents
Introduccin
Introduccin
No es lo mismo probar automticamente que generar pruebas automticamente. Podemos generar las pruebas automticamente y realizarlas a mano o bien disear las pruebas a mano y ejecutarlas de manera automtica.
Introduccin
Punto de partida. Punto de llegada.
Variable
Name
Type
Dom ain
System configuration C In (SR-01) Use Variable Nam Type Combination to Cd Out e Array case discover UC-01 configuration System configuration In C In System C (SR-01) UC-01 Combination to Cd Out Combination to Cd In Array discover discover Use Variable UC-03 System C In User combination configuration Inner Array Cj case UC-03 In User tries Combination to System Cd UC-01 Ni Inner Integer configuration discover System configuration Out (SR-01) UC-01 C Combination to UC-03 User combinationdiscover Cj Inner UC-03 User tries Inner UC-03 System Ni configuration UC-04 System configuration C UC-03 Combination to Out discover UC-03 User combination UC-03 User tries UC-04 System configuration
Proceso
Introduccin
Tiempo de prueba (TP)
Introduccin
Problemas:
Poco tiempo para disear buenas pruebas y probar el sistema a fondo. Menos tiempo an para analizar los errores. Falta de valor de las pruebas.
Introduccin
Ventajas e inconvenientes
Ventajas:
Valida los requisitos Evita problemas de tiempo y dinero Evita las pruebas manuales Automatiza no solo el proceso de prueba sino tambin la obtencin de dichas pruebas Evita la dependencia de las pruebas respecto del sistema. Genera un conjunto rico de pruebas (en que cada prueba aporte algo).
Inconvenientes:
Falta de herramientas y metodologas Susceptible a cambios del sistema. Explosin del espacio de prueba. Susceptible a sistemas distintos a su implementacin. Imposible considerar todos los casos.
Tcnicas de prueba
Tcnicas de prueba
Cuando probamos los casos de uso
1. Consideramos que el sistema es una caja negra. 2. Nos basamos en actores humanos. 3. Interactuamos con el sistema a travs de interfaces grficas. 4. Comprobamos los resultados a travs de interfaces grficas.
Tcnicas de prueba
Veremos tres tcnicas clsicas para probar casos de uso:
1. Caminos de ejecucin. 2. Valores de prueba. 3. Perfiles de usuario.
La mayora de las propuestas existentes se basan en estas tcnicas.
Tcnicas de prueba
Usaremos el siguiente caso de uso como ejemplo
Nombre Precondicin Secuencia principal UC-02. Cargar documento desde fichero No 1 El usuario selecciona la opcin abrir un fichero. 2 El sistema solicita el fichero a abrir. 3 El usuario selecciona el fichero y selecciona la opcin abrir. 4 El sistema descarta el documento de trabajo actual y muestra como nuevo documento de trabajo el contenido del fichero. 3 El usuario puede seleccionar la opcin de cerrar y abortar el caso de uso 4 Si el usuario seleccion un archive inexistente o surge un error al abrir el archivo, el sistema vuelve al documento actual. No.
Alternativas y Errores
Pos-condicion
Tcnicas
Caminos de ejecucin
1. Identificar todas las secuencias de pasos posibles a partir de un caso de uso. 2. Identificar los resultados de cada secuencia. 3. Asignar valores de prueba a cada secuencia. 4. Escribir una prueba para cada secuencia.
Pruebas
Caminos de ejecucin
Nombre Precondicin Secuencia principal UC-02. Cargar documento desde fichero No 1 El usuario selecciona la opcin abrir un fichero. 2 El sistema solicita el fichero a abrir. 3 El usuario selecciona el fichero y selecciona la opcin abrir. 4 El sistema descarta el documento de trabajo actual y muestra como nuevo documento de trabajo el contenido del fichero. 3 El usuario puede seleccionar la opcin de cerrar y abortar el caso de uso 4 Si el usuario seleccion un archive inexistente o surge un error al abrir el archivo, el sistema vuelve al documento actual. No.
Alternativas y Errores
Pos-condicion
Id 1 2 3
Pruebas
Caminos de ejecucin
Id 1 2 3 Secuencia Cargar un documento Inicar la carga y cancelar Error en la carga. Resultado El sistema muestra el contenido del nuevo documento. El sistema muestra el mismo documento que mostraba antes de iniciar la operacin. El sistema muestra un mensaje de error y el mismo documento que mostraba antes de iniciar la operacin.
Qu valores de prueba necesitamos para ejecutar estas secuencias y obtener estos resultados?.
Pruebas
Caminos de ejecucin
Id 1 2 Secuencia Cargar un documento Inicar la carga y cancelar Error en la carga. Resultado El sistema muestra el contenido del nuevo documento. El sistema muestra el mismo documento que mostraba antes de iniciar la operacin. El sistema muestra un mensaje de error y el mismo documento que mostraba antes de iniciar la operacin. Valores Archivo correcto Ninguno
Pruebas
Valores de prueba
1. Identificar todas las variables operacionales de un caso de uso. 2. Identificar dominios y particiones equivalentes. 3. Asignar valores de prueba a cada particin. 4. Identificar los resultados esperados para cada combinacin de valores. 5. Escribir una prueba para cada secuencia.
Una variable operacional es cualquier cosa que puede variar entre dos ejecuciones de un mismo caso de uso.
Pruebas
Valores de prueba Particin: subconjunto del dominio para los cuales el sistema exhibe el mismo comportamiento. Ejemplo: booleano esCero(entero)
10
Pruebas
Valores de prueba
Nombre Precondicin Secuencia principal UC-02. Cargar documento desde fichero No 1 El usuario selecciona la opcin abrir un fichero. 2 El sistema solicita el fichero a abrir. 3 El usuario selecciona el fichero y selecciona la opcin abrir. 4 El sistema descarta el documento de trabajo actual y muestra como nuevo documento de trabajo el contenido del fichero. 3 El usuario puede seleccionar la opcin de cerrar y abortar el caso de uso 4 Si el usuario seleccion un archive inexistente o surge un error al abrir el archivo, el sistema vuelve al documento actual. No.
Alternativas y Errores
Pos-condicion
Id 01 02
Pruebas
Valores de prueba
Categoras Categoras
11
Pruebas
Valores de prueba
Valores Valores de prueba de prueba
Pruebas
Valores de prueba
Id Valor de prueba 1 Load, File01 2 3 Cancel, * Load, File02 Resultado El sistema muestra el contenido del nuevo documento (This is a text). El sistema muestra el mismo documento que mostraba antes de iniciar la operacin. El sistema muestra un mensaje de error indicando que no tenemos permisos para leer el archivo y el mismo documento que mostraba antes de iniciar la operacin.
12
Tcnicas de prueba
Perfiles de usuario 1. Buscamos a un usuario real. 2. Lo sentamos delante del sistema para que trabaje como lo hara cualquier da. 3. Capturamos toda su sesin de trabajo. 4. Reproducimos su sesin para ver si todo sigue funcionando bien.
Sesiones de trabajo
Perfiles de usuario
Podemos unir varias sesiones de trabajo (o datos) para crear sesiones mayores.
13
Tcnicas de prueba
Caminos de ejecucin
Ventajas:
Comprobamos todas las alternativas. Facilidad para identificar caminos.
Inconvenientes:
Podemos olvidar valores de prueba importantes. Problemas con alternativas complejas o con bucles. Explosin combinatoria.
Tcnicas de prueba
Valores de prueba
Ventajas:
Pruebas ms exhaustivas. Pruebas de caja negra.
Inconvenientes:
Identificar variables. Identificar categoras. Restricciones entre valores. Explosin combinatoria.
14
Tcnicas de prueba
Perfiles de usuario
Ventajas:
Cmodo y rpido. Probamos ms a fondo las partes ms importantes.
Inconvenientes:
Podemos dejar partes por probar. Slo podemos hacerlo si tenemos las herramientas adecuadas !!!!. Si cambia la interfaz podemos perder las pruebas. Necesitamos un sistema presentable !!!!. Un usuario real tiene que dedicarnos su (valioso) tiempo.
Tcnicas de prueba
Conclusiones.
Tcnicas muy superficiales. Difcil de automatizar con herramientas. Pruebas muy genricas. Tcnicas no sistemticas. Dependen mucho de la pericia de quien las aplica
15
Conclusiones
Hemos visto cmo obtener pruebas del sistema a partir de casos de uso. sin embargo ese no era nuestro objetivo.
Cmo podemos sistematizar y automatizar este proceso (en la medida de lo posible)?. Cmo podemos desarrollar este proceso antes de que el sistema est construido (en la medida de lo posible)?.
Conclusiones
Esto no es fcil:
Cmo obtenemos los caminos? Cmo obtengo las particiones?. Son las variables / particiones adecuadas?. Cmo descubrimos los resultados esperados?. Etc
? ?
16
17
Bsqueda de caminos / anlisis de valores de prueba. Modelos grficos. Casos de uso individuales / en secuencia.
Veamos algunas.
18
19
Post-condicin
20
Enlace
SR-02. Enlaces. Nombre Dominio Identificador Entero Nombre Cadena Categora Entero URL Cadena Descripcin Cadena Aprobado Boolean Fecha Fecha El identificador debe ser nico. Todos los campos son obligatorios excepto descripcin.
Post-condicin
Restricciones
21
1 2 3
Ejemplo
Variables Enlace (E) Cancelar (C) X Cierto Pular botn de cancelar 2y3 Falso Resultado Mensaje Pantalla X La pantalla anterior
Mensaje de confirmacin
La pantalla anterior
1 Falso
Mensaje de error
La misma pantalla
22
23
Basada en bsqueda de caminos / escenarios. Notacin grfica propia. Puntuacin de los caminos de ejecucin.
24
Post-condicin
Leyenda
3: Enlace incorrecto 2: Enlace correcto
Id 1 2 3
Nombre 1, 2 5 1, 2, 3, 4, 1, 2
Descripcin
25
Id 1 2 3
Frecuencia 10 5 8
Importancia 10 5 10
Total 20 10 18
Valoracin subjetiva
Id 1 3 2
Frecuencia 10 8 5
Importancia 10 10 5
Total 20 18 10
26
Id 1 3 2
Frecuencia 10 8 5
Importancia 10 10 5
Total 20 18 10
Un caso de prueba para cada camino. Multiples escenarios de prueba (valores de prueba). Aadir detalles de la interfaz.
27
TDE/UML
Caractersticas
Basada en UML Contempla la prueba de casos de uso aislados y la prueba de secuencias de casos de uso. Es una propuesta incompleta.
28
29
30
31
Criterios de cobertura:
Todos los bordes. Todos los vrtices. Todas las instancias de casos de uso. Todos los vrtices e instancias. Todas las precondiciones.
[Connect(u1), Disconect(u1)] [Connect(u1), Enter(u1, m1), Leave(u1, m1)] [Connect(u1), Enter(u1, m1), Speak(u1, m1)] [Connect(u1), Enter(u1, m2), Enter(u1, m1)] [Connect(u1), Enter(u1, m2), Leave(u1, m2)] [Connect(u1), Enter(u1, m2), Speak(u1, m2)] [Connect(u1), Disconect(u1)] [Connect(u1), Enter(u1, m1), Disconect(u1), Connect(u1)] [Connect(u1), Enter(u1, m1), Leave(u1, m1)] [Connect(u1), Enter(u1, m1), Enter(u1, m2), Leave(u1, m1)] [Connect(u1), m1), Speak(u1, [Connect(u1), Enter(u1, m1), Enter(u1, m2), Leave(u1, m1)] [Connect(u1), Enter(u1, m2)] [Connect(u1), Enter(u1, m1), Enter(u1, m2), Speak(u1, m1)] [Connect(u1), Leave(u1, m2)] [Connect(u1), Enter(u1, m1), Enter(u1, m2), Speak(u1, m2)] [Connect(u1), [Connect(u1), Enter(u1, m2), Disconect(u1), Connect(u1)] [Connect(u1), Enter(u1, m1), Enter(u1, m2), Disconect(u1), Connect(u1)]
32
Post-condicin
UC-01. Aadir nuevo enlace. No 1 El visitante solicita aadir un nuevo enlace 2 El sistema selecciona la categora Top y solicita la informacin del enlace (SR-02). 3 El usuario introduce la informacin del nuevo enlace. 4 El sistema almacena el nuevo enlace. 3.1.i El usuario cancela la operacin y este caso de uso termina. 3.2.i Si el usuario desea cambiar la categora, se ejecuta el caso de uso Cambiar categora y este caso de uso continua.. 4.1.p Si el nombre del enlace o su URL estn vacos, el sistema muestra un mensaje de error y solicita de nuevo la informacin del enlace. Nuevo enlace aadido al sistema.
pagar
33
Estudio comparativo
Estudio comparativo
No existe la propuesta completa. Indican como obtener objetivos, pero no casos de prueba (cdigo ejecutable). La documentacin es escasa y los trabajos son aislados. Falta de sistematizacin y de automatizacin. Falta de herramientas que soporten las propuestas. Falta de estudios empricos.
www.lsi.us.es/~javierj/approaches.html
34
Estudio comparativo
Aspectos resueltos Aspectos por resolver
Construccin de modelos a partir de los casos de uso. Herramientas de soporte. Generacin de pruebas de casos de uso de manera independiente y de secuencia de casos de uso. Definicin de los casos de uso.
Poca documentacin y casos prcticos. Sin estudios de efectividad y validez. Explosin combinatoria. Implementacin de los casos de prueba. Accesibilidad de herramientas de soporte. Sin referencias del impacto de su aplicacin. Sin referencias de interfaces grficas.
Conclusiones
35
Conclusiones
Hemos visto interesantes.
Variables operacionales, dominios y valores de prueba. Anlisis de caminos. Criterio de seleccin de caminos. Representaciones grficas. Cmo probar secuencias de casos de uso.
Conclusiones !
Pero esto slo sirve si tenemos buenos requisitos.
Si los requisitos no describen todo el sistema o no coincide con lo que se implementa estas ideas no sirven.
36
Conclusiones !
Y si cambian los requisitos?. Perdemos todo el trabajo?
Conclusiones
A continuacin expondremos nuestro trabajo, en el que hemos aprovechado todas las buenas ideas y suplido las carencias detectadas para crear un proceso completo.
37