Skip to content
Josue Zamir Narro Abanto edited this page May 26, 2024 · 25 revisions

Pruebas automatizadas de software

Integrantes del equipo:

Entrega Semana 5

Funcionalidades y escenarios seleccionados

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

Resumen PRO y CONTRAS de Kraken y Cypress

Pros kraken

  • 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

Cons

  • Baja compatibilidad con arquitecturas ARM
  • La rehusaiblidad de los escenarios es menor en comparación con Cypress

Pros 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

Desventajas

  • No es posible simular multiples usuarios
  • Requiere conocimiento técnico para escribir y entender los casos de prueba

Entrega Semana 6

Funcionalidades y escenarios seleccionados

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

Resumen PRO y CONTRAS de BackstopJS y ResembleJS

Pros 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

Desventajas BackstopJS

  • La configuración inicial requiere más trabajo
  • Está optimizado para Chrome. Su soporte para otros browsers es limitado

Pros ResembleJS

  • 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

Desventajas ResembleJS

  • Se limita a comparación de imágenes
  • Su configuración es manual porque es solo una librería

Decisiones sobre la implementación

Aquí se pueden encontrar explicaciones sobre las diferentes decisiones tomadas durante el proceso de automatización Link al video

Indicendias:

https://github.com/jnarro-miso/ghost-issue-tracker/issues

  1. [BUG] Defecto visual: vista previa no es visible durante la edición de la página
  2. [BUG] Defecto visual: No se evidencia la funcionalidad "filtrar miembros"
  3. [BUG] Defecto visual: lista de páginas no tiene botón de edición
  4. [BUG] Defecto visual: No se confirma la eliminación de un usuario.
  5. [BUG] Defecto visual: en la vista de páginas el filtro de tipo de acceso fue removido

Entrega Semana 7

¿Cómo se generaron los 120 escenarios?

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.

Funcionalidades y escenarios seleccionados

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

Incidencias (10):

https://github.com/jnarro-miso/ghost-issue-tracker/issues

  1. [BUG] Se permite caracteres especiales en el "nombre" al momento de crear un suscriptor
  2. [BUG] Se permite enviar la invitación a colaboradores a correos que no cumplen con formato válido para correo.
  3. [BUG] Se permite caracteres especiales en el "nombre" y "correo" al momento de editar un suscriptor
  4. [BUG] Se permite crear tags con nombre, slug y descripción con caracteres especiales
  5. [BUG] Metadata de la página permite URLs mal formateadas
  6. [BUG] Sección "New page" permite horas de publicación invalidas
  7. [BUG] Sección "New Page" permite asignar fechas de publicación que ya pasaron
  8. [BUG] Slug de tag se recorta al llegar al máximo de caracteres
  9. [BUG] Permite crear tag con un emoji como nombre
  10. [BUG] Botón de Publicar no desaparece al limpiar campos de post

Entrega Semana 8 (Final)

Estrategia de pruebas

Incidencias (15 requeridas):

Issue tracker: https://github.com/jnarro-miso/ghost-issue-tracker/issues

  1. [BUG] Dark mode no funciona en mobile
  2. [BUG] Publish hour no alerta cuando está mal formateada en mobile
  3. [BUG] Permite añadir URL incorrecta al menú de navegación
  4. [BUG] Error no manejado al agregar URL incorrecta a la sección "Add Recomendations"
  5. [BUG] Embeddable signup cannot be closed on Mobile
  6. [BUG] Mobile: Permite crear tag con un emoji como nombre
  7. [BUG] Mobile: Botón de Publicar no desaparece al limpiar campos de post
  8. [BUG] Mobile: Defecto visual al cancelar luego de modificar URL
  9. [BUG] Mobile: Tags se guardan pese a descartar cambios
  10. [BUG] Mobile: Feedback al eliminar único autor no corresponde
  11. [BUG] Textos de botones pueden desaparecer al customizar
  12. [BUG] Validación de Campos de formulario para crear 'member' no se realiza mientras se completa el formulario
  13. [BUG] Se permite la creación de un "member" con un emoji como nombre.
  14. [BUG] No hay confirmación de 'eliminación exitosa' de un miembro.
  15. [BUG] Defecto visual en vista al consultar la actividad de los 'member' en dimensión 430x932
  16. [BUG] Defecto visual en vista al consultar el detalle de una actividad en específico de un 'member' en dimensión 430x932

Retrospectiva DAKI:

Screenshot 2024-05-25 at 6 45 51 PM