Repository navigation
Home
- Andrea Villamizar - af.villamizarr1@uniandes.edu.co
- Angello Villegas - a.villegasc2@uniandes.edu.co
- Zamir Narro - j.narro@uniandes.edu.co
| ID | Nombre Escenario | Funcionalidad | Responsable |
|---|---|---|---|
| EP01 | Crear un borrador y publicar un post | Administración de post | Zamir Narro |
| EP02 | Crear un tag, asignarlo a un post y ver en sitio | Administración de post | Zamir Narro |
| EP03 | Crear 2 post con mismo titulo y verificar que URL sean distintas | Administración de post | Zamir Narro |
| EP04 | Crear post, verificar, eliminar post y verificar que no exista | Administración de post | Zamir Narro |
| EP05 | Crear post, verificar, actualizar y verificar actualización | Administración de post | Zamir Narro |
| EP06 | Creación de suscriptores desde el portal administrativo | Administración de suscriptores desde el portal administrativo | Andrea Villamizar |
| EP07 | Eliminar suscriptor desde el portal administrativo | Administración de suscriptores desde el portal administrativo | Andrea Villamizar |
| EP08 | Filtrar suscriptores | Administración de suscriptores desde el portal administrativo | Andrea Villamizar |
| EP09 | Edición de suscriptores | Administración de suscriptores desde el portal administrativo | Andrea Villamizar |
| EP010 | Editar descripción de portal principal | Gestión de información de portal principal | Andrea Villamizar |
| EP011 | Creación de nueva página | Administración de páginas | Angello Villegas |
| EP012 | Guardar Draft | Administración de páginas | Angello Villegas |
| EP013 | Eliminación de nueva página | Administración de páginas | Angello Villegas |
| EP014 | Editar página | Administración de páginas | Angello Villegas |
| EP015 | Publicar page | Administración de páginas | Angello Villegas |
| EP016 | Verificar que la creación de tags sea exitosa | Administración de tags | Nelson Leonel Fonseca |
| EP017 | Verificar que la edición de tags sea exitosa | Administración de tags | Nelson Leonel Fonseca |
| EP018 | Verificar que la eliminación de tags sea exitosa | Administración de tags | Nelson Leonel Fonseca |
- Permite manejo de multiples usuarios
- Product owners, business analysts y stakeholders pueden escribir los casos de prueba
- Diseñado para el uso del formato Gherkin
- Baja compatibilidad con arquitecturas ARM
- La rehusaiblidad de los escenarios es menor en comparación con Cypress
- Framework bastante robusto, requiere poca configuración
- Permite el uso de patrón Page Object Model lo cual facilita el entendimiento de los test cases y la reusabilidad
- No es posible simular multiples usuarios
- Requiere conocimiento técnico para escribir y entender los casos de prueba
| ID | Nombre Escenario | Funcionalidad | Responsable | Herramienta VRT |
|---|---|---|---|---|
| EP02 | Crear un tag, asignarlo a un post y ver en sitio | Administración de post | Zamir Narro | BackstopJS |
| EP03 | Crear 2 post con mismo titulo y verificar que URL sean distintas | Administración de post | Zamir Narro | BackstopJS |
| EP06 | Creación de suscriptores desde el portal administrativo | Administración de suscriptores desde el portal administrativo | Andrea Villamizar | ResembleJS |
| EP07 | Eliminar suscriptor desde el portal administrativo | Administración de suscriptores desde el portal administrativo | Andrea Villamizar | BackstopJS |
| EP09 | Edición de suscriptores | Administración de suscriptores desde el portal administrativo | Andrea Villamizar | BackstopJS |
| EP011 | Creación de nueva página | Administración de páginas | Angello Villegas | BackstopJS |
| EP013 | Eliminación de nueva página | Administración de páginas | Angello Villegas | BackstopJS |
| EP016 | Verificar que la creación de tags sea exitosa | Administración de tags | Nelson Leonel Fonseca | BackstopJS |
| EP017 | Verificar que la edición de tags sea exitosa | Administración de tags | Nelson Leonel Fonseca | BackstopJS |
- Provee una completa suite de pruebas y alta capacidad de customización
- Genera tras la ejecución un reporte interactivo detallado que resalta las diferencias
- Se puede configurar múltiples dispositivos y viewports. Es bueno para testing de responsive web design
- Puedes definir múltiples escenarios en el archivo de configuración. Estos escenarios también pueden incluir acciones
- Usa headless browser, lo cual lo hace ideal para integrar con herramientas de CI
- La configuración inicial requiere más trabajo
- Está optimizado para Chrome. Su soporte para otros browsers es limitado
- Es flexible ya que trabaja tanto en el browser como en Node, por ello puede ser usado en amplio rango de aplicaciones
- No es un testing framework y se puede integrar en otras herramientas de testing
- Su API es sencilla y fácil de usar
- No requiere mayor configuración inicial
- Se puede configurar su nivel de tolerancia para las comparaciones
- Se limita a comparación de imágenes
- Su configuración es manual porque es solo una librería
Aquí se pueden encontrar explicaciones sobre las diferentes decisiones tomadas durante el proceso de automatización Link al video
https://github.com/jnarro-miso/ghost-issue-tracker/issues
- [BUG] Defecto visual: vista previa no es visible durante la edición de la página
- [BUG] Defecto visual: No se evidencia la funcionalidad "filtrar miembros"
- [BUG] Defecto visual: lista de páginas no tiene botón de edición
- [BUG] Defecto visual: No se confirma la eliminación de un usuario.
- [BUG] Defecto visual: en la vista de páginas el filtro de tipo de acceso fue removido
Descripción de las estrategias usadas y cómo se integran estas estrategias en los escenarios de pruebas. Se debe evidenciar en la descripción que se usan las tres estrategias solicitadas: pool de datos a-priori, pool de datos (pseudo) aleatorio dinámico y escenario aleatorio.
Los escenarios del #01 al #30 expuestos en la siguiente tabla y ubicados en estos documentos del repo 10Escenarios-a-piori.cy.js, 10Escenarios-pseudoAleatorio.cy.js, 10Escenarios-aleatorios.cy.js fueron seleccionados en base a la evidente necesidad de datos para su ejecución. Para abordar estas necesidades, se implementaron tres estrategias de generación de datos solicitadas: a priori, (pseudo)aleatoria y totalmente aleatoria.
Para el caso de los datos a priori en estos escenarios, se ha utilizado una API generada por Mockaroo, la cual proporciona tres conjuntos de datos que incluyen campos como "name", "email", "note", "nameTag", "colorTag" y "descriptionTag". Estos datos se inicializan en la función "before()" del documento correspondiente, garantizando así la disponibilidad de un pool de datos establecido antes del inicio de la ejecución de los escenarios, cumpliendo con la definición de datos a priori.
La estrategia de generación de datos (pseudo)aleatorios para estos escenarios se implementó utilizando la biblioteca Faker. Se generó una semilla utilizando "faker.seed()", lo que permitió replicar los mismos conjuntos de datos en diferentes ejecuciones. Esto garantiza la consistencia de los datos generados y cumple con la definición de datos (pseudo)aleatorios.
Por último, la estrategia de generación de datos totalmente aleatorios para estos escenarios también se llevó a cabo con Faker. En este caso, cada dato necesario para los escenarios se genera aleatoriamente en el momento de su solicitud. Esto asegura que cada ejecución produzca conjuntos de datos únicos y cumple con la definición de datos aleatorios.
Sumado a ello, en los escenarios relacionados a la funcionalidad de posts y tags se hizo uso de un pool de datos a priori para probar datos inválidos y casos de frontera, ya que la data a priori permitió un mayor control sobre este tipo de casos que uno desea probar. Se probó el usó de datos pseudoaleatorios con Faker para crear posts con determinada cantidad de caracteres en título o contenido; en este caso si bien Faker brinda datos aleatorios, la cantidad de los dígitos está restringida en dichos casos de prueba por lo que no son totalmente aleatorias. Por último, se realizó algunas pruebas con campos totalmente aleatorios con Faker para los campos del post.
| No | Nombre Escenario | A-priori | (pseudo) aleatorio | aleatorio | Responsable |
|---|---|---|---|---|---|
| Escenario 01 - 03 | Creación de suscriptores desde el portal administrativo correctamente. | Si | Si | Si | Andrea Villamizar |
| Escenario 04 - 06 | Creación de suscriptores desde el portal administrativo suministrando correo inválido. | Si | Si | Si | Andrea Villamizar |
| Escenario 07 - 09 | Edición de suscriptores correctamente. | Si | Si | Si | Andrea Villamizar |
| Escenario 10 - 12 | Edición de suscriptores incorrecto. | Si | Si | Si | Andrea Villamizar |
| Escenario 13 - 15 | Editar descripción de portal principal | Si | Si | Si | Andrea Villamizar |
| Escenario 16 - 18 | Invitar un colaborador (staff) correctamente. | Si | Si | Si | Andrea Villamizar |
| Escenario 19 - 21 | Invitar un colaborador (staff) con datos incorrectos | Si | Si | Si | Andrea Villamizar |
| Escenario 22 - 24 | Editar las Social Accounts | Si | Si | Si | Andrea Villamizar |
| Escenario 25 - 27 | Agregar tags correctamente. | Si | Si | Si | Andrea Villamizar |
| Escenario 28 - 30 | Agregar tags con datos erróneos. | Si | Si | Si | Andrea Villamizar |
| Escenario 31 | Creación de nueva página | No | Si | No | Angello Villegas |
| Escenario 32 | Eliminación de nueva página | No | Si | No | Angello Villegas |
| Escenario 33 | Guardar Draft | No | Si | No | Angello Villegas |
| Escenario 34 | Editar página | No | Si | No | Angello Villegas |
| Escenario 35 | Publicar página | No | Si | No | Angello Villegas |
| Escenario 36 | Add tag to page | No | Si | No | Angello Villegas |
| Escenario 37 | Add more than one tag to page | No | Si | No | Angello Villegas |
| Escenario 38 | change default URI to page | No | Si | No | Angello Villegas |
| Escenario 39 | Words counter works correctly | No | Si | No | Angello Villegas |
| Escenario 40 | Excerpt text with 299 chars | No | No | Si | Angello Villegas |
| Escenario 41 | Excerpt text with 300 chars | No | No | Si | Angello Villegas |
| Escenario 42 | Excerpt text with 301 chars | No | No | Si | Angello Villegas |
| Escenario 43 | Set publish date in correct format | No | No | Si | Angello Villegas |
| Escenario 44 | Set publish date in incorrect format | No | No | Si | Angello Villegas |
| Escenario 45 | Set publish hour in incorrect format | No | No | Si | Angello Villegas |
| Escenario 46 | Add Facebook card title 299 chars long | No | No | Si | Angello Villegas |
| Escenario 47 | Add Facebook card title 300 chars long | No | No | Si | Angello Villegas |
| Escenario 48 | Add Facebook card title 301 chars long | No | No | Si | Angello Villegas |
| Escenario 49 | Add Facebook card description 499 chars long | No | No | Si | Angello Villegas |
| Escenario 50 | Add Facebook card description 500 chars long | No | No | Si | Angello Villegas |
| Escenario 51 | Add Facebook card description 501 chars long | No | No | Si | Angello Villegas |
| Escenario 52 | Add X card title 299 chars long | No | No | Si | Angello Villegas |
| Escenario 53 | Add X card title 300 chars long | No | No | Si | Angello Villegas |
| Escenario 54 | Add X card title 301 chars long | No | No | Si | Angello Villegas |
| Escenario 55 | Add X card Description 499 chars long | No | No | Si | Angello Villegas |
| Escenario 56 | Add X card Description 500 chars long | No | No | Si | Angello Villegas |
| Escenario 57 | Add X card Description 501 chars long | No | No | Si | Angello Villegas |
| Escenario 58 | Set uri with special characters | Si | No | No | Angello Villegas |
| Escenario 59 | Set uri with white spaces | Si | No | No | Angello Villegas |
| Escenario 60 | Set invalid URL to metadata cononical URL | Si | No | No | Angello Villegas |
| Escenario 61 | Set valid URL to metadata cononical URL | Si | No | No | Angello Villegas |
| Escenario 62 | Set publish date to date that has already passed | Si | No | No | Angello Villegas |
| Escenario 63 | create a post, and a draft | No | No | Si | Zamir Narro |
| Escenario 64 | create a post, create a tag, and add the tag to the post | No | No | Si | Zamir Narro |
| Escenario 65 | creating two posts with the same title | No | No | Si | Zamir Narro |
| Escenario 66 | create a post, verify it is published, delete it, and verify it is deleted | No | No | Si | Zamir Narro |
| Escenario 67 | create a post, verify it is published, and update it | No | No | Si | Zamir Narro |
| Escenario 68 | create a post title with 255 chars | No | Si | No | Zamir Narro |
| Escenario 69 | not create a post title with 256 chars | No | Si | No | Zamir Narro |
| Escenario 70 | create a post content with 1000 chars | No | Si | No | Zamir Narro |
| Escenario 71 | create a post content with 5000 chars | No | Si | No | Zamir Narro |
| Escenario 72 | create a post content with 10000 chars | No | Si | No | Zamir Narro |
| Escenario 73 | create a tag with 191 chars, and add tag to a post | No | Si | No | Zamir Narro |
| Escenario 74 | not create a tag with 192 chars | No | Si | No | Zamir Narro |
| Escenario 75 | not create an empty post | Si | No | No | Zamir Narro |
| Escenario 76 | not be able to publish if type and then clear | Si | No | No | Zamir Narro |
| Escenario 76 | create a post with only title | Si | No | No | Zamir Narro |
| Escenario 77 | create a post with only content | Si | No | No | Zamir Narro |
| Escenario 78 | create a post with title and content | Si | No | No | Zamir Narro |
| Escenario 79 | create a post with a long title | Si | No | No | Zamir Narro |
| Escenario 80 | create a post with numbers as title | Si | No | No | Zamir Narro |
| Escenario 81 | create a post with special characters | Si | No | No | Zamir Narro |
| Escenario 82 | create a post with html injection as just text | Si | No | No | Zamir Narro |
| Escenario 83 | create a post with sql injection as just text | Si | No | No | Zamir Narro |
| Escenario 84 | create a post with multiple paragraphs | Si | No | No | Zamir Narro |
| Escenario 85 | create a post with markdown | Si | No | No | Zamir Narro |
| Escenario 86 | create a post with emojis in title | Si | No | No | Zamir Narro |
| Escenario 87 | create a post with emojis in content | Si | No | No | Zamir Narro |
| Escenario 88 | create a post with emojis in title and content | Si | No | No | Zamir Narro |
| Escenario 89 | not create a tag with emoji | Si | No | No | Zamir Narro |
| Escenario 90 | not create a tag with html injection | Si | No | No | Zamir Narro |
| Escenario 91 | not create a tag with sql injection | Si | No | No | Zamir Narro |
https://github.com/jnarro-miso/ghost-issue-tracker/issues
- [BUG] Se permite caracteres especiales en el "nombre" al momento de crear un suscriptor
- [BUG] Se permite enviar la invitación a colaboradores a correos que no cumplen con formato válido para correo.
- [BUG] Se permite caracteres especiales en el "nombre" y "correo" al momento de editar un suscriptor
- [BUG] Se permite crear tags con nombre, slug y descripción con caracteres especiales
- [BUG] Metadata de la página permite URLs mal formateadas
- [BUG] Sección "New page" permite horas de publicación invalidas
- [BUG] Sección "New Page" permite asignar fechas de publicación que ya pasaron
- [BUG] Slug de tag se recorta al llegar al máximo de caracteres
- [BUG] Permite crear tag con un emoji como nombre
- [BUG] Botón de Publicar no desaparece al limpiar campos de post
- Enlace a estrategia de pruebas
- Enlace a inventario de pruebas exploratorias
- Enlace a video de presentación de estrategia y resultados
Issue tracker: https://github.com/jnarro-miso/ghost-issue-tracker/issues
- [BUG] Dark mode no funciona en mobile
- [BUG] Publish hour no alerta cuando está mal formateada en mobile
- [BUG] Permite añadir URL incorrecta al menú de navegación
- [BUG] Error no manejado al agregar URL incorrecta a la sección "Add Recomendations"
- [BUG] Embeddable signup cannot be closed on Mobile
- [BUG] Mobile: Permite crear tag con un emoji como nombre
- [BUG] Mobile: Botón de Publicar no desaparece al limpiar campos de post
- [BUG] Mobile: Defecto visual al cancelar luego de modificar URL
- [BUG] Mobile: Tags se guardan pese a descartar cambios
- [BUG] Mobile: Feedback al eliminar único autor no corresponde
- [BUG] Textos de botones pueden desaparecer al customizar
- [BUG] Validación de Campos de formulario para crear 'member' no se realiza mientras se completa el formulario
- [BUG] Se permite la creación de un "member" con un emoji como nombre.
- [BUG] No hay confirmación de 'eliminación exitosa' de un miembro.
- [BUG] Defecto visual en vista al consultar la actividad de los 'member' en dimensión 430x932
- [BUG] Defecto visual en vista al consultar el detalle de una actividad en específico de un 'member' en dimensión 430x932
Retrospectiva DAKI: