SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Ähnlich wie Diseño automatización PageObject vs ScreenPlay

El Mal Odiado Javascript
El Mal Odiado JavascriptEl Mal Odiado Javascript
El Mal Odiado JavascriptEl Jota
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a DjangoJulio Gálvez
 
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 2014Adrian Diaz Cervera
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a DjangoJoaquim Rocha
 
Primeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPrimeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPHP Vigo
 
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 Formguest3cf6ff
 
Patrones de diseño.pptx
Patrones de diseño.pptxPatrones de diseño.pptx
Patrones de diseño.pptxgigoallspam1
 
slides curso intermedio angular
slides curso intermedio angularslides curso intermedio angular
slides curso intermedio angularssuserdd7854
 
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 1700Luis Fernando Aguas Bucheli
 
Arquitecturas Adaptativas de Componentes Web
Arquitecturas Adaptativas de Componentes WebArquitecturas Adaptativas de Componentes Web
Arquitecturas Adaptativas de Componentes WebJavier Vélez Reyes
 
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.netAlberto Diaz Martin
 
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.NETAlberto Diaz Martin
 
Esencia de web components
Esencia de web componentsEsencia de web components
Esencia de web componentsPedro J. Molina
 

Ähnlich wie Diseño automatización PageObject vs 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
 

Mehr von TestingCR

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 LeyvaTestingCR
 
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 CavalleriTestingCR
 
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?TestingCR
 
Mobile Automation Basic Concepts / Demo
Mobile Automation Basic Concepts / DemoMobile Automation Basic Concepts / Demo
Mobile Automation Basic Concepts / DemoTestingCR
 
UX/UI: QA Approved
UX/UI: QA ApprovedUX/UI: QA Approved
UX/UI: QA ApprovedTestingCR
 
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...TestingCR
 
Pruebas De Seguridad Aplicadas a QA
Pruebas De Seguridad Aplicadas a QAPruebas De Seguridad Aplicadas a QA
Pruebas De Seguridad Aplicadas a QATestingCR
 
Choosing the correct test case manager
Choosing the correct test case managerChoosing the correct test case manager
Choosing the correct test case managerTestingCR
 
Improving Automated Tests with Fluent Assertions
Improving Automated Tests with Fluent Assertions Improving Automated Tests with Fluent Assertions
Improving Automated Tests with Fluent Assertions TestingCR
 
Generic Test Automation Architecture
Generic Test Automation ArchitectureGeneric Test Automation Architecture
Generic Test Automation ArchitectureTestingCR
 
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 JmeterTestingCR
 
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 pruebasTestingCR
 
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 BadellTestingCR
 
Estado del testing 2019
Estado del testing 2019  Estado del testing 2019
Estado del testing 2019 TestingCR
 
Automation Image Comparison Testing
Automation Image Comparison TestingAutomation Image Comparison Testing
Automation Image Comparison TestingTestingCR
 

Mehr von 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
 

Kürzlich hochgeladen

Tarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaTarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaSebastianQP1
 
JimyPomalaza vivienda rural huancavelica .pdf
JimyPomalaza vivienda rural huancavelica .pdfJimyPomalaza vivienda rural huancavelica .pdf
JimyPomalaza vivienda rural huancavelica .pdfJimyPomalaza
 
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptxluiscisnerosayala23
 
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdfPRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdfAuraGabriela2
 
LICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptx
LICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptxLICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptx
LICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptxLucindaMy
 
Informe Mensual MARZO DE SUPERVISION.docx
Informe Mensual MARZO DE SUPERVISION.docxInforme Mensual MARZO DE SUPERVISION.docx
Informe Mensual MARZO DE SUPERVISION.docxTAKESHISAC
 
CFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCarlos Delgado
 
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticas
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticasEJERCICIOS DE -LEY-DE-OHM aplicaciones prácticas
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticasEfrain Yungan
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdffredyflores58
 
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdf
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdfPPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdf
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdfDarwinJPaulino
 
Diseño de un aerogenerador de 400w de eje vertical
Diseño de un aerogenerador de 400w de eje verticalDiseño de un aerogenerador de 400w de eje vertical
Diseño de un aerogenerador de 400w de eje verticalEfrain Yungan
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidasNelsonQuispeQuispitu
 
Estabilización de suelos (Física, Química y Mecánica)
Estabilización de suelos (Física, Química y Mecánica)Estabilización de suelos (Física, Química y Mecánica)
Estabilización de suelos (Física, Química y Mecánica)CristianSalas68
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptxNayeliZarzosa1
 
Sistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesSistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesjohannyrmnatejeda
 
La Evolución Industrial en el Ecuador.pdf
La Evolución Industrial en el Ecuador.pdfLa Evolución Industrial en el Ecuador.pdf
La Evolución Industrial en el Ecuador.pdfAnthony Gualpa
 
LIQUIDACION OBRAS PUBLICAS POR CONTRATA.pdf
LIQUIDACION OBRAS PUBLICAS  POR CONTRATA.pdfLIQUIDACION OBRAS PUBLICAS  POR CONTRATA.pdf
LIQUIDACION OBRAS PUBLICAS POR CONTRATA.pdfManuelVillarreal44
 
Mano de obra.pdf Curso Costos SENA Colombia
Mano de obra.pdf Curso Costos SENA ColombiaMano de obra.pdf Curso Costos SENA Colombia
Mano de obra.pdf Curso Costos SENA ColombiaCulturaGeneral1
 
4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptxEfrain Yungan
 

Kürzlich hochgeladen (20)

Tarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaTarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieria
 
JimyPomalaza vivienda rural huancavelica .pdf
JimyPomalaza vivienda rural huancavelica .pdfJimyPomalaza vivienda rural huancavelica .pdf
JimyPomalaza vivienda rural huancavelica .pdf
 
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
 
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdfPRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
 
LICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptx
LICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptxLICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptx
LICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptx
 
Informe Mensual MARZO DE SUPERVISION.docx
Informe Mensual MARZO DE SUPERVISION.docxInforme Mensual MARZO DE SUPERVISION.docx
Informe Mensual MARZO DE SUPERVISION.docx
 
CFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric Project
 
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticas
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticasEJERCICIOS DE -LEY-DE-OHM aplicaciones prácticas
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticas
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
 
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdf
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdfPPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdf
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdf
 
Diseño de un aerogenerador de 400w de eje vertical
Diseño de un aerogenerador de 400w de eje verticalDiseño de un aerogenerador de 400w de eje vertical
Diseño de un aerogenerador de 400w de eje vertical
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidas
 
Estabilización de suelos (Física, Química y Mecánica)
Estabilización de suelos (Física, Química y Mecánica)Estabilización de suelos (Física, Química y Mecánica)
Estabilización de suelos (Física, Química y Mecánica)
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
 
Sistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesSistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajes
 
La Evolución Industrial en el Ecuador.pdf
La Evolución Industrial en el Ecuador.pdfLa Evolución Industrial en el Ecuador.pdf
La Evolución Industrial en el Ecuador.pdf
 
LIQUIDACION OBRAS PUBLICAS POR CONTRATA.pdf
LIQUIDACION OBRAS PUBLICAS  POR CONTRATA.pdfLIQUIDACION OBRAS PUBLICAS  POR CONTRATA.pdf
LIQUIDACION OBRAS PUBLICAS POR CONTRATA.pdf
 
Mano de obra.pdf Curso Costos SENA Colombia
Mano de obra.pdf Curso Costos SENA ColombiaMano de obra.pdf Curso Costos SENA Colombia
Mano de obra.pdf Curso Costos SENA Colombia
 
4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx
 

Diseño automatización PageObject vs 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