Página principal

GeoCaching Informe de Verificación Unitaria Versión 2 Historia de revisiones


Descargar 83.21 Kb.
Fecha de conversión18.07.2016
Tamaño83.21 Kb.
GeoCaching

Informe de Verificación Unitaria

Versión 1.2

Historia de revisiones

Fecha

Versión

Descripción

Autor

06/10/2012

1.0

Documento inicial.

Pablo Silveira, Agustín Clavelli.

20/10/2012

1.1

Actualización.

Agustín Clavelli.

23/10/2012

1.2

Agregado de pruebas a Encontrar Cache.

Daniel Lena.

28/10/2012

1.3

Agregado de pruebas a UserControllerTest.

Agustín Clavelli.


Contenido

1. Introducción

1.1. Descripción general

1.2. Entorno de pruebas

1.3. Reporte de resultados

1.4. TestUtils

2. Métricas de pruebas cubiertas

3. Módulos de pruebas

3.1. UserControllerTest

3.1.1. TestLogin:

3.1.2. TestRegister:

3.1.3. TestGetUserInfo:

3.2. GeoCacheControllerTest

3.2.1. HideGeoCache

3.2.2. GetNearGeoCaches

3.2.3. FindGeoCache

- Reporte de resultados (Changeset 294)

- Pruebas unitarias

- Reporte de resultados (Changeset 330)

- Pruebas unitarias

- Reporte de resultados (Changeset 364)

- Pruebas unitarias

- Reporte de resultados (Changeset 372)

- Pruebas unitarias

- Reporte de resultados (Changeset 379)

- Pruebas unitarias

1. Introducción




1.1. Descripción general


Se diseñaron dos módulos de pruebas para probar la funcionalidad del servidor, UserControllerTest y GeoCacheControllerTest.
También se diseño una clase con utilidades comunes llamada TestUtils, la cual contiene funcionalidades que son base para los tests.


1.2. Entorno de pruebas


Los tests realizados deben utilizar una base de datos distinta a la normal para evitar alterar el estado de la base normal, para esto es necesario crear una base con la misma estructura de nombre GeoCachingSandbox.
Para la realización y debido a que nuestra aplicación solo utiliza login externo (Facebook / WindowsLive), se hizo uso de los usuarios de prueba que provee Facebook, esto nos permite hacer que las pruebas puedan correr de forma automática.


1.3. Reporte de resultados


Los reportes de resultados son anexados a este documento e indican cual es el changeset al que corresponden.
Solo se especifica cual fue la salida obtenida y la esperada en casos donde falle el test correspondiente.


1.4. TestUtils


Provee a los implementadores de los tests las siguientes funcionalidades:
- InitTestEnviroment: Realiza el cambio para usar la base GeoCachingSandbox, borra los datos y borra la información de los usuarios logueados. Nos permite iniciar cada test en un estado conocido.
- LoadUsersFromResources: Carga y registra todos los usuarios de test de Facebook. La informacion de los usuarios se obtiene de Facebook, pero además existe un recurso TestUsers.resx para poder verificar que la información es correcta.
- LoadUserFromResources(int i): Carga y registra el usuario de test de Facebook numero i.


2. Métricas de pruebas cubiertas


UserController no fue cubierto 100% debido a que no contamos con usuarios de prueba de WindowsLive.

AdminController no fue cubierto en esta iteración.



3. Módulos de pruebas

3.1. UserControllerTest


Contiene las pruebas relacionadas con el login y registro de usuarios, además del acceso a la información de un usuario logueado.
Consta de los siguientes métodos de prueba:

3.1.1. TestLogin:


Prueba el login con usuarios de Facebook. Primero verifica que no se permite el acceso a GetUserInfo si el usuario no esta logueado, es decir que funciona el control de acceso.
Luego realiza el login usando un token invalido y verifica que se tira la exception correspondiente.
Por ultimo realiza el login de forma correcta y verifica que el usuario pertenezca al rol UnregisteredUser, que significa que el login fue exitoso pero el usuario no esta registrado.


Entrada

Salida esperada

-

SecutiryException: Request for principal permission failed.

Token invalido.

OAuthException: Invalid OAuth access token.

Usuario de test de Facebook numero 1.

El usuario pertenece al rol UnregisteredUser.



3.1.2. TestRegister:


Primero prueba registrar al usuario con un Nick vacío.
Luego registra un usuario de forma correcta y comprueba que el mismo fue registrado con éxito.


Entrada

Salida esperada

Usuario de test de Facebook numero 1.

Nick vacío.



Exception: NICK_CANT_BE_EMPTY

Usuario de test de Facebook numero 1. Nick del usuario de test 1.

El usuario esta registrado.



3.1.3. TestGetUserInfo:


Verifica que se obtiene de forma correcta la información del usuario actualmente logueado.


Entrada

Salida esperada

Usuario de test de Facebook numero 1.

Id = 100004477354721

Nick = “Barbara Lian”



Usuario de test de Facebook numero 2.

Id = 100004448166606

Nick = “Gordon Sawyers”



Usuario de test de Facebook numero 3.

Id = 100004441656531

Nick = “Johnny Quest”





3.2. GeoCacheControllerTest


Contiene las pruebas relacionadas con los casos de uso implementados en GeoCacheController.

3.2.1. HideGeoCache


Prueba la funcionalidad de esconder un cache y que el mismo se guarde correctamente en la base de datos.


Entrada

Salida esperada

20 geocaches, coloca 1 en la plaza independencia y luego se mueve 1 por cuadra hace el este.
Escondidos por el primer usuario de test.

Los 20 geocaches escondidos por el mismo usuario, con nick y nombre correcto geocache + i y geocachedescription + i, siendo i el índice de ingreso del geocache.
La fecha de creación como “hoy” y el score y veces encontrado en 0.



3.2.2. GetNearGeoCaches


Prueba la funcionalidad para obtener caches cercanos moviendo los limites del área visible del mapa y comprobando que retorna los caches correctos.

Utiliza los mismos geocaches generados para HideGeoCache. Luego hace tres pruebas:



Entrada

Salida esperada

Ingresa como vista un rectángulo que no incluye a ningun geocache.

Ningún geocache es devuelto.



Entrada

Salida esperada

Ingresa como vista un rectángulo que incluye 5 geocaches.

5 geocaches devueltos, los cuales deben estar dentro del rectángulo ingresado.



Entrada

Salida esperada

Ingresa como vista un rectángulo que incluye los 20 geocaches. La posición del usuario en la plaza independencia.

Al ser 15 el tope de caches a devolver se deben devolver los 15 geocaches más cercanos al usuario. Por lo tanto debe devolver los 15 geocaches más al oeste ya que el usuario está al oeste de todos estos.


3.2.3. FindGeoCache


Prueba la funcionalidad Encontrar Cache, cuando es exitosa y prueba además todos los posibles errores que se le pueden devolver al client en caso de que no sea exitoso el encontrar.
Utiliza los mismo caches generados por HideGeoCache y dos de los usuarios generados por TestRegister, uno es quien escondió todos los caches (user1) y el otro ninguno (user2).

Realiza 24 tests sobre el llamado a FindGeoCache, de los cuales 20 son exitosos y el resto corresponden a los 4 posibles errores que puede devolver. Diferenciamos los 24 tests en 5 grupos, separando entre cada uno de los que deben devolver error y los 20 que deben ser exitosos.


Además se realizan chequeos adicionales sobre los estados intermedios de la base de datos, cantidad de cachesFounds, estados de puntajes y timesfounds de los caches, etc.


Entrada

Salida esperada

Ingresa el primer cache de la lista de caches, al user1 (quien escondió los caches), el código correspondiente al cache y como coordenadas del usuario las mismas del cache.

Debe retornar el código que corresponde al error de que un usuario que escondió un cache no puede encontrarlo.



Entrada

Salida esperada

Ingresa el primer cache de la lista de caches, al user2, un código erróneo y como coordenadas del usuario las mismas del cache.

Debe retornar el código que corresponde al error de que el código del cache ingresado por el usuario es incorrecto.



Entrada

Salida esperada

Ingresa el primer cache de la lista de caches, al user2, el código correspondiente al cache y como coordenadas del usuario una ubicación a una cuadra del cache.

Debe retornar el código que corresponde al error de que la distancia entre el usuario y el cache no es suficiente.



Entrada

Salida esperada

Para todos los caches (20), ingresa el cache, al user2, el código correspondiente al cache y como coordenadas del usuario las mismas del cache.

Debe retornar las 20 veces el código que corresponde que el.



Entrada

Salida esperada

Ingresa el primer cache de la lista de caches, al user2, el código correspondiente al cache y como coordenadas del usuario las mismas del cache.

Debe retornar el código que corresponde al error de que el usuario ya encontró ese cache.


- Reporte de resultados (Changeset 294)



- Pruebas unitarias


Server.Logic.Tests:

Resultado

Test

Modulo

Passed

TestRegister

UserControllerTest

Passed

TestGetUserInfo

UserControllerTest

Passed

TestGetNearGeoCaches

GeoCacheControllerTest

Passed

TestHideGeoCache

GeoCacheControllerTest

- Cubrimiento de código


- Reporte de resultados (Changeset 330)



- Pruebas unitarias


Server.Logic.Tests:

Resultado

Test

Modulo

Passed

TestRegister

UserControllerTest

Passed

TestGetUserInfo

UserControllerTest

Passed

TestGetNearGeoCaches

GeoCacheControllerTest

Passed

TestHideGeoCache

GeoCacheControllerTest

- Cubrimiento de código



- Reporte de resultados (Changeset 364)

Server.Logic.Tests:



Resultado

Test

Modulo

Passed

TestRegister

UserControllerTest

Passed

TestGetUserInfo

UserControllerTest

Passed

TestGetNearGeoCaches

GeoCacheControllerTest

Passed

TestHideGeoCache

GeoCacheControllerTest

Passed

TestFindGeoCache

GeoCacheControllerTest



- Reporte de resultados (Changeset 372)

Server.Logic.Tests:



Resultado

Test

Modulo

Passed

TestRegister

UserControllerTest

Passed

TestGetUserInfo

UserControllerTest

Passed

TestGetNearGeoCaches

GeoCacheControllerTest

Passed

TestHideGeoCache

GeoCacheControllerTest

Passed

TestFindGeoCache

GeoCacheControllerTest



- Reporte de resultados (Changeset 379)

Server.Logic.Tests:



Resultado

Test

Modulo

Passed

TestLogin

UserControllerTest

Passed

TestRegister

UserControllerTest

Passed

TestGetUserInfo

UserControllerTest

Passed

TestGetNearGeoCaches

GeoCacheControllerTest

Passed

TestHideGeoCache

GeoCacheControllerTest

Passed

TestFindGeoCache

GeoCacheControllerTest


Informe de Verificación Unitaria Página de




La base de datos está protegida por derechos de autor ©espanito.com 2016
enviar mensaje