Este repositorio busca automatizar las pruebas de software end-to-end, encontrar bugs y aumentar la productividad del ingeniero automatizador de pruebas
haciendo uso de tecnologias, tecnicas y practicas modernas. La aplicacion bajo pruebas usada para este desarrollo es Ghost, una plataforma open source para gestion y publicacion de contenido.
- Indice
- Entrega Semana 8 - Estrategia Final 🎉
- Entrega Semana 7
- Entrega Semana 5
- Ejecutar con ghost local
- Instrucciones ejecutar pruebas con crypress localmente
- Instrucciones ejecutar pruebas con Kraken y ghost 5.73 localmente
- Instrucciones ejecutar pruebas con Kraken y ghost 5.72 en AWS
- Instrucciones ejecutar pruebas con Kraken y ghost 4.72.2 en localhost
- Instrucciones ejecutar pruebas con Kraken y ghost 4.48.9 en Google Cloud
- Como limpiar ghost
- Instrucciones para ejecutar reportes con Resemble.js
- Instrucciones para ejecutar los escenarios con Backstop.js
- Como limpiar ghost
- Como acceder a Jira
- Integrante del Equipo
- Entrega Semana 8
LINK A LA CARPETA DE ONE DRIVE DE LA SEMANA 8
- La presente estrategia está diseñada para ejecutarse en 8 semanas.
- El equipo necesario para ejecutar esta estrategia es de minimo 4 ingenieros seniors automatizadores de pruebas.
- Revisa el stack tecnologico con que fue pensado esta estrategia para su correcta ejecucion.
- Revisa la estructura de carpetas de forma general, ya que en cada carpeta se encuentra una estrategia de pruebas distinta.
- En la carpeta de Semana_8_Entrega_Final se encuentran todos los codigos fuentes que se deben ejecutar para completar esta estrategia.
- Para ver la incidencias encontradas esta semana, acceda a Jira. Como acceder a Jira aqui
Recurso | Acceso |
---|---|
Estrategia de pruebas para el CTO | Ver estrategia |
Incidencias encontradas semana 1 | Ver en Jira |
Inventario de pruebas exploratorias semana 1 | ver Inventario |
Listado de escenarios semana 1 | Ver Documento |
Análisis de los pros/contras de las herramientas usadas | Ver Análisis |
Limitaciones, costos adicionales al presupuesto, ventajas, y desventajas del proceso de pruebas propuesto para las 8 semanas | Ver |
Video y descripción de la estrategia | Ver video |
Acceso a Jira | Como acceder a Jira |
Para la semana 1 de esta estrategia, decidimos como equipo realizar más pruebas exploratorias de las que ya teniamos. Esto con el objetivo de entregar a la empresa un inventario de pruebas más completo y que abarque mas features de ghost. Ya que inicialmente nos enfocamos en las funcionalidades core y dejamos por fuera funcionalidades para el usuario como:
- Gestion de perfil
- Miembros
- Configuraciones
- Dashboard
- Invitaciones
- Entre otras
Ademas de esto, decidimos probar en otros navegadores y jugar con el modo oscuro. Haberlo hecho asi, nos permitió encontrar mas de 36 incidencias nuevas, lo cual es muy bueno. Estamos seguros que con esta informacion, junto con el equipo de desarrollo lograremos mejorar la calidad del producto.
- Las 36 incidencias las puedes VER AQUI en JIRA.
- El inventario de pruebas exploratias las puedes VER AQUI.
- El listado de escenarios que probamos las puedes VER AQUI.
-
Descripción Las pruebas de validación de datos y datos aleatorios se trata de no usar los mismos datos para probar un software. Tipicamente un tester usará datos limitados; Introducir aleatoriedad aumenta la probabilidad de exito para encontrar posibles fallas. Y como sabemos, es mejor y mas economico encontrar fallas a temprana edad y no en producción. Ya que en producción si vamos a tener usuarios especiales que ingresan datos bien raros. Por eso está pruebas la tienes que ejecutar.
-
Instrucciones para su ejecucion A continuacion, ingresa a este readme donde encontrarás documentación que sentará las bases que implementes las pruebas de validación de datos y datos aleatorios y ademas instrucciones para ejecutar el software que ya implementamos.
Nota: Es muy posible que tengas problemas con algunas APIS externas como Mockaroo. Si ejecutas esta estratgia en los tiempos definidos, te garantizamos el fucnionamiento. Si ejecutas despues de Enero de 2024, te recomendamos revisar el modelo de dominio, requrest y repsonse de las pruebas que fallen, luego de esto implementa tu propia API en mockaroo para que siga funcionando todo.
-
Descripción Las pruebas de exploración de interfaz gráfica, también conocidas como GUI ripping, son un tipo de pruebas que consisten en explorar cada vista, funcionalidad y aspecto de una aplicación o sistema de software por medio de la interfaz ofrecida al usuario. Estas simulan el comportamiento de un usuario y buscan reconstruir el flujo de interacción y experiencia de usuario para comprobar que está correctamente construido y que las funcionalidades requeridas para la aplicación son satisfechas. Y como tambien cometemos errores en UI, entonces es muy importante ejecutarlas.
-
Instrucciones para su ejecucion A continuacion, ingresa a este readme donde encontraras el código fuente y las instrucciones para ejecutar las pruebas con Rippers.
-
Descripción Las pruebas con monkeys se hacen para realizar pruebas sobre todos los caminos de los flujos de trabajo de los usuarios, universo de entradas y estados, de principio a fin, imitando las condiciones de los usuarios. Verifican la interacción correcta de la aplicación y el intercambio de datos con otros componentes fuera del sistema. Por esa integralidad y completitud, estas pruebas son muy buenas.
-
Instrucciones para su ejecucion A continuacion, ingresa a este readme donde encontraras el codigo fuente y las instrucciones para ejecutar las pruebas con monkeys.
-
Descripción Las pruebas end-to-end se hacen para realizar pruebas sobre todos los caminos de los flujos de trabajo de los usuarios, universo de entradas y estados, de principio a fin, imitando las condiciones de los usuarios. Verifican la interacción correcta de la aplicación y el intercambio de datos con otros componentes fuera del sistema. Por esa integralidad y completitud, estas pruebas son muy buenas.
-
Instrucciones para su ejecucion A continuacion, ingresa a este readme donde encontraras el codigo fuente y las instrucciones para ejecutar las pruebas end-to-end
-
Descripción Las pruebas de regresión visual se havcen para que detectes diferencias y errores entre imagenes que representan pantallas de tu software. Asi qeu, si estan pribando la nueva version de ghsot pueden encontrar diferencias de forma automatizada y no a ojo.
-
Instrucciones para su ejecucion A continuacion, ingresa a este readme donde encontrarás el codigo fuente y las instrucciones para ejecutar las pruebas de regresion visual o VRT.
En este punto, ya tendras mucha información (un poco distribuida) pero tienes datos! Es hora de que hagas un reporte formal, te sugerimos que incluyas en tu reporte lo siguiente:
- Muestra la estrategia que ejecutaste.
- Haz un resumen ejecutivo con el conexto de donde estabas y a donde estas hoy.
- Muestra la tecnologia que usaste (solo si la audiencia es tecnica).
- Problemas y Defectos encontrados. Entre más, mejor.
- Logros complidos.
- Resumen de como esto mejora la calidad del producto.
Para la semana 7, decidimos como equipo, crear una nueva carpeta llamada "Semana_7_Escenarios_Datos_Aleatorios". Esta carpeta contiene las estructuras de Cypress y de Kraken necesarias para ejecutar las pruebas con la nueva funcionalidad de generación de datos aleatorios, pool a priori y pool dinamico.
Carpeta | Descripción |
---|---|
Semana_7_Escenarios_Datos_Aleatorios | Carpeta raiz/principal de la entrega semana 7. |
Cypress | Carpeta principal de Cypress. |
Cypress/data | Carpeta donde almacenamos las fuentes de datos a priori para cypress. |
Cypress/e2e | Contiene los scripts de los 105 escenarios de pruebas. |
Cypress/support | Contiene los comandos personalizados usados para obtener datos externos y comandos frecuentes. |
Kraken/data | Carpeta donde almacenamos las fuentes de datos a priori para Kraken. |
Kraken/features | Contiene los scripts de los 15 escenarios de pruebas con kraken. |
Para la implementacion de los 120 escenarios de pruebas decidimos abordarlos asi:
- La version de ghost es la version 5.73.2
- La version de Ghost CLI es 1.25.3
- La version de NodeJS es Node 18.18.1
- Desarrollamos 105 escenarios en cypress.
- Desarrollamos 15 escenarios en Kraken.
- 2 personas trabajamos en Windows.
- 2 personas trabajamos en MacOS.
- Jira como sistema de gestion y reporte de incidentes.
Si no ha instalado ghost en su computador, siga estas instrucciones.
Una vez instalado ghost, acceda a la ruta donde los instaló a tarves de la terminal y ejecute:
Para inciarlo:
sudo ghost start
Para detenerlo:
sudo ghost stop
Para clonar el repositorio siga las siguientes instrucciones:
- Abra una terminal en su computador.
- Clone este repositorio en su maquina local en la ruta que desee.
Para clonarlo a traves de HTTPS ejecute:
git clone https://github.com/mar-alas/equipo3.git
para clonarlo a traves de SSH (Asegurate de que la clave SSH asociada con tu cuenta de GitHub está configurada correctamente en tu máquina.)
git clone [email protected]:mar-alas/equipo3.git
Para clonarlo a traves de GitHub CLI:
gh repo clone mar-alas/equipo3
Para ejecutar las pruebas de cypress siga las siguientes instrucciones:
- Abra su editor de codigo favorito. Recomendado: Visual Studio Code
- Desde el editor de codigo abra la carpeta que clonó llamada equipo3
- Ubique la terminal en la ruta: "equipo3/Semana_7_Escenarios_Datos_Aleatorios/cypress"
- Cambie en el archivo cypress.env.json sus credenciales de ghost que tenga creadas en su ghost local. Si no está creado puede crear este archivo a partir de "cypress.env.example.json" y ajustar segun sus credenciales.
- Ejecute el siguiente comando para ejecutar un escenario:
npx cypress run --spec cypress/e2e/escXYZ.cy.js
o si esta en linux o MacOs:
sudo npx cypress run --spec cypress/e2e/escXYZ.cy.js
XYZ es el numero de esceario a ejecutar.
- Ejecute el siguiente comando para ejecutar todos los escenarios
npx cypress run
o si esta en linux o MacOs
sudo npx cypress run
Antes de iniciar la ejecuion configure un archivo "properties.json" en la carpeta de kraken. Puede utilizar el ejemplo "properties.example.json" y quitarle el ".example" y ajustar segun sus credenciales y host de ghost. Adicionalmente dentro de la carpeta de kraken hay un README con los paquetes que debe instalar para que las pruebas funcionen. Recomendamos ejecutar kraken con node version V16.16.0.
Para la ejecucion de las pruebas con Kraken siga las siguientes instrucciones:
- Abra su editor de codigo favorito. Recomendado: Visual Studio Code
- Desde el editor de codigo abra la carpeta que clonó llamada equipo3
- Ubique la terminal en la ruta: "equipo3/Semana_7_Escenarios_Datos_Aleatorios/kraken"
- Elija el escenario a ejecutar y cambie el txt para que el escenario quede llamado como .feature
- Ejecute el siguiente comando para ejecutar el escenario o escenarios que ternminan en .feature:
npx kraken-node run
- Si desea ejecutar todos los escenarios, ejecute el script llamado ejecutar_escenarios.sh en ios o con ejecutar_escenarios.bat en windows.
- En este repositorio va a encontrar las siguientes carpetas.
- La carpeta "cypress" para ejecutar los escenarios de pruebas en cypress. Estos escenarios se ejecutaron en la versión 5.73.2.
- La carpet kraken_tests_ghost_vanterior_5_73_2 para los escenarios de prueba en kraken con la version 5.73.2 (version inicial desarrollado para host local)
- La carpet kraken_tests_ghost_vanterior_5_72_1 para los escenarios de prueba en kraken con la version 5.73.2 (version inicial desarrollado para host web)
- La carpeta kraken_tests_ghost_vnueva_4_72_2 para os escenarios de prueba en Kraken con la version 4.72.2 (version nueva desarrollado para version local y funciona en version web con ghost 4.48.9)
- La carpeta backstopjs con el codigo para realizar regresion visual usando la herramienta backstopjs. Este desarrollo se puede correr con la version de node 16.16.0 o la version 16.13.0.
- La carpeta resemblejs con el codigo para realizar regresion visual usando la herramienta resemblejs. Este desarrollo se puede correr con la version de node 16.16.0 o la version 16.13.0.
- Los escenerios de prueba se describen en la wiki.
Se tendran 2 opciones para la ejecucion de las pruebas, primera con ghosts locales y la segunda con ghost hosteados
Utilizar Ghost CLI Version - 1.25.3 y Node 18.18.1
Utilizar Ghost CLI Version - 1.20.0 y Node 16.13.0
- Descargue el repositorio en su equipo local utilizando el comando git clone. Esta carpeta local puede ser compartida entre Cypress y Kraken.
- Instale globalmente en su computador cypress version 13.4.0 de acuerdo con el tutorial del curso. La instancia de ghost debera estar sin contenido existente y debe ser la version local de ghost con version 5.73.2.
- En el folder llamado cypress, cree un archivo llamado 'cypress.env.json', tome como ejemplo el archivo 'cypress.env.example.json', en el cual tiene el formato esperado. Debe ingresar sus credenciales de administrador de ghost y la url de ghost, una url tipica puede ser http://localhost:2368/ghost.
- Para correr las pruebas vaya a la carpeta cypress del repositorio en el cmd y ejecute las pruebas con cypress run. Este comando le deberia correr las 20 pruebas y mostrar al final el reporte resumen de la corrida.
- Alternativamente puede usar el comando cypress open para correr las pruebas manualmente y ver su ejecución en vivo y en directo en la herramienta de cypress.
- Descargue el repositorio en su equipo local utilizando el comando git clone.
- Instale la version de ghost 5.73.2 (en la seccion anterior se puede ver las herramientas necesarias para su instalacion)
- Sobre la carpeta kraken_tests_ghost_vanterior_5_73_2 corra los comandos "npm install" y ""npm install kraken-node" para instalar las dependendicas del proyecto.
- Se debe modificar un archivo llamado properties.json que se encuentra en la carpeta kraken_tests_ghost_vanterior_5_73_2 el cual debe especificar las credenciales de administrador de Ghost y la URL en la que Ghost esta corriendo.
- Dentro de la carpeta kraken_tests_ghost_vanterior_5_73_2 hay 2 archivos para ejecutar los escenarios uno para mac llamado ejecutar_escenarios.sh y uno para windows llamado ejecutar_escenarios.bat. Estos scripts se encargaran de ejecutar los 20 escenarios, se creera una carpeta llamada screenshots la cual tendra subcarpetas con nombres de cada escenario y screenshots de cada paso.
- El archivo de windows utiliza el comando "npx kraken-node run" para correr las pruebas localmente, mientras que el archivo de mac utiliza el comando "./node_modules/kraken-node/bin/kraken-node run" para correr las pruebas utilizando el kraken local, para este escenariob es necesario tener la carpeta node_modules dentro de la carpeta kraken_tests_ghost_vanterior_5_73_2, que se genero gracias al paso 2 con el comando "npm install kraken-node".
- Si desea una corrida limpia se recomienda borrar las carpetas escenario{n} que estén creados en la carpeta screenshots sin borrar la carpeta que dice "escenario".
Instrucciones para ejecución de escenarios de pruebas con Kraken y ghost 5-72-1 hosteado en Amazon Web Services:
- Realicé la misma instalacion de kraken correspondiente a las instrucciones anteriores sin instalar ghost en local, es decir la correspondiente a la carpeta "kraken_tests_ghost_vnueva_4_72_2".
- Cambie las credenciales del archivos properties.json para utilizar usuario: [email protected] contraseña: Equipo3123# y host: http://44.200.235.109/ghost.
- Descargue el repositorio en su equipo local utilizando el comando git clone.
- Instale la version de ghost 4.72.2 (en la seccion anterior se puede ver las herramientas necesarias para su instalacion)
- Sobre la carpeta kraken_tests_ghost_vnueva_4_72_2 corra los comandos "npm install" y ""npm install kraken-node" para instalar las dependendicas del proyecto.
- Se debe modificar un archivo llamado properties.json que se encuentra en la carpeta kraken_tests_ghost_vnueva_4_72_2 el cual debe especificar las credenciales de administrador de Ghost y la URL en la que Ghost esta corriendo.
- Dentro de la carpeta kraken_tests_ghost_vnueva_4_72_2 hay 2 archivos para ejecutar los escenarios uno para mac llamado ejecutar_escenarios.sh y uno para windows llamado ejecutar_escenarios.bat. Estos scripts se encargaran de ejecutar los 20 escenarios, se creera una carpeta llamada screenshots la cual tendra subcarpetas con nombres de cada escenario y screenshots de cada paso. Estos scripts solamente corren los 10 escenarios escogidos para la semana:2,6,7,8,9,10,12,16,17,18.
- El archivo de windows utiliza el comando "npx kraken-node run" para correr las pruebas localmente, mientras que el archivo de mac utiliza el comando "./node_modules/kraken-node/bin/kraken-node run" para correr las pruebas utilizando el kraken local, para este escenariob es necesario tener la carpeta node_modules dentro de la carpeta kraken_tests_ghost_vnueva_4_72_2, que se genero gracias al paso 2 con el comando "npm install kraken-node"
- Si desea una corrida limpia se recomienda borrar las carpetas escenario{n} que estén creados en la carpeta screenshots sin borrar la carpeta que dice "escenario".
Instrucciones para ejecución de escenarios de pruebas con Kraken con ghost 4-48-9 hosteado en Google Cloud:
- Realicé la misma instalacion e instrucciones de kraken correspondiente a las instrucciones anteriores sin instalar ghost en local, es decir la correspondiente a la carpeta "kraken_tests_ghost_vnueva_4_72_2".
- Cambie las credenciales del archivos properties.json para utilizar usuario: [email protected] contraseña: Equipo3123# y host: http://104.155.182.18:2368/ghost.
- Ingrese a la carpeta de resemblejs y ejecute el siguiente comando: npm install
- En la carpeta "resemblejs" guarde dos carpetas independientes llamadas "ghost_4_49_9" y "ghost_5_72_1" o las carpetas de ghost que vaya a usar. Copie de las carpetas screenshots de las carpetas "kraken_tests*" los 10 escenarios a probar: 2,6,7,8,9,10,12,16,17,18.
- En la carpeta de resemblejs ejecute el siguiente comando: node index.js o npm start
- Ingrese a la carpeta de reports y abra el archivo report.html con algun browser. (ruta seria equipo03/resemblejs/reports/report.html)
- (Opcional) Puede configurar el porcentaje de diferencia con el cual solo se generará un reporte que mostrará los cambios más relevantes. Puede configurar este valor entre 0 y 100 en el archivo index.js línea 23
- Ingresar con el cmd a la carpeta "backstopjs" en la raiz del repositorio.
- Instalar backstopjs con el siguiente comando: npm install -g backstopjs
- En la carpeta "backstopjs" guarde dos carpetas independientes llamadas "ghost_4_49_9" y "ghost_5_72_1" o las carpetas de ghost que vaya a usar. Copie de las carpetas screenshots de las carpetas "kraken_tests*" los 10 escenarios a probar: 2,6,7,8,9,10,12,16,17,18. 3.Revise en la carpeta de backstojs el archivo "index.js" para que ahga referencia a las carpetas del paso anterior.
- Ingrese a la carpeta backstopjs y ejecute el siguiente comando: npm install
- Inicie backstop con el siguiente comando: npm start
- Se abrira un browser con el reporte
Para limpiar ghost siga las siguientes instrucciones:
- Inicie sesion en su instancia de ghost.
- De click en el engranaje ⚙️ de settings que aparece en el menu inferior izquierdo.
- En el campo de busqueda en el lado superior izquierdo, escriba la palabra "labs".
- Aparecerá un resultado a la derecha, de click en la opcion "Open"
- Luego de click en el boton Delete de la seccion "Delete all content" y confirme.
Para ver las incidencias y su detalle de click AQUI.
Si no se encuentra logueado, sigua las siguientes instrucciones:
- Abra su navegador preferido.
- Ingrese a la URL: https://id.atlassian.com/login
- En el campo de correo ingrese el siguiente: [email protected]
- De click en el boton "Continuar"
- En el campo de contraseña que se habilita, ingrese: B-6FqmVWjJE_#Pa (Asegurese de no copiar los espacios de los lados)
- De click en el boton "Iniciar sesión"
- Ingrese al tablero que desee buscando el sprint en el backlog completo..
- Maria Alas - [email protected]
- Daniel Gamez - [email protected]
- Jhon Puentes - [email protected]
- Robert Castro - [email protected]