SlideShare una empresa de Scribd logo
1 de 40
Patrones de diseño en la automatización:
¿PageObject o ScreenPlay?
Ing. Abel Quintana López
@beloquintana
belo.quintana@gmail.com
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
Ejercicio práctico
Agenda
 Page Object
 SOLID
 Refactorización de Page Object
 ScreenPlay Pattern
Ejercicio práctico
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
Ejercicio práctico
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
Ejercicio práctico
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
Ejercicio práctico
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
hhttps://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
Ejercicio práctico
ScreenPlay Pattern – Ejercicio Práctico
https://github.com/beloquintana/screenplayexercises
http://verstandqa.com/ejercicios/
ScreenPlay Pattern – Ejercicio Práctico
Automatizar el siguiente caso de prueba:
 Adicionar Empleado
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

La actualidad más candente

SAP FICA Training
SAP FICA TrainingSAP FICA Training
SAP FICA Trainingtekslate1
 
SAP GRC AC 10.1 - ARM Workflows
SAP GRC AC 10.1 - ARM WorkflowsSAP GRC AC 10.1 - ARM Workflows
SAP GRC AC 10.1 - ARM WorkflowsRohan Andrews
 
Lecture-1: Introduction to system integration and architecture - course overv...
Lecture-1: Introduction to system integration and architecture - course overv...Lecture-1: Introduction to system integration and architecture - course overv...
Lecture-1: Introduction to system integration and architecture - course overv...Mubashir Ali
 
e-invoicing solution with SAP document compliance & CPI
e-invoicing solution with SAP document compliance & CPIe-invoicing solution with SAP document compliance & CPI
e-invoicing solution with SAP document compliance & CPIBalakumaran Balachandran
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)Arun Shukla
 
Grc 10 training
Grc 10 trainingGrc 10 training
Grc 10 trainingsuresh
 
Introduction to SAP Security
Introduction to SAP SecurityIntroduction to SAP Security
Introduction to SAP SecurityNasir Gondal
 
8 Most Effective Requirements Gathering Techniques.
8 Most Effective Requirements Gathering Techniques.8 Most Effective Requirements Gathering Techniques.
8 Most Effective Requirements Gathering Techniques.Xebrio
 
Fiori and S/4 authorizations: What are the biggest challenges, and where do t...
Fiori and S/4 authorizations: What are the biggest challenges, and where do t...Fiori and S/4 authorizations: What are the biggest challenges, and where do t...
Fiori and S/4 authorizations: What are the biggest challenges, and where do t...akquinet enterprise solutions GmbH
 
081712 isaca-atl-auditing sap-grc
081712 isaca-atl-auditing sap-grc081712 isaca-atl-auditing sap-grc
081712 isaca-atl-auditing sap-grchkodali
 
SAP - Public Sector - Overview
SAP - Public Sector - OverviewSAP - Public Sector - Overview
SAP - Public Sector - Overviewdansapinsiderep
 
SAP-System Application & Products
SAP-System Application & ProductsSAP-System Application & Products
SAP-System Application & ProductsMaheshkumar Darji
 
How to check port in sap
How to check port in sapHow to check port in sap
How to check port in sapnanda nanda
 
FSCM - Treasury - Bank Communication Management.pptx
FSCM - Treasury - Bank Communication Management.pptxFSCM - Treasury - Bank Communication Management.pptx
FSCM - Treasury - Bank Communication Management.pptxDhaval Gala
 

La actualidad más candente (20)

SAP FICA Training
SAP FICA TrainingSAP FICA Training
SAP FICA Training
 
SAP GRC AC 10.1 - ARM Workflows
SAP GRC AC 10.1 - ARM WorkflowsSAP GRC AC 10.1 - ARM Workflows
SAP GRC AC 10.1 - ARM Workflows
 
Lecture-1: Introduction to system integration and architecture - course overv...
Lecture-1: Introduction to system integration and architecture - course overv...Lecture-1: Introduction to system integration and architecture - course overv...
Lecture-1: Introduction to system integration and architecture - course overv...
 
SAP FICO
SAP FICOSAP FICO
SAP FICO
 
e-invoicing solution with SAP document compliance & CPI
e-invoicing solution with SAP document compliance & CPIe-invoicing solution with SAP document compliance & CPI
e-invoicing solution with SAP document compliance & CPI
 
Software requirements
Software requirementsSoftware requirements
Software requirements
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)
 
Grc 10 training
Grc 10 trainingGrc 10 training
Grc 10 training
 
Introduction to SAP Security
Introduction to SAP SecurityIntroduction to SAP Security
Introduction to SAP Security
 
8 Most Effective Requirements Gathering Techniques.
8 Most Effective Requirements Gathering Techniques.8 Most Effective Requirements Gathering Techniques.
8 Most Effective Requirements Gathering Techniques.
 
Fiori and S/4 authorizations: What are the biggest challenges, and where do t...
Fiori and S/4 authorizations: What are the biggest challenges, and where do t...Fiori and S/4 authorizations: What are the biggest challenges, and where do t...
Fiori and S/4 authorizations: What are the biggest challenges, and where do t...
 
081712 isaca-atl-auditing sap-grc
081712 isaca-atl-auditing sap-grc081712 isaca-atl-auditing sap-grc
081712 isaca-atl-auditing sap-grc
 
SAP - Public Sector - Overview
SAP - Public Sector - OverviewSAP - Public Sector - Overview
SAP - Public Sector - Overview
 
SAP-System Application & Products
SAP-System Application & ProductsSAP-System Application & Products
SAP-System Application & Products
 
SAP License Cost
SAP License CostSAP License Cost
SAP License Cost
 
SDLC
SDLCSDLC
SDLC
 
How to check port in sap
How to check port in sapHow to check port in sap
How to check port in sap
 
FSCM - Treasury - Bank Communication Management.pptx
FSCM - Treasury - Bank Communication Management.pptxFSCM - Treasury - Bank Communication Management.pptx
FSCM - Treasury - Bank Communication Management.pptx
 
Progressive web apps
Progressive web appsProgressive web apps
Progressive web apps
 
Asap roadmap
Asap roadmapAsap roadmap
Asap roadmap
 

Similar a Argentesting 2018 - Patrones de diseño en la automatización: ¿PageObject o ScreenPlay?

Patrones de diseño en la automatización, PageObject o ScreenPlay
Patrones de diseño en la automatización, PageObject o ScreenPlayPatrones de diseño en la automatización, PageObject o ScreenPlay
Patrones de diseño en la automatización, PageObject o ScreenPlayTestingCR
 
Presentación sobre Display Suite en el Drupal Day Valencia 2012
Presentación sobre Display Suite en el Drupal Day Valencia 2012Presentación sobre Display Suite en el Drupal Day Valencia 2012
Presentación sobre Display Suite en el Drupal Day Valencia 2012Atenea tech
 
Taller TestingUy 2019 - Patrones de diseño en la automatización: ¿PageObject ...
Taller TestingUy 2019 - Patrones de diseño en la automatización: ¿PageObject ...Taller TestingUy 2019 - Patrones de diseño en la automatización: ¿PageObject ...
Taller TestingUy 2019 - Patrones de diseño en la automatización: ¿PageObject ...TestingUy
 
El Mal Odiado Javascript
El Mal Odiado JavascriptEl Mal Odiado Javascript
El Mal Odiado JavascriptEl Jota
 
El Mal Odiado Javascript
El Mal Odiado JavascriptEl Mal Odiado Javascript
El Mal Odiado Javascriptguest030dc2
 
Introducción al desarrollo Web: Frontend con Angular 6
Introducción al desarrollo Web: Frontend con Angular 6Introducción al desarrollo Web: Frontend con Angular 6
Introducción al desarrollo Web: Frontend con Angular 6Gabriela Bosetti
 
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontendCombinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontendmenttes
 
Interfaces Usuario 3
Interfaces Usuario 3Interfaces Usuario 3
Interfaces Usuario 3Milaly
 
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
 
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
 
Primeros pasos con Backbone js, por Xavier Aznar
Primeros pasos con Backbone js, por Xavier AznarPrimeros pasos con Backbone js, por Xavier Aznar
Primeros pasos con Backbone js, por Xavier AznarPablo Aguilera
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a DjangoJulio Gálvez
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a DjangoJoaquim Rocha
 

Similar a Argentesting 2018 - Patrones de diseño en la automatización: ¿PageObject o ScreenPlay? (20)

Patrones de diseño en la automatización, PageObject o ScreenPlay
Patrones de diseño en la automatización, PageObject o ScreenPlayPatrones de diseño en la automatización, PageObject o ScreenPlay
Patrones de diseño en la automatización, PageObject o ScreenPlay
 
Presentación sobre Display Suite en el Drupal Day Valencia 2012
Presentación sobre Display Suite en el Drupal Day Valencia 2012Presentación sobre Display Suite en el Drupal Day Valencia 2012
Presentación sobre Display Suite en el Drupal Day Valencia 2012
 
Taller TestingUy 2019 - Patrones de diseño en la automatización: ¿PageObject ...
Taller TestingUy 2019 - Patrones de diseño en la automatización: ¿PageObject ...Taller TestingUy 2019 - Patrones de diseño en la automatización: ¿PageObject ...
Taller TestingUy 2019 - Patrones de diseño en la automatización: ¿PageObject ...
 
El Mal Odiado Javascript
El Mal Odiado JavascriptEl Mal Odiado Javascript
El Mal Odiado Javascript
 
El Mal Odiado Javascript
El Mal Odiado JavascriptEl Mal Odiado Javascript
El Mal Odiado Javascript
 
Introducción al desarrollo Web: Frontend con Angular 6
Introducción al desarrollo Web: Frontend con Angular 6Introducción al desarrollo Web: Frontend con Angular 6
Introducción al desarrollo Web: Frontend con Angular 6
 
Clase 12 jQuery basico
Clase 12  jQuery basicoClase 12  jQuery basico
Clase 12 jQuery basico
 
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontendCombinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
 
HTML5-Aplicaciones web
HTML5-Aplicaciones webHTML5-Aplicaciones web
HTML5-Aplicaciones web
 
Interfaces Usuario 3
Interfaces Usuario 3Interfaces Usuario 3
Interfaces Usuario 3
 
Primeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPrimeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigo
 
S5 android ui
S5 android uiS5 android ui
S5 android ui
 
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
 
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
 
Presentación Fitnesse
Presentación Fitnesse Presentación Fitnesse
Presentación Fitnesse
 
App Engine
App EngineApp Engine
App Engine
 
Primeros pasos con Backbone js, por Xavier Aznar
Primeros pasos con Backbone js, por Xavier AznarPrimeros pasos con Backbone js, por Xavier Aznar
Primeros pasos con Backbone js, por Xavier Aznar
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a Django
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a Django
 

Más de Argentesting

Análisis de Aplicaciones móviles - aspectos de seguridad
Análisis de Aplicaciones móviles - aspectos de seguridadAnálisis de Aplicaciones móviles - aspectos de seguridad
Análisis de Aplicaciones móviles - aspectos de seguridadArgentesting
 
Argentesting 2019 - Cambiando el paradigma de la automatización
Argentesting 2019 - Cambiando el paradigma de la automatizaciónArgentesting 2019 - Cambiando el paradigma de la automatización
Argentesting 2019 - Cambiando el paradigma de la automatizaciónArgentesting
 
Argentesting 2019 - Cómo convertirse en un tester ágil
Argentesting 2019 - Cómo convertirse en un tester ágilArgentesting 2019 - Cómo convertirse en un tester ágil
Argentesting 2019 - Cómo convertirse en un tester ágilArgentesting
 
Argentesting 2019 - Desentrañando selenium
Argentesting 2019 - Desentrañando seleniumArgentesting 2019 - Desentrañando selenium
Argentesting 2019 - Desentrañando seleniumArgentesting
 
Argentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOpsArgentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOpsArgentesting
 
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...Argentesting
 
Argentesting 2019 - Por que-python-esta-buenisimo
Argentesting 2019 - Por que-python-esta-buenisimoArgentesting 2019 - Por que-python-esta-buenisimo
Argentesting 2019 - Por que-python-esta-buenisimoArgentesting
 
Argentesting 2019 - Cypress una completa experiencia de testing end to end
Argentesting 2019 - Cypress una completa experiencia de testing end to endArgentesting 2019 - Cypress una completa experiencia de testing end to end
Argentesting 2019 - Cypress una completa experiencia de testing end to endArgentesting
 
Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...
Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...
Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...Argentesting
 
Argentesting 2019 - Testing exploratorio basado en sesiones
Argentesting 2019 - Testing exploratorio basado en sesionesArgentesting 2019 - Testing exploratorio basado en sesiones
Argentesting 2019 - Testing exploratorio basado en sesionesArgentesting
 
Argentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitoso
Argentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitosoArgentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitoso
Argentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitosoArgentesting
 
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...Argentesting
 
Argentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOpsArgentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOpsArgentesting
 
Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...
Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...
Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...Argentesting
 
Argentesting 2019 - Analizando la seguridad en aplicaciones móviles
Argentesting 2019 - Analizando la seguridad en aplicaciones móvilesArgentesting 2019 - Analizando la seguridad en aplicaciones móviles
Argentesting 2019 - Analizando la seguridad en aplicaciones móvilesArgentesting
 
Argentesting 2019 - Accesibilidad, donde las especialidades convergen
Argentesting 2019 - Accesibilidad, donde las especialidades convergenArgentesting 2019 - Accesibilidad, donde las especialidades convergen
Argentesting 2019 - Accesibilidad, donde las especialidades convergenArgentesting
 
Argentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientes
Argentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientesArgentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientes
Argentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientesArgentesting
 
Argentesting 2019 - Cómo la 4ta revolución industrial afectará al testing
Argentesting 2019 - Cómo la 4ta revolución industrial afectará al testingArgentesting 2019 - Cómo la 4ta revolución industrial afectará al testing
Argentesting 2019 - Cómo la 4ta revolución industrial afectará al testingArgentesting
 
Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...
Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...
Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...Argentesting
 
Argentesting 2019 - Lippia, un framework multipropósito
Argentesting 2019 - Lippia, un framework multipropósitoArgentesting 2019 - Lippia, un framework multipropósito
Argentesting 2019 - Lippia, un framework multipropósitoArgentesting
 

Más de Argentesting (20)

Análisis de Aplicaciones móviles - aspectos de seguridad
Análisis de Aplicaciones móviles - aspectos de seguridadAnálisis de Aplicaciones móviles - aspectos de seguridad
Análisis de Aplicaciones móviles - aspectos de seguridad
 
Argentesting 2019 - Cambiando el paradigma de la automatización
Argentesting 2019 - Cambiando el paradigma de la automatizaciónArgentesting 2019 - Cambiando el paradigma de la automatización
Argentesting 2019 - Cambiando el paradigma de la automatización
 
Argentesting 2019 - Cómo convertirse en un tester ágil
Argentesting 2019 - Cómo convertirse en un tester ágilArgentesting 2019 - Cómo convertirse en un tester ágil
Argentesting 2019 - Cómo convertirse en un tester ágil
 
Argentesting 2019 - Desentrañando selenium
Argentesting 2019 - Desentrañando seleniumArgentesting 2019 - Desentrañando selenium
Argentesting 2019 - Desentrañando selenium
 
Argentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOpsArgentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOps
 
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
 
Argentesting 2019 - Por que-python-esta-buenisimo
Argentesting 2019 - Por que-python-esta-buenisimoArgentesting 2019 - Por que-python-esta-buenisimo
Argentesting 2019 - Por que-python-esta-buenisimo
 
Argentesting 2019 - Cypress una completa experiencia de testing end to end
Argentesting 2019 - Cypress una completa experiencia de testing end to endArgentesting 2019 - Cypress una completa experiencia de testing end to end
Argentesting 2019 - Cypress una completa experiencia de testing end to end
 
Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...
Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...
Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...
 
Argentesting 2019 - Testing exploratorio basado en sesiones
Argentesting 2019 - Testing exploratorio basado en sesionesArgentesting 2019 - Testing exploratorio basado en sesiones
Argentesting 2019 - Testing exploratorio basado en sesiones
 
Argentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitoso
Argentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitosoArgentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitoso
Argentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitoso
 
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
 
Argentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOpsArgentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOps
 
Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...
Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...
Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...
 
Argentesting 2019 - Analizando la seguridad en aplicaciones móviles
Argentesting 2019 - Analizando la seguridad en aplicaciones móvilesArgentesting 2019 - Analizando la seguridad en aplicaciones móviles
Argentesting 2019 - Analizando la seguridad en aplicaciones móviles
 
Argentesting 2019 - Accesibilidad, donde las especialidades convergen
Argentesting 2019 - Accesibilidad, donde las especialidades convergenArgentesting 2019 - Accesibilidad, donde las especialidades convergen
Argentesting 2019 - Accesibilidad, donde las especialidades convergen
 
Argentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientes
Argentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientesArgentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientes
Argentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientes
 
Argentesting 2019 - Cómo la 4ta revolución industrial afectará al testing
Argentesting 2019 - Cómo la 4ta revolución industrial afectará al testingArgentesting 2019 - Cómo la 4ta revolución industrial afectará al testing
Argentesting 2019 - Cómo la 4ta revolución industrial afectará al testing
 
Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...
Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...
Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...
 
Argentesting 2019 - Lippia, un framework multipropósito
Argentesting 2019 - Lippia, un framework multipropósitoArgentesting 2019 - Lippia, un framework multipropósito
Argentesting 2019 - Lippia, un framework multipropósito
 

Último

Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 

Último (20)

Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 

Argentesting 2018 - 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. Patrones de diseño Automatización de pruebasFramework Automatización Patrones de Diseño
  • 3. Agenda  Page Object  SOLID  Refactorización de Page Object  ScreenPlay Pattern Ejercicio práctico
  • 4. Agenda  Page Object  SOLID  Refactorización de Page Object  ScreenPlay Pattern Ejercicio práctico
  • 5. Page Object  Representa componentes web  Evita duplicación de código  Automatizaciones mantenibles
  • 6. Page Object - Ejemplo
  • 7. Page Object - Beneficios PageObject Test1 Test2 Test3 Interfaz gráfica
  • 8. Page Object – Problema más común Clases grandes  Atributos Localizadores PageFactory  Métodos Interacción página web Algoritmos de validación
  • 9. Page Object – Clases grandes ¿Cuál es el problema con tener clases con muchas líneas de código?
  • 10.  Más líneas de código, Más complejo  Código repetido  Difícil de mantener Page Object – Clases grandes
  • 11. Agenda  Page Object  SOLID  Refactorización de Page Object  ScreenPlay Pattern Ejercicio práctico
  • 12. SOLID – Principios Single responsibility principle Open Closed principle Liskov substitution principle Interface segregation principle Dependency inversion principle
  • 13. SOLID – Principios  Buenas prácticas  Mas fácil de mantener y extender  Elimina malas prácticasRobert C. Martin
  • 14. SOLID – Principios Single responsibility principle Open Closed principle Liskov substitution principle Interface segregation principle Dependency inversion principle
  • 15. Single responsibility principle (SRP) A class should have only one reason to change. Robert C. Martin
  • 16. SRP – Page Object
  • 17. SRP – Page Object GridPage AddButton RemoveButton Checkbox CancelButton … AddItem() RemoveItem() Filter() AddInvalidItem() … Responsabilidades Localizar elementos web Realizar tareas
  • 18. Open Closed principle – (OCP)  Abierta por extensión  Cerrada por modificación Clase
  • 19. Open Closed principle – (OCP) GridPage AddButton RemoveButton Checkbox CancelButton … AddItem() RemoveItem() Filter() AddInvalidItem() … Editar Clase Adicionar Clase Adicionar nueva funcionalidad:
  • 20. Page Object – SOLID principios Single Responsibility principle Open Closed principle
  • 21. Principios SOLID de la programación orientada a objetos Page Object – Refactorización Refactorización SOLID Page Object Screen Play
  • 22. Agenda  Page Object  SOLID  Refactorización de Page Object  ScreenPlay Pattern Ejercicio práctico
  • 23. Page Object – Refactorización Antony Marcano http://antonymarcano.com/  Refactorización Page Object  Creador ScreenPlay Pattern
  • 24. Page Object – Refactorización - OCP GridPage AddButton RemoveButton Checkbox CancelButton … AddItem() RemoveItem() Filter() AddInvalidItem() … AddItem AddButton Add() AddInvalidItem() RemoveButton Remove() RemoveItem
  • 25. Page Object – Refactorización - SRP GridPage AddButton RemoveButton Checkbox CancelButton … AddItem() RemoveItem() Filter() AddInvalidItem() … GridPage GridTask AddButton RemoveButton Checkbox CancelButton … AddItem() RemoveItem() Filter() AddInvalidItem() …
  • 26. 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()
  • 27. …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
  • 28. 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
  • 29. Agenda  Page Object  SOLID  Refactorización de Page Object  ScreenPlay Pattern Ejercicio práctico
  • 30. ScreenPlay Pattern – Enfoque BDD Roles Goals Tasks Actions Caso de prueba Tipo de usuario Pasos del caso de prueba Click, Escribir
  • 31. ScreenPlay Pattern Enfoque BDD SOLID ScreenPlay
  • 32. ScreenPlay Pattern - Serenity BDD http://www.thucydides.info hhttps://github.com/serenity-dojo/screenplay-exercises
  • 33. ScreenPlay Pattern – Diagrama de Clases TestCase Tasks Actions Screen Goals Tasks Actions Screen
  • 34. Agenda  Page Object  SOLID  Refactorización de Page Object  ScreenPlay Pattern Ejercicio práctico
  • 35. ScreenPlay Pattern – Ejercicio Práctico https://github.com/beloquintana/screenplayexercises http://verstandqa.com/ejercicios/
  • 36. ScreenPlay Pattern – Ejercicio Práctico Automatizar el siguiente caso de prueba:  Adicionar Empleado
  • 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