Skip to content

Instantly share code, notes, and snippets.

@03Juan2001
Last active February 28, 2024 07:05
Show Gist options
  • Save 03Juan2001/018a2af5d8499898e3e2f51aa6bec1a7 to your computer and use it in GitHub Desktop.
Save 03Juan2001/018a2af5d8499898e3e2f51aa6bec1a7 to your computer and use it in GitHub Desktop.

1.2 Listar los patrones de diseño de su sistema, use GTP para detectar las clases.

Justificación de las Clases del Sistema

  1. BasePage:

    • Justificación: La clase BasePage proporciona una base común para todas las páginas de la aplicación web. Contiene funcionalidades compartidas por todas las páginas, como el manejo del navegador web. Al encapsular estas funcionalidades en una clase base, se promueve la reutilización del código y se mantiene la consistencia en toda la suite de pruebas.
    • Responsabilidades: Manejo del navegador web y funcionalidades comunes de la página.
  2. HomePage:

    • Justificación: La clase HomePage representa la página de inicio de la aplicación web. Contiene métodos para interactuar con elementos específicos de esta página, como el cuadro de búsqueda y el botón de búsqueda. Al encapsular estas interacciones en una clase separada, se mejora la legibilidad y mantenibilidad del código de prueba.
    • Responsabilidades: Interacciones específicas de la página de inicio, como la búsqueda.
  3. SearchResultPage:

    • Justificación: La clase SearchResultPage representa la página de resultados de búsqueda de la aplicación web. Contiene métodos para interactuar con elementos específicos de esta página, como los resultados de búsqueda. Al encapsular estas interacciones en una clase separada, se facilita la escritura y mantenimiento de las pruebas relacionadas con los resultados de búsqueda.
    • Responsabilidades: Interacciones específicas de la página de resultados de búsqueda, como obtener los resultados de búsqueda.

Untitled diagram-2024-02-28-064356

Patrones de Diseño Recomendados para Herramientas de Automatización de Pruebas para Aplicaciones Web

  1. Page Object Pattern:

    • Descripción: Modela cada página web de la aplicación como una clase separada, con métodos que representan las interacciones y comportamientos de esa página. Ayuda a mantener el código de prueba limpio, modular y fácil de mantener.
  2. Factory Method Pattern:

    • Descripción: Utilizado para encapsular la lógica de creación de objetos y permitir la extensibilidad. Útil si tu herramienta necesita crear diferentes tipos de objetos, como diferentes tipos de navegadores o elementos de la interfaz de usuario.
  3. Observer Pattern:

    • Descripción: Establece una relación de dependencia uno a muchos entre objetos observables (por ejemplo, los resultados de las pruebas) y los observadores (por ejemplo, los sistemas o equipos que reciben los informes). Útil si necesitas notificar a múltiples partes interesadas, como informes de prueba a diferentes equipos o sistemas.
  4. Decorator Pattern:

    • Descripción: Permite extender dinámicamente el comportamiento de los objetos relacionados con las pruebas, como agregar funcionalidad de registro o métricas adicionales. Útil para adjuntar responsabilidades adicionales a estos objetos de manera flexible y transparente.

Recomendación de Lenguajes para la Herramienta de Automatización de Pruebas

  1. Python:

    • Simplicidad y legibilidad: Python tiene una sintaxis clara y legible que facilita el desarrollo y mantenimiento del código, aspecto importante para una herramienta de automatización de pruebas.
    • Gran cantidad de bibliotecas: Python cuenta con una amplia gama de bibliotecas adecuadas para la automatización de pruebas web, lo que proporciona una base sólida para el desarrollo sin necesidad de reinventar la rueda.
    • Comunidad activa: La comunidad de Python es activa y vibrante, proporcionando soporte, documentación y recursos que facilitan el desarrollo y resolución de problemas.
  2. JavaScript:

    • Ecosistema web: JavaScript es el lenguaje principal para el desarrollo web, lo que lo hace ideal para la automatización de pruebas de aplicaciones web, permitiendo integración y comprensión del código con las tecnologías web.
    • Frameworks de prueba modernos: JavaScript cuenta con frameworks como WebDriverIO y Cypress, diseñados específicamente para la automatización de pruebas web, ofreciendo características avanzadas y una sintaxis concisa.
    • Soporte multiplataforma: JavaScript es compatible con múltiples plataformas y entornos de ejecución, lo que permite ejecutar pruebas en diferentes navegadores y sistemas operativos con facilidad.

Recomendación: Page Object Pattern

  • Justificación:
    • El Page Object Pattern es especialmente útil en el contexto de automatización de pruebas web, ya que permite modelar cada página de la aplicación como una clase separada. Esto facilita la organización y mantenimiento del código de prueba al encapsular las interacciones y comportamientos específicos de cada página en clases dedicadas.
    • Al utilizar este patrón, puedes mantener los scripts de prueba más legibles, modulares y fáciles de mantener, ya que las acciones y verificaciones específicas de cada página están claramente definidas en clases separadas.
    • Además, el Page Object Pattern promueve la reutilización del código, ya que las interacciones comunes con los elementos de la interfaz de usuario (como hacer clic en un botón o completar un formulario) se encapsulan en métodos reutilizables dentro de las clases de Page Object.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment