- Andrés Aldana (a.aldanam@uniandes.edu.co)
- Juan Diego Alzate (jd.alzate@uniandes.edu.co)
- Jael Rivera Oviedo (ja.riverao1@uniandes.edu.co)
- Yesid Felipe Tombé (y.tombe@uniandes.edu.co)
- El documento contiene todo el detalle de la estrategia de pruebas aplicada Informe
- Exposición de estrategia de pruebas por los integrantes del equipo Video
- Pruebas exploratorias manuales Inventario
- Funcionalidad 1. Ingresar con cuenta: Permite ingresar a la aplicación con una cuenta previamente creada.
- Funcionalidad 2. Listar Posts: Permite listar los Post existentes, tanto publicados como versiones en borrador.
- Funcionalidad 3. Editar Post: Permite editar un Post previamente creado, ya sea en borrador o ya publicado. El resultado queda en borrador.
- Funcionalidad 4. Crear Post: Permite crear un nuevo Post en borrador.
- Funcionalidad 5. Publicar Post: Permite publicar un Post previamente guardado como borrador.
- Funcionalidad 6. Eliminar Post: Permite eliminar un Post previamente creado.
- Escenario de Pruebas 1. Ingresar con cuenta válida, Listar Posts, Crear Post, Listar Posts
- Escenario de Pruebas 2. Ingresar con cuenta válida, Listar Posts, Editar Post, Listar Posts
- Escenario de Pruebas 3. Ingresar con cuenta válida, Listar Posts, Eliminar Post, Listar Posts
- Escenario de Pruebas 4. Ingresar con cuenta válida, Listar Posts, Crear Post, Publicar Post, Listar Posts
- Escenario de Pruebas 5. Ingresar con cuenta válida, Listar Posts, Editar Post, Listar Posts
- Escenario de Pruebas 6. Ingresar con cuenta inválida, Ingresar con cuenta válida, Listar Post, Crear Post, Listar Posts
- Escenario de Pruebas 7. Ingresar con cuenta inválida, Ingresar con cuenta válida, Listar Post, Editar Post, Listar Posts
- Escenario de Pruebas 8. Ingresar con cuenta inválida, Ingresar con cuenta válida, Listar Post, Eliminar Post, Listar Posts
- Escenario de Pruebas 9. Ingresar con cuenta inválida, Ingresar con cuenta válida, Listar Post, Crear Post, Publicar Post, Listar Posts
- Escenario de Pruebas 10. Ingresar con cuenta inválida, Ingresar con cuenta válida, Listar Post, Editar Post, Listar Posts
- Escenario de Pruebas 11. Ingresar con cuenta válida, Listar Posts, Crear Post, Listar Posts, Crear Post, Listar Post
- Escenario de Pruebas 12. Ingresar con cuenta inválida, Ingresar con cuenta válida, Listar Posts, Crear Post, Listar Posts, Crear Post, Listar Post
- Escenario de Pruebas 13. Ingresar con cuenta válida, Listar Posts, Crear Post, Listar Posts, Editar Post, Listar Post
- Escenario de Pruebas 14. Ingresar con cuenta inválida, Ingresar con cuenta válida, Listar Posts, Crear Post, Listar Posts, Editar Post, Listar Post
- Escenario de Pruebas 15. Ingresar con cuenta válida, Listar Posts, Crear Post, Listar Posts, Editar Post, Publicar Post, Listar Post
- Escenario de Pruebas 16. Ingresar con cuenta inválida, Ingresar con cuenta válida, Listar Posts, Crear Post, Listar Posts, Editar Post, Publicar Post, Listar Post
- Escenario de Pruebas 17. Ingresar con cuenta válida, Listar Posts, Crear Post (500 caracteres), Listar Posts
- Escenario de Pruebas 18. Ingresar con cuenta inválida, Ingresar con cuenta válida, Listar Posts, Crear Post (500 caracteres), Listar Posts
- Escenario de Pruebas 19. Ingresar con cuenta válida, Listar Posts, Editar Post (500 caracteres), Listar Posts
- Escenario de Pruebas 20. Ingresar con cuenta inválida, Ingresar con cuenta válida, Listar Posts, Editar Post (500 caracteres), Listar Posts
- Tener instalado ghost en las versiones bajo prueba (v3.3.0 y v3.42.5)
- Version de node 12.16.1
Para ejecutar y analizar el resultado de pruebas exploratorias con ripuppet es necesario seguir los siguientes pasos
- Paso 1 validar que tenga acceso a ghost con usuario y contraseña correctos
- Paso 2 ubicarse en el directorio
pruebas-exploratorias/RIPuppetCoursera
- Paso 3 modificar el archivo
config.json
el atributovalues.ember8
reemplazarlo por el correo de login en ghost - Paso 4 modificar el archivo
config.json
el atributovalues.ember10
reemplazarlo por el password del login en host - Paso 5 modificar el archivo
config.json
el atributourl
reemplazar la ip y el pto por los configurados en ghost - Paso 5 ejecutar
node index.js
recomendable usar la version v12.22.1* de node - Paso 6 una vez finalizada la ejecucion ejecutar
npm install -g http-server
- Paso 7 una vez instalada la herramienta anterior dirigirse al directorio
results
y una vez ubicado alli ejecutarhttp-server
- Paso 7 la terminal debe indicar el siguiente output
Available on:
debes de ingresar a la ip http://127.0.0.1:8080 debes seleccionar el reporte de la fecha que deseas validar y luego seleccionar el folder chromium/ - Paso 8 para validar el reporte debes abrir el archivo
report.html
Instalación
- Antes de comenzar con lo siguiente debe tener instalado Ghost en el sistema. Instrucciones
- Antes de comenzar con lo siguiente debe tener instalado Cypress en el sistema. Instrucciones
Patrón
Instrucciones de ejecución:
- Ubíquese en la carpeta
automation-tests/cypress-page-object
- En el archivo
cypress.json
cambie el valor de la variablebaseUrl
en caso de ser necesario - En la ruta
cypress/fixtures
cambie las credenciales deuser.json
por un usuario válido en la instalación de ghost - En la ruta
cypress/fixtures
cambie las credenciales deuser2.json
por un usuario no válido en la instalación de ghost
Opcion 1
- Con el comando
cypress open
se abrirá la interfaz gráfica decypress
, selecciona la ubicación del proyectoautomation-tests/cypress-page-object
- En la parte superior derecha dé clic en Run, correrá los 20 escenarios de prueba
Opcion 2
- Ubicado en carpeta
automation-tests/cypress-page-object
corra el comandocypress run --headless
, esto correrá todas las pruebas y generará videos y screenshots
Instalación
- Ubíquese en la carpeta
automation-tests/cypress-page-object
- Corra el comando
npm install
Instrucciones de ejecución:
- Una vez esté en esta la carpeta
automation-tests/cypress-page-object
, corra el comandonode resemble
- Tardará por lo menos 1 min la ejecución y generará un reporte html en
automation-tests/cypress-page-object/resemble/report.html
, podrá abrirlo en el navegador de su preferencia - También en
automation-tests/cypress-page-object/cypress/screenshots/All Integration Specs
en cada escenario de prueba generará la imagen de comparacióndiff*.png
para cada paso de la prueba
Escenarios de prueba (VRT)
Cubre del escenario 1 al 5
Instalación
- Ubíquese en la carpeta
automation-tests/cypress-page-object
- Corra el comando
npm install
Instrucciones de ejecución:
- Una vez esté en esta la carpeta
automation-tests/cypress-page-object
, corra el comandonode datapool
. - El anterior paso generará los fixtures necesarios para las pruebas con datos a-priori en
automation-tests/cypress-page-object/cypress/fixtures
. - Todos los fixtures son en formato json y los dejamos como entidades del dominio para que sea más sencillo identificarlos.
- Los escenarios de prueba conprenden desde el 1 al 20 Escenarios con cada estrategia de generación de datos respectiva
- Las pruebas se corren igual que en las anteriores entregas, ver Ejecución de pruebas con Cypress y correr las pruebas contenidas en
automation-tests/cypress-page-object/cypress/integration/week7
Instalación
Para esta ejecución vamos a usar la maquina virtual que provee el curso
- Creamos una máquina virtual de VirtualBox en cual Kraken esta instalado y funcionando. La puede encontrar en la siguiente url y la clave es "pruebas": https://zenodo.org/record/4739209/files/Ubuntu20Light_copy.vdi?download=1
- Una vez configurada la maquina virtual procedemos a clonar el proyecto haciendo
git clone https://github.com/andalm/automation-tests.git
- Ubicarse en el directorio /kraken-given-when-then/TallerKraken/ ejecutar
cd kraken-given-when-then/TallerKraken/
- Ejecutar
gem install bundler
- Ubicarse en el directorio kraken-week-5 ejecutar
cd kraken-week-5
- Ejecutar el comando
bundle install
Aquí ya tendremos el ambiente configurado
Patrón
Instrucciones de ejecución:
Para correr los la automazacion e2e para la version de ghost 3.3.0 se deben de seguir los siguientes pasos:
- Paso 1 debemos de estar ubicados en el directorio
kraken-week-5
- Paso 2 debemos de asegurar que tenemos conectividad entre nuestra máquina virtual y nuestro servidor de ghost
- Paso 3 debemos cambiar en el archivo kraken_properties.json los siguientes valores
- Cambiar la propiedad USER por el usuario registrado en ghost
- Cambiar la propiedad PASSWORD por el password registrado en la app para el usuario anterior
- Cambiar las ip y puerto, para las propiedades LOGIN, RELOAD_LOGIN, LIST_POST, RELOAD_POST, POST_CREATOR, POST_CREATOR_2, RELOAD_POST_2, esto con la ip y el puerto en donde esta corriendo la instancia de ghost
- Paso 4 ejecutar
bundle exec kraken-mobile run --properties=kraken_properties.json
Para correr los la automazacion e2e para la version de ghost 3.42.5 se deben de seguir los siguientes pasos:
- Paso 1 debemos de estar ubicados en el directorio
kraken-week-6
- Paso 2 debemos de asegurar que tenemos conectividad entre nuestra máquina virtual y nuestro servidor de ghost
- Paso 3 debemos cambiar en el archivo kraken_properties.json los siguientes valores
- Cambiar la propiedad USER por el usuario registrado en ghost
- Cambiar la propiedad PASSWORD por el password registrado en la app para el usuario anterior
- Cambiar las ip y puerto, para las propiedades LOGIN, RELOAD_LOGIN, LIST_POST, RELOAD_POST, POST_CREATOR, POST_CREATOR_2, RELOAD_POST_2, esto con la ip y el puerto en donde esta corriendo la instancia de ghost
- Paso 4 ejecutar
bundle exec kraken-mobile run --properties=kraken_properties.json
Para ejecutar los escenarios de pruebas con datos aleatorios se deben ejecutar los siguientes pasos:
-
Pasos para ejecutar los escenarios de prueba Datos a-priori
- Debemos de estar ubicados en el directorio
data-apriori/kraken-week-7
- Debemos de asegurar que tenemos conectividad entre nuestra máquina virtual y nuestro servidor de ghost
- Debemos cambiar en el archivo kraken_properties.json los siguientes valores
- Cambiar la propiedad USER por el usuario registrado en ghost
- Cambiar la propiedad PASSWORD por el password registrado en la app para el usuario anterior
- Cambiar las ip y puerto, para las propiedades LOGIN, RELOAD_LOGIN, LIST_POST, RELOAD_POST, POST_CREATOR, POST_CREATOR_2, RELOAD_POST_2, STAFF, esto con la ip y el puerto en donde esta corriendo la instancia de ghost
- Ejecutar
bundle exec kraken-mobile run --properties=kraken_properties.json
- Debemos de estar ubicados en el directorio
-
Pasos para ejecutar los escenarios de prueba Datos de escenario aleatorio
- Debemos de estar ubicados en el directorio
data-random/kraken-week-7
- Debemos de asegurar que tenemos conectividad entre nuestra máquina virtual y nuestro servidor de ghost
- Debemos cambiar en el archivo kraken_properties.json los siguientes valores
- Cambiar la propiedad USER por el usuario registrado en ghost
- Cambiar la propiedad PASSWORD por el password registrado en la app para el usuario anterior
- Cambiar las ip y puerto, para las propiedades LOGIN, RELOAD_LOGIN, LIST_POST, RELOAD_POST, POST_CREATOR, POST_CREATOR_2, RELOAD_POST_2, STAFF, TAGS esto con la ip y el puerto en donde esta corriendo la instancia de ghost
- Debemos de estar ubicados en el directorio
-
Paso 4 ejecutar
bundle exec kraken-mobile run --properties=kraken_properties.json
Escenarios de prueba que usan la estrategia pool de datos a-priori:
- Ingresar texto sin dominio en correo y password vacio
- Ingresar texto sin dominio en correo y password
- Ingresar con correo separado con espacios el usuario y el dominio con password vacio
- Ingresar con correo separado con espacios el usuario y el dominio con password
- Ingresar con email y password vacio
- Ingresar con email vacio y password
- Ingresar usuario con caracteres especiales y password vacio
- Ingresar usuario con caracteres especiales y password
- Invitar un nuevo usuario ingresando el campo email vacio
- Invitar un nuevo usuario ingresando el campo email texto sin dominio
- Invitar un nuevo usuario ingresando el campo email texto solo dominio
- Invitar un nuevo usuario ingresando el campo email caracteres especiales con dominio
- Invitar un nuevo usuario con correo separado con espacios
- Invitar un usuario con email válido
- Invitar un nuevo usuario ingresando el campo email correo sin .com
- Invitar un nuevo usuario ingresando en el campo email dos correos separados por coma
- Editar staff ingresar en correo electronico el usuario con caracteres especiales
- Editar staff ingresar en el campo Facebook Profile url que no corresponde a facebook
- Editar staff ingresar en el campo Twitter Profile url que no corresponde a twitter
- Editar staff ingresar en bio mas de 500 caracteres
- Editar staff ingresar editar contraseña ingresando contraseña válida y los campos de nuevo password vacios
- Editar staff ingresar editar contraseña ingresando contraseña válida y uno de los campos nuevos vacio
- Editar staff ingresar editar contraseña ingresando contraseña vacio y los campos de verificación diferentes
- Editar staff ingresar editar contraseña ingresando contraseña válida y los campos de verificación diferentes
Escenarios de prueba que usan la estrategia pool de datos (pseudo) aleatorio dinámico:
- Ingresar con números en correo y sin password
- Ingresar con números en correo y texto en password
- Invitar un nuevo usuario ingresando el campo email solo números
- Invitar un nuevo usuario ingresando el campo email números
- Editar staff ingresar número en nombre completo
- Editar staff ingresar números en website
- Editar staff ingresar números en slug
- Crear un nuevo post con título con números y descripción vacía
- Crear un nuevo post con título vacio y descripción con números
- Crear un nuevo post con título vacio y descripción con alfanumérica
Escenarios de prueba que usan la estrategia escenario aleatorio:
- Editar staff ingresar caracteres especiales en nombre completo
- Editar staff ingresar caracteres especiales en website
- Editar staff ingresar url sin dominio en website
- Editar staff ingresar dos url separadas con espacios en website
- Editar staff ingresar texto con caracteres especiales en slug
- Editar staff ingresar textos separados con espacios en slug
- Crear un nuevo post título con email y descripcion vacía
- Crear un nuevo post con título con texto y descripción vacía
- Crear un nuevo post con título con alfanuméricos y descripción vacía
- Crear un nuevo post con título vacío y descripción con texto
- Crear un nuevo post con título vacío y descripción con caracteres especiales
- Crear un nuevo post con título y descripción con valores numéricos
- Crear un nuevo post con título y descripción con valores caracteres especiales
- Crear un nuevo post con título y descripción con valores solo texto
- Crear un nuevo post con título y descripción con valores alfanuméricos
- Crear un tag con nombre vacío
- Crear un tag con nombre texto separado con espacios
- Crear un tag con nombre alfanumérico
- Crear un tag con nombre numérico
- Crear un tag con nombre caracteres especiales
- Crear un tag con slug vacío
- Crear un tag con slug texto separado con espacios
- Crear un tag con slug alfanumérico
- Crear un tag con slug numérico
- Crear un tag con slug caracteres especiales
- Crear un tag con descripción caracteres especiales
Instalación
- Paso 1 ejecutar
npm install -g backstopjs
Instrucciones de ejecución:
- Paso 1 ubicarse en el directorio
automation-tests/kraken-given-when-then/TallerKraken/backstopjs
- Paso 2 ejecutar
backstop test
- Paso 3 ejecutar
backstop approve
- Paso 4 ejecutar
backstop test
- El reporte detallado lo puede encontrar en
${PATH_LOCAL_REPOSITORY}/automation-tests/kraken-given-when-then/TallerKraken/backstopjs/backstop_data/html_report/index.html
Escenarios de prueba (VRT)
Cubre del escenario 6 al 10