SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
Patrones de diseño en la automatización:
¿PageObject o ScreenPlay?
Ing. Abel Quintana López
@beloquintana
belo.quintana@gmail.com
Automation Test Lead
belo.quintana@gmail.com
@beloquintana
Abel Quintana Lopez
https://github.com/beloquintana
Patrones de diseño
Automatización de pruebasFramework Automatización Patrones de Diseño
Agenda
 Page Object
 SOLID
 Refactorización de Page Object
 ScreenPlay Pattern
 Demo
Agenda
 Page Object
 SOLID
 Refactorización de Page Object
 ScreenPlay Pattern
 Demo
Page Object
 Representa componentes web
 Evita duplicación de código
 Automatizaciones mantenibles
Page Object - Ejemplo
Page Object - Beneficios
PageObject
Test1
Test2
Test3
Interfaz gráfica
Page Object – Problema más común
Clases grandes
 Atributos
Localizadores
PageFactory
 Métodos
Interacción página web
Algoritmos de validación
Page Object – Clases grandes
¿Cuál es el problema con tener clases con
muchas líneas de código?
 Más líneas de código, Más complejo
 Código repetido
 Difícil de mantener
Page Object – Clases grandes
Agenda
 Page Object
 SOLID
 Refactorización de Page Object
 ScreenPlay Pattern
 Demo
SOLID – Principios
Single responsibility principle
Open Closed principle
Liskov substitution principle
Interface segregation principle
Dependency inversion principle
SOLID – Principios
 Buenas prácticas
 Mas fácil de mantener y extender
 Elimina malas prácticasRobert C. Martin
SOLID – Principios
Single responsibility principle
Open Closed principle
Liskov substitution principle
Interface segregation principle
Dependency inversion principle
Single responsibility principle (SRP)
A class should have only one reason to change.
Robert C. Martin
SRP – Page Object
SRP – Page Object
GridPage
AddButton
RemoveButton
Checkbox
CancelButton
…
AddItem()
RemoveItem()
Filter()
AddInvalidItem()
…
Responsabilidades
Localizar elementos web
Realizar tareas
Open Closed principle – (OCP)
 Abierta por extensión
 Cerrada por modificación
Clase
Open Closed principle – (OCP)
GridPage
AddButton
RemoveButton
Checkbox
CancelButton
…
AddItem()
RemoveItem()
Filter()
AddInvalidItem()
…
Editar Clase
Adicionar Clase
Adicionar nueva funcionalidad:
Page Object – SOLID principios
Single Responsibility principle
Open Closed principle
Principios SOLID de la programación orientada a objetos
Page Object – Refactorización
Refactorización
SOLID
Page Object Screen Play
Agenda
 Page Object
 SOLID
 Refactorización de Page Object
 ScreenPlay Pattern
 Demo
Page Object – Refactorización
Antony Marcano
http://antonymarcano.com/
 Refactorización Page Object
 Creador ScreenPlay Pattern
Page Object – Refactorización - OCP
GridPage
AddButton
RemoveButton
Checkbox
CancelButton
…
AddItem()
RemoveItem()
Filter()
AddInvalidItem()
…
AddItem
AddButton
Add()
AddInvalidItem()
RemoveButton
Remove()
RemoveItem
Page Object – Refactorización - SRP
GridPage
AddButton
RemoveButton
Checkbox
CancelButton
…
AddItem()
RemoveItem()
Filter()
AddInvalidItem()
…
GridPage
GridTask
AddButton
RemoveButton
Checkbox
CancelButton
…
AddItem()
RemoveItem()
Filter()
AddInvalidItem()
…
Page Object – Refactorización
GridPage
AddButton
RemoveButton
Checkbox
CancelButton
…
AddItem()
RemoveItem()
Filter()
AddInvalidItem()
…
GridPage
AddItem
AddButton
RemoveButton
Checkbox
CancelButton
…
Perform()
RemoveItem
Perform()
Filter
Perform()
AddInvalidItem
Perform()
…you extend the behavior of such modules by
adding new code, not by changing old code that
already works.
Robert C. Martin
Page Object – Refactorización
Page Object – Refactorización
GridPage
AddButton
RemoveButton
Checkbox
CancelButton
…
AddItem()
RemoveItem()
Filter()
AddInvalidItem()
…
GridPage
AddItem
AddButton
RemoveButton
Checkbox
CancelButton
…
Perform()
RemoveItem
Perform()
Filter
Perform()
AddInvalidItem
Perform()
Screen
Tasks
Agenda
 Page Object
 SOLID
 Refactorización de Page Object
 ScreenPlay Pattern
 Demo
ScreenPlay Pattern – Enfoque BDD
Roles
Goals
Tasks
Actions
Caso de prueba
Tipo de usuario
Pasos del caso de prueba
Click, Escribir
ScreenPlay Pattern
Enfoque BDD SOLID ScreenPlay
ScreenPlay Pattern - Serenity BDD
http://www.thucydides.info
https://github.com/serenity-dojo/screenplay-exercises
ScreenPlay Pattern – Diagrama de Clases
TestCase Tasks
Actions
Screen
Goals
Tasks
Actions
Screen
Agenda
 Page Object
 SOLID
 Refactorización de Page Object
 ScreenPlay Pattern
 Demo
ScreenPlay Pattern – Demo
https://github.com/beloquintana/screenplay-pattern
https://verstandqa.com/ejercicios/
Page Object vs ScreenPlay Pattern
Page Object ScreenPlay
Simple Complejo
Más propenso a malas prácticas de
programación
Basado en SOLID principles
Con Ambos patrones podemos lograr automatizaciones mantenibles
Automatización de Pruebas Exitosa
Buenas prácticas de programaciónPatrones de diseño
https://pixers.fr/papiers-peints/la-route-vers-le-succes-43419281
Muchas Gracias
Patrones de diseño en la automatización:
¿PageObject o ScreenPlay?
Ing. Abel Quintana López
@beloquintana
belo.quintana@gmail.com

Más contenido relacionado

Similar a Patrones de diseño en la automatización, PageObject o ScreenPlay

El Mal Odiado Javascript
El Mal Odiado JavascriptEl Mal Odiado Javascript
El Mal Odiado Javascript
El Jota
 
4. Agregar Codigo A Los Formularios Web Form
4.  Agregar Codigo A Los Formularios Web Form4.  Agregar Codigo A Los Formularios Web Form
4. Agregar Codigo A Los Formularios Web Form
guest3cf6ff
 

Similar a Patrones de diseño en la automatización, PageObject o ScreenPlay (20)

El Mal Odiado Javascript
El Mal Odiado JavascriptEl Mal Odiado Javascript
El Mal Odiado Javascript
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a Django
 
Clase 12 jQuery basico
Clase 12  jQuery basicoClase 12  jQuery basico
Clase 12 jQuery basico
 
IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014
 
HTML5-Aplicaciones web
HTML5-Aplicaciones webHTML5-Aplicaciones web
HTML5-Aplicaciones web
 
Congreso web
Congreso webCongreso web
Congreso web
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a Django
 
Primeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPrimeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigo
 
Magento Best Practices
Magento Best PracticesMagento Best Practices
Magento Best Practices
 
4. Agregar Codigo A Los Formularios Web Form
4.  Agregar Codigo A Los Formularios Web Form4.  Agregar Codigo A Los Formularios Web Form
4. Agregar Codigo A Los Formularios Web Form
 
Patrones de diseño.pptx
Patrones de diseño.pptxPatrones de diseño.pptx
Patrones de diseño.pptx
 
slides curso intermedio angular
slides curso intermedio angularslides curso intermedio angular
slides curso intermedio angular
 
Presentación Fitnesse
Presentación Fitnesse Presentación Fitnesse
Presentación Fitnesse
 
Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700
 
Arquitecturas Adaptativas de Componentes Web
Arquitecturas Adaptativas de Componentes WebArquitecturas Adaptativas de Componentes Web
Arquitecturas Adaptativas de Componentes Web
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.net
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NET
 
Macromedia
MacromediaMacromedia
Macromedia
 
Esencia de web components
Esencia de web componentsEsencia de web components
Esencia de web components
 
Asp.Net Controls Basic Part 1
Asp.Net Controls Basic Part 1Asp.Net Controls Basic Part 1
Asp.Net Controls Basic Part 1
 

Más de TestingCR

Puro Jmeter, Pura Vida! - Base de Datos y Webservices desde Jmeter
Puro Jmeter, Pura Vida! - Base de Datos y Webservices desde JmeterPuro Jmeter, Pura Vida! - Base de Datos y Webservices desde Jmeter
Puro Jmeter, Pura Vida! - Base de Datos y Webservices desde Jmeter
TestingCR
 

Más de TestingCR (15)

Webinar - Scrum for Beginners! impartida por Melissa Leyva
Webinar - Scrum for Beginners! impartida por Melissa LeyvaWebinar - Scrum for Beginners! impartida por Melissa Leyva
Webinar - Scrum for Beginners! impartida por Melissa Leyva
 
WEBINAR: Mejora Continua en equipos de Testing por Nadia Cavalleri
WEBINAR: Mejora Continua en equipos de Testing por Nadia CavalleriWEBINAR: Mejora Continua en equipos de Testing por Nadia Cavalleri
WEBINAR: Mejora Continua en equipos de Testing por Nadia Cavalleri
 
How can we start in the QA World?
How can we start in the QA World?How can we start in the QA World?
How can we start in the QA World?
 
Mobile Automation Basic Concepts / Demo
Mobile Automation Basic Concepts / DemoMobile Automation Basic Concepts / Demo
Mobile Automation Basic Concepts / Demo
 
UX/UI: QA Approved
UX/UI: QA ApprovedUX/UI: QA Approved
UX/UI: QA Approved
 
El papel del liderazgo femenino en el campo tecnológico y su balance con la v...
El papel del liderazgo femenino en el campo tecnológico y su balance con la v...El papel del liderazgo femenino en el campo tecnológico y su balance con la v...
El papel del liderazgo femenino en el campo tecnológico y su balance con la v...
 
Pruebas De Seguridad Aplicadas a QA
Pruebas De Seguridad Aplicadas a QAPruebas De Seguridad Aplicadas a QA
Pruebas De Seguridad Aplicadas a QA
 
Choosing the correct test case manager
Choosing the correct test case managerChoosing the correct test case manager
Choosing the correct test case manager
 
Improving Automated Tests with Fluent Assertions
Improving Automated Tests with Fluent Assertions Improving Automated Tests with Fluent Assertions
Improving Automated Tests with Fluent Assertions
 
Generic Test Automation Architecture
Generic Test Automation ArchitectureGeneric Test Automation Architecture
Generic Test Automation Architecture
 
Puro Jmeter, Pura Vida! - Base de Datos y Webservices desde Jmeter
Puro Jmeter, Pura Vida! - Base de Datos y Webservices desde JmeterPuro Jmeter, Pura Vida! - Base de Datos y Webservices desde Jmeter
Puro Jmeter, Pura Vida! - Base de Datos y Webservices desde Jmeter
 
Webinar: Los mil millones de usuarios que debes considerar en tus pruebas
Webinar: Los mil millones de usuarios que debes considerar en tus pruebasWebinar: Los mil millones de usuarios que debes considerar en tus pruebas
Webinar: Los mil millones de usuarios que debes considerar en tus pruebas
 
WEBINAR: Testing Exploratorio y Mind Maps por Claudia Badell
WEBINAR: Testing Exploratorio y Mind Maps por Claudia BadellWEBINAR: Testing Exploratorio y Mind Maps por Claudia Badell
WEBINAR: Testing Exploratorio y Mind Maps por Claudia Badell
 
Estado del testing 2019
Estado del testing 2019  Estado del testing 2019
Estado del testing 2019
 
Automation Image Comparison Testing
Automation Image Comparison TestingAutomation Image Comparison Testing
Automation Image Comparison Testing
 

Último

ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
gustavoiashalom
 
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfSesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
annavarrom
 

Último (20)

clasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesclasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias locales
 
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOPERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docx
 
introducción a las comunicaciones satelitales
introducción a las comunicaciones satelitalesintroducción a las comunicaciones satelitales
introducción a las comunicaciones satelitales
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcción
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVILClase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
 
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
Falla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralFalla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integral
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfSesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
 

Patrones de diseño en la automatización, PageObject o ScreenPlay

  • 1. Patrones de diseño en la automatización: ¿PageObject o ScreenPlay? Ing. Abel Quintana López @beloquintana belo.quintana@gmail.com
  • 2. Automation Test Lead belo.quintana@gmail.com @beloquintana Abel Quintana Lopez https://github.com/beloquintana
  • 3. Patrones de diseño Automatización de pruebasFramework Automatización Patrones de Diseño
  • 4. Agenda  Page Object  SOLID  Refactorización de Page Object  ScreenPlay Pattern  Demo
  • 5. Agenda  Page Object  SOLID  Refactorización de Page Object  ScreenPlay Pattern  Demo
  • 6. Page Object  Representa componentes web  Evita duplicación de código  Automatizaciones mantenibles
  • 7. Page Object - Ejemplo
  • 8. Page Object - Beneficios PageObject Test1 Test2 Test3 Interfaz gráfica
  • 9. Page Object – Problema más común Clases grandes  Atributos Localizadores PageFactory  Métodos Interacción página web Algoritmos de validación
  • 10. Page Object – Clases grandes ¿Cuál es el problema con tener clases con muchas líneas de código?
  • 11.  Más líneas de código, Más complejo  Código repetido  Difícil de mantener Page Object – Clases grandes
  • 12. Agenda  Page Object  SOLID  Refactorización de Page Object  ScreenPlay Pattern  Demo
  • 13. SOLID – Principios Single responsibility principle Open Closed principle Liskov substitution principle Interface segregation principle Dependency inversion principle
  • 14. SOLID – Principios  Buenas prácticas  Mas fácil de mantener y extender  Elimina malas prácticasRobert C. Martin
  • 15. SOLID – Principios Single responsibility principle Open Closed principle Liskov substitution principle Interface segregation principle Dependency inversion principle
  • 16. Single responsibility principle (SRP) A class should have only one reason to change. Robert C. Martin
  • 17. SRP – Page Object
  • 18. SRP – Page Object GridPage AddButton RemoveButton Checkbox CancelButton … AddItem() RemoveItem() Filter() AddInvalidItem() … Responsabilidades Localizar elementos web Realizar tareas
  • 19. Open Closed principle – (OCP)  Abierta por extensión  Cerrada por modificación Clase
  • 20. Open Closed principle – (OCP) GridPage AddButton RemoveButton Checkbox CancelButton … AddItem() RemoveItem() Filter() AddInvalidItem() … Editar Clase Adicionar Clase Adicionar nueva funcionalidad:
  • 21. Page Object – SOLID principios Single Responsibility principle Open Closed principle
  • 22. Principios SOLID de la programación orientada a objetos Page Object – Refactorización Refactorización SOLID Page Object Screen Play
  • 23. Agenda  Page Object  SOLID  Refactorización de Page Object  ScreenPlay Pattern  Demo
  • 24. Page Object – Refactorización Antony Marcano http://antonymarcano.com/  Refactorización Page Object  Creador ScreenPlay Pattern
  • 25. Page Object – Refactorización - OCP GridPage AddButton RemoveButton Checkbox CancelButton … AddItem() RemoveItem() Filter() AddInvalidItem() … AddItem AddButton Add() AddInvalidItem() RemoveButton Remove() RemoveItem
  • 26. Page Object – Refactorización - SRP GridPage AddButton RemoveButton Checkbox CancelButton … AddItem() RemoveItem() Filter() AddInvalidItem() … GridPage GridTask AddButton RemoveButton Checkbox CancelButton … AddItem() RemoveItem() Filter() AddInvalidItem() …
  • 27. Page Object – Refactorización GridPage AddButton RemoveButton Checkbox CancelButton … AddItem() RemoveItem() Filter() AddInvalidItem() … GridPage AddItem AddButton RemoveButton Checkbox CancelButton … Perform() RemoveItem Perform() Filter Perform() AddInvalidItem Perform()
  • 28. …you extend the behavior of such modules by adding new code, not by changing old code that already works. Robert C. Martin Page Object – Refactorización
  • 29. Page Object – Refactorización GridPage AddButton RemoveButton Checkbox CancelButton … AddItem() RemoveItem() Filter() AddInvalidItem() … GridPage AddItem AddButton RemoveButton Checkbox CancelButton … Perform() RemoveItem Perform() Filter Perform() AddInvalidItem Perform() Screen Tasks
  • 30. Agenda  Page Object  SOLID  Refactorización de Page Object  ScreenPlay Pattern  Demo
  • 31. ScreenPlay Pattern – Enfoque BDD Roles Goals Tasks Actions Caso de prueba Tipo de usuario Pasos del caso de prueba Click, Escribir
  • 32. ScreenPlay Pattern Enfoque BDD SOLID ScreenPlay
  • 33. ScreenPlay Pattern - Serenity BDD http://www.thucydides.info https://github.com/serenity-dojo/screenplay-exercises
  • 34. ScreenPlay Pattern – Diagrama de Clases TestCase Tasks Actions Screen Goals Tasks Actions Screen
  • 35. Agenda  Page Object  SOLID  Refactorización de Page Object  ScreenPlay Pattern  Demo
  • 36. ScreenPlay Pattern – Demo https://github.com/beloquintana/screenplay-pattern https://verstandqa.com/ejercicios/
  • 37. Page Object vs ScreenPlay Pattern Page Object ScreenPlay Simple Complejo Más propenso a malas prácticas de programación Basado en SOLID principles Con Ambos patrones podemos lograr automatizaciones mantenibles
  • 38. Automatización de Pruebas Exitosa Buenas prácticas de programaciónPatrones de diseño https://pixers.fr/papiers-peints/la-route-vers-le-succes-43419281
  • 40. Patrones de diseño en la automatización: ¿PageObject o ScreenPlay? Ing. Abel Quintana López @beloquintana belo.quintana@gmail.com