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

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

clasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesclasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesMIGUELANGEL2658
 
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.pdfdanielJAlejosC
 
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.docxMarcelaArancibiaRojo
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrialGibranDiaz7
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
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 RAMIREZgustavoiashalom
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdfvictoralejandroayala2
 
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ónXimenaFallaLecca1
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesElianaCceresTorrico
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfs7yl3dr4g0n01
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
Mapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMONICADELROCIOMUNZON1
 
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxCARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxvalenciaespinozadavi1
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
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.pptxCarlosGabriel96
 
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOCAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOLUISDAVIDVIZARRETARA
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdfCristhianZetaNima
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
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.pptCRISTOFERSERGIOCANAL
 

Kürzlich hochgeladen (20)

clasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesclasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias locales
 
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
 
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
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrial
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
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
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.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
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
Mapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptx
 
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxCARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
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
 
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOCAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
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
 

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