Diferentes patrones de diseño para diferentes necesidades
Los patrones de diseño son soluciones a nivel de diseño para problemas recurrentes y se utilizan ampliamente en la programación. Los patrones de diseño son como reglas y directrices de buenas prácticas porque proporcionan el concepto para abordar los problemas y diseñar una solución. Sin embargo, el uso de los patrones de diseño es opcional.
Ventajas de los patrones de diseño en la automatización de pruebas:
- Ayuda a la reutilización del código.
- Código más flexible y mantenible.
- Ayuda a mejorar la fiabilidad.
Tipos
- Patrones de diseño de creación: En primer lugar están estos patrones los cuales están diseñados para la instanciación de clases (mecanismo de creación de objetos) por lo que aumenta la flexibilidad y la reutilización del código. Por ejemplo: patrón Singleton, patrón Builder, patrón de diseño Factory.
- Patrón Singleton: El patrón Singleton asegura que una clase tiene una sola instancia y proporciona un punto de acceso global. Se utiliza para registradores, conexiones o recursos externos y además, es muy útil cuando necesitamos utilizar el mismo objeto en todo el framework. La creación de una clase Singleton consiste en:
- Realizar un constructor privado
- Llevar a cabo una referencia estática de la clase
- Hacer un método estático que devuelva un objeto de tipo clase y que además compruebe si la clase ya está instanciada o no.
Crearemos una clase singleton para cargar los datos de la prueba desde el archivo de configuración.
- Patrón Builder: El patrón Builder es otro patrón de diseño útil que se puede utilizar en la automatización de pruebas. Este patrón permite la creación de múltiples representaciones de un objeto. Su objetivo es separar la construcción de un objeto complejo de su representación, de forma que un mismo proceso de construcción pueda crear diferentes representaciones.
- Patrón Singleton: El patrón Singleton asegura que una clase tiene una sola instancia y proporciona un punto de acceso global. Se utiliza para registradores, conexiones o recursos externos y además, es muy útil cuando necesitamos utilizar el mismo objeto en todo el framework. La creación de una clase Singleton consiste en:
El patrón Builder ayuda a reducir el número de parámetros en el constructor y por tanto, no hay necesidad de pasar null para los parámetros opcionales al constructor.
- Patrones de diseño estructural: Y en segundo lugar están estos patrones que están diseñados con respecto a la estructura y composición de una clase. El objetivo principal de la mayoría de estos patrones es aumentar la funcionalidad de la(s) clase(s) involucrada(s), sin cambiar mucho su composición. ej: Page Object Models, Facade patterns.
- Patrón de objetos de página: El Page Object Model es un patrón de diseño de objetos muy utilizado para estructurar el código de pruebas de automatización. Aquí, las páginas de la aplicación se representan como clases, y varios elementos de la interfaz de usuario de esas páginas se definen como variables.
- Patrón Facade: El patrón Facade proporciona una interfaz simple para tratar con código complejo. Este patrón es básicamente la extensión de POM. Una fachada se utiliza principalmente para combinar algunos objetos/acciones de la página y proporcionar acciones uniformes para los consumidores. Por ejemplo, cuando una API compleja necesita ser ejecutada en un orden específico, crear una fachada para la funcionalidad designada y proporcionar una interfaz simplificada para operar.
- Patrones de diseño de comportamiento: Estos patrones se diseñan en función de cómo se comunica una clase con otras. ¿Cómo son unos independientes de otros? ej: Patrón observador, patrón iterador, patrón estrategia, etc.
Finalmente, los patrones de diseño no garantizan una solución absoluta al problema, sin embargo, proporcionan la claridad y la posibilidad de construir un marco mejor. Añade un patrón cuando haya una necesidad práctica de uno. A veces, la solución más sencilla es no utilizar ningún patrón.
¿Quieres leer otros artículos escritos por técnicos de Aura? En nuestro blog podrás descubrir contenido muy interesante como Microsoft Teams. Sabías que…; Bases de datos NoSQL, Inteligencia Artificial en el Mundial de Futbol
0 comentarios