SlideShare una empresa de Scribd logo
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

Hibernate Presentation
Hibernate  PresentationHibernate  Presentation
Hibernate Presentation
guest11106b
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
Archana Krushnan
 
Introduction to kotlin
Introduction to kotlinIntroduction to kotlin
Introduction to kotlin
NAVER Engineering
 
Kotlin for Android Development
Kotlin for Android DevelopmentKotlin for Android Development
Kotlin for Android Development
Speck&Tech
 
Java Tutorial | Java Programming Tutorial | Java Basics | Java Training | Edu...
Java Tutorial | Java Programming Tutorial | Java Basics | Java Training | Edu...Java Tutorial | Java Programming Tutorial | Java Basics | Java Training | Edu...
Java Tutorial | Java Programming Tutorial | Java Basics | Java Training | Edu...
Edureka!
 
File handling
File handlingFile handling
File handling
priya_trehan
 
Genesis and Overview of Java
Genesis and Overview of Java Genesis and Overview of Java
Genesis and Overview of Java
Ravi_Kant_Sahu
 
Spring Core
Spring CoreSpring Core
Spring Core
Pushan Bhattacharya
 
Android ui layout
Android ui layoutAndroid ui layout
Android ui layout
Krazy Koder
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework Designs
Sauce Labs
 
Android Jetpack
Android Jetpack Android Jetpack
Android Jetpack
Tudor Sirbu
 
Spring Framework - AOP
Spring Framework - AOPSpring Framework - AOP
Spring Framework - AOP
Dzmitry Naskou
 
Introduction to Spring Boot
Introduction to Spring BootIntroduction to Spring Boot
Introduction to Spring Boot
Purbarun Chakrabarti
 
Jetpack Compose - Android’s modern toolkit for building native UI
Jetpack Compose - Android’s modern toolkit for building native UIJetpack Compose - Android’s modern toolkit for building native UI
Jetpack Compose - Android’s modern toolkit for building native UI
Gilang Ramadhan
 
oops concept in java | object oriented programming in java
oops concept in java | object oriented programming in javaoops concept in java | object oriented programming in java
oops concept in java | object oriented programming in java
CPD INDIA
 
Learn Java with Dr. Rifat Shahriyar
Learn Java with Dr. Rifat ShahriyarLearn Java with Dr. Rifat Shahriyar
Learn Java with Dr. Rifat Shahriyar
Abir Mohammad
 
Selenium WebDriver with C#
Selenium WebDriver with C#Selenium WebDriver with C#
Selenium WebDriver with C#
srivinayak
 
The Art of Metaprogramming in Java
The Art of Metaprogramming in Java  The Art of Metaprogramming in Java
The Art of Metaprogramming in Java
Abdelmonaim Remani
 
Threads concept in java
Threads concept in javaThreads concept in java
Threads concept in java
Muthukumaran Subramanian
 
Introduction to Android Window System
Introduction to Android Window SystemIntroduction to Android Window System
Introduction to Android Window System
National Cheng Kung University
 

La actualidad más candente (20)

Hibernate Presentation
Hibernate  PresentationHibernate  Presentation
Hibernate Presentation
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
 
Introduction to kotlin
Introduction to kotlinIntroduction to kotlin
Introduction to kotlin
 
Kotlin for Android Development
Kotlin for Android DevelopmentKotlin for Android Development
Kotlin for Android Development
 
Java Tutorial | Java Programming Tutorial | Java Basics | Java Training | Edu...
Java Tutorial | Java Programming Tutorial | Java Basics | Java Training | Edu...Java Tutorial | Java Programming Tutorial | Java Basics | Java Training | Edu...
Java Tutorial | Java Programming Tutorial | Java Basics | Java Training | Edu...
 
File handling
File handlingFile handling
File handling
 
Genesis and Overview of Java
Genesis and Overview of Java Genesis and Overview of Java
Genesis and Overview of Java
 
Spring Core
Spring CoreSpring Core
Spring Core
 
Android ui layout
Android ui layoutAndroid ui layout
Android ui layout
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework Designs
 
Android Jetpack
Android Jetpack Android Jetpack
Android Jetpack
 
Spring Framework - AOP
Spring Framework - AOPSpring Framework - AOP
Spring Framework - AOP
 
Introduction to Spring Boot
Introduction to Spring BootIntroduction to Spring Boot
Introduction to Spring Boot
 
Jetpack Compose - Android’s modern toolkit for building native UI
Jetpack Compose - Android’s modern toolkit for building native UIJetpack Compose - Android’s modern toolkit for building native UI
Jetpack Compose - Android’s modern toolkit for building native UI
 
oops concept in java | object oriented programming in java
oops concept in java | object oriented programming in javaoops concept in java | object oriented programming in java
oops concept in java | object oriented programming in java
 
Learn Java with Dr. Rifat Shahriyar
Learn Java with Dr. Rifat ShahriyarLearn Java with Dr. Rifat Shahriyar
Learn Java with Dr. Rifat Shahriyar
 
Selenium WebDriver with C#
Selenium WebDriver with C#Selenium WebDriver with C#
Selenium WebDriver with C#
 
The Art of Metaprogramming in Java
The Art of Metaprogramming in Java  The Art of Metaprogramming in Java
The Art of Metaprogramming in Java
 
Threads concept in java
Threads concept in javaThreads concept in java
Threads concept in java
 
Introduction to Android Window System
Introduction to Android Window SystemIntroduction to Android Window System
Introduction to Android Window System
 

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 ScreenPlay
TestingCR
 
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
Atenea 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 Javascript
El Jota
 
El Mal Odiado Javascript
El Mal Odiado JavascriptEl Mal Odiado Javascript
El Mal Odiado Javascript
guest030dc2
 
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
Gabriela Bosetti
 
Clase 12 jQuery basico
Clase 12  jQuery basicoClase 12  jQuery basico
Clase 12 jQuery basico
José Ricardo Tillero Giménez
 
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
menttes
 
HTML5-Aplicaciones web
HTML5-Aplicaciones webHTML5-Aplicaciones web
HTML5-Aplicaciones web
CARLOS III UNIVERSITY OF MADRID
 
Interfaces Usuario 3
Interfaces Usuario 3Interfaces Usuario 3
Interfaces Usuario 3
Milaly
 
Primeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPrimeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigo
PHP Vigo
 
S5 android ui
S5 android uiS5 android ui
S5 android ui
Jaime Guerrero
 
4. Agregar Codigo A Los Formularios Web Form
4.  Agregar Codigo A Los Formularios Web Form4.  Agregar Codigo A Los Formularios Web Form
4. Agregar Codigo A Los Formularios Web Form
guest3cf6ff
 
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
Alberto Diaz Martin
 
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
Alberto Diaz Martin
 
Presentación Fitnesse
Presentación Fitnesse Presentación Fitnesse
Presentación Fitnesse
Alejandro Araújo
 
App Engine
App EngineApp Engine
App Engine
Leonardo Soto
 
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
Pablo Aguilera
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a Django
Julio Gálvez
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a Django
Joaquim 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
 
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
 
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
 
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 seguridad
Argentesting
 
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
 
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
 
Argentesting 2019 - Desentrañando selenium
Argentesting 2019 - Desentrañando seleniumArgentesting 2019 - Desentrañando selenium
Argentesting 2019 - Desentrañando selenium
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 DevOps
Argentesting
 
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-buenisimo
Argentesting
 
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
 
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 sesiones
Argentesting
 
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
 
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 DevOps
Argentesting
 
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óviles
Argentesting
 
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
 
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
 
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
 
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ósito
Argentesting
 

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

Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
cbtechchihuahua
 
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdfProjecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Festibity
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
larapalaciosmonzon28
 
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
MiguelAtencio10
 
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIAMONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
leia ereni
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
AMADO SALVADOR
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
larapalaciosmonzon28
 
mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
MiguelAtencio10
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
AbrahamCastillo42
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
cecypozos703
 
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
giampierdiaz5
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
mantenimientocarbra6
 
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
codesiret
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Festibity
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
doctorsoluciones34
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Festibity
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Festibity
 
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDADEXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
AngelCristhianMB
 
625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf
yuberpalma
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
AMADO SALVADOR
 

Último (20)

Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
 
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdfProjecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
 
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
 
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIAMONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
 
mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
 
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
 
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
 
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDADEXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
 
625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
 

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