SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
+
Técnicas de automatización
Going from GOOD to GREAT
Diego Tortoriello
Federico Regueira
Gonzalo Ciosek
+
Forma de trabajo en este workshop
+
Are you ready? – [5 min]
+
Setup – [10 min]
①  Conectar a la wi-fi “makeitworkshop”
n  Psw: MAKEITWORKSHOP
②  Copiar al equipo personal la carpeta “MIW-WORKSHOP”
n  IDEExport
n  PageObjects
n  SelenoScripts
③  Chequear que se pueda acceder a la aplicación de prueba:
n  http://192.168.0.161:57300
+
¿Por qué se automatizan las
pruebas?
n Acumular cobertura.
n Optimizar regresión.
n Para “apalancar” las pruebas
manuales (leverage).
n Para reducir el “time to
market” de los productos.
n Para reducir el costo de las
fallas detectándolas antes.
+
Grandes expectativas
“La automatización de pruebas es la solución”
+
Gran autoconfianza al comenzar
“Who’s awesome? We are!”
+
Cambios en el código
“¡Hay que cambiar todos los scripts!”
+
Sentimiento de frustración
“¡Esto es imposible de mantener!”
+
+
Selenium IDE
If you want to create quick bug reproduction scripts,
create scripts to aid in automation-aided exploratory
testing.
+
make it work!
Lab 1: Grabar script – [15 min]
①  URL: http://192.168.0.161:57300
②  Abrir FireFox, y el plugin Selenium IDE.
③  Grabar un script que ejecute las siguientes acciones.
n  Login (usuario:“Pedro” / pass:“contra”).
n  Condición de verificación:El nombre de usuario debe aparecer
debajo del logo.
n  Crear nuevo proyecto.
n  Condición de verificación: El proyecto se muestra en la lista de
proyectos.
④  Ejecutar script y observar comportamiento.
+
Conclusiones
n  Fácil de crear.
n  No requiere skills de programación.
n  Los scripts se generan rápidamente.
n  Es un primer comienzo que aporta
elementos nuevos en un proyecto.
n  Los datos de prueba quedan “en duro”.
n  Los elementos quedan localizados “en
duro”.
n  No es posible crear iteraciones.
n  Se ejecuta sólo desde FireFox.
+
Selenium 2.0
Selenium 1.0 +WebDriver = Selenium 2.0
If you want to:
§  create robust,browser-based regression
automation suites and tests
§  scale and distribute scripts across many
environments
+
make it work!
Lab 2: Exportar a Selenium Webdriver – [10 min]
①  Demo de exportación SeleniumIDE > Selenium 2.0.
②  Observar el código generado por la exportación.
n  Locators repetidos.
n  Test-data.
n  ¡Estamos en Java! >> iteraciones + datasource externo.
③  Abrir Eclipse.
④  Abriel el proyecto “IDEExport”.
+
make it work!
Lab 3: Iteraciones y data-source externo – [10 min]]
①  Observar el código del proyecto “IDEExport”.
n  Iteración.
n  Conexión a datasource externo.
+
Conclusiones
n  Es sencillo pasar del script grabado en Selenese a un script que pueda
ser potenciado en otro lenguaje (java).
n  Los “locators” de los elementos quedan repetidos en cada test.
n  El código queda poco legible y difícil de seguir. (Un script que en el IDE
tiene 5 líneas,con la exportación genera 95 líneas.)
n  Este es un script chico, y por lo tanto fácilmente mantenible.
n  Con el tiempo, las suites de pruebas crecen, y es necesario agregar
cada vez más líneas de código para mantener los scripts actualizados.
n  Con este apprach, si 10 scripts diferentes usan los mismos elementos de
una página (control“usuario” / control “password”), cualquier cambio a
un elemento deberá ser actualizado en los 10 scripts. Esto demanda
mucho tiempo y es una fuente potencial de errores.
+
Usando POM (Page Object Model)
n  Un approach más eficiente para el mantenimiento de los scripts es
separar las operaciones de localización (find) de las operaciones de
input de datos o verificación de los elementos.
n  De esta forma, si un elemento de la página cambia, el cambio sólo
debe hacerse en un archivo y no en 10 scripts difrentes.
n  A este approach se le llama Page Object Model(POM), y ayuda a
mantener el código más legible, más fácil de mantener y más
reutilizable.
+
+
make it work!
Lab 4:Trabajar con (Page Object Model) – [15 min]
①  Cargar el proyecto “PageObject”.
②  Observar la definición de clases.
n  Abrir la clase“PageLogin” del paquete “Pages”.
n  Abrir la clase “TestLogin” del paquete “Scripts”.
③  Escribir un test nuevo para el Login utlizando el template
“TestEmpty”.
④  Observar el código (itellisense, etc)
+
Conclusiones
n  El uso de POM hace más sencillo el mantenimiento.
n  El código es más legible.
n  La lógica de las pruebas queda separada de la estructura HTML de la
página.
n  El repositorio de objetos es independiente de los testcases, lo que nos
permite reutilizar el repositorio para diferentes propósitos. Por ejemplo: es
posible integrar los POMs con Junit para las pruebas funcionales y el mismo
repositorio utlizarlo para UAT con Cucumber.
n  El código queda más “corto” y optimizado, pues los POMs se reutilizan en
las demás clases.
n  Los métodos pueden tener nombres más adecuados a las acciones de las
páginas (acciones de negocio) y pueden ser mapeados fácilmente con la
operación descripta en la UX. Por ejemplo: luego de hacer click en un botón
que navega a la home page, el método puede llamarse 'gotoHomePage()'.
+
Seleno Automation Framework
Scripts simples de crear
+
¿Qué es Seleno?
n  Seleno is an open source project from TestStack which helps
you write automated UI tests with Selenium.
n  It focuses on the use of Page Objects and Page Components
and by reading from and writing to web pages using strongly
typed view models.
+
¿Cómo trabajar con Seleno?
MVC Apps (.Net) / Other apps
MVC Apps
El diseño del modelo de test se integra al modelo
de desarrollo.
Lee el modelo de desarrollo directamente, y a
partir de ahí mantiene los objetos dinámicamente
(refactor).
Necesita acceso al código fuente.
Other apps
Es necesario generar el mapping entre el modelo
de objetos desarrollo (páginas, clases) y los
objetos de Seleno.
No lee el código fuente, tabaja sobre la app
compilada .
+
make it work!
Lab 5: Observar Seleno en acción – [15 min]
①  Demo de implementación de Seleno con app no MVC.
n  Herencia de clases provistas por el fwk.
n  Properties y métodos.
n  Test script usando Seleno.
②  Demo de implementación de Seleno con app MVC.
n  Herencia de clases provistas por el fwk.
n  Properties y métodos.
n  Test script usando Seleno.
+
¿Cómo trabajar con Seleno?
n  Seleno desarrolla su máximo potencial cuando se utiliza
como framework de automatización para aplicaciones
desarrolladas con MVC(r) de Microsoft (r).
n  Seleno se integra al código fuente, y los objetos de prueba
se leen directamente desde la definición del modelo.
n  Al trabajar con un modelo fuertemente tipado, Seleno
permite manejar las páginas como objetos, definiendo
propiedades y métodos.
n  Es posible intanciar durante las pruebas una instancia
“populated” del modelo, e ingresar esa información en una
página web utilizando el método “Input()”.
MVC Apps (.Net)
+
Conclusiones
n  Permite incorporar elementos y lenguaje de negocio en los
tests.
n  El código es más legible.
n  Se hace más sencillo el mantenimiento de los scripts.
n  La lógica de las pruebas queda separada, pero integrada al
modelo de desarrollo (MVC).
n  Permite trabajar con modelos y patrones (patterns), lo cual
hace más sólido el diseño del modelo de pruebas.
+
Algunos resultados (3 proyectos)
n  A partir del segundo ciclo de automatización, el tiempo
promedio de las pruebas de humo de negocio se redujo a la
mitad.
n  Tiempo promedio de implementación del primer ciclo: entre
2 y 3 meses (análisis, implementación y ejecución).
Automated test
initial estimation
Maual test
initial estimation
Automated test
duration after
one cycle
+
¡Gracias!
n  DiegoT@makeitwotk.com.uy
n  FedericoR@makeitwork.com.uy
n  Gonzalo@makeitwork.com.uy

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?
 
PHP Unit y TDD
PHP Unit y TDDPHP Unit y TDD
PHP Unit y TDD
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
Presentación: xUnit y Junit
Presentación: xUnit y JunitPresentación: xUnit y Junit
Presentación: xUnit y Junit
 
TypeScript - Angular 2 - ionic 2
TypeScript - Angular 2 - ionic 2TypeScript - Angular 2 - ionic 2
TypeScript - Angular 2 - ionic 2
 
Servicios en Zend Framework 2
Servicios en  Zend Framework 2Servicios en  Zend Framework 2
Servicios en Zend Framework 2
 
Manual basico java
Manual basico javaManual basico java
Manual basico java
 
Java netbeans-clase-001
Java netbeans-clase-001Java netbeans-clase-001
Java netbeans-clase-001
 
Javascript + Angular Sesion 2
Javascript + Angular Sesion 2Javascript + Angular Sesion 2
Javascript + Angular Sesion 2
 
Integracion Continua
Integracion ContinuaIntegracion Continua
Integracion Continua
 
Integracion continua
Integracion continuaIntegracion continua
Integracion continua
 
El proceso de desarrollo con herramientas Open Source
El proceso de desarrollo con herramientas Open SourceEl proceso de desarrollo con herramientas Open Source
El proceso de desarrollo con herramientas Open Source
 
Maven
MavenMaven
Maven
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
Pucela testingdays testing_en_php
Pucela testingdays testing_en_phpPucela testingdays testing_en_php
Pucela testingdays testing_en_php
 
Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019
 
Tdd
TddTdd
Tdd
 
Introducción a los Frameworks PHP
Introducción a los Frameworks PHP  Introducción a los Frameworks PHP
Introducción a los Frameworks PHP
 
Jobsket Spring 2GX Madrid
Jobsket Spring 2GX MadridJobsket Spring 2GX Madrid
Jobsket Spring 2GX Madrid
 
Java poliglota
Java poliglotaJava poliglota
Java poliglota
 

Similar a Taller evento TestingUY 2015 - Técnicas de Automatización Going from GOOD to GREAT

003-Introduccion-Angular.pdf
003-Introduccion-Angular.pdf003-Introduccion-Angular.pdf
003-Introduccion-Angular.pdfDubiWeb.TK
 
Aprendiendo exelearning
Aprendiendo exelearningAprendiendo exelearning
Aprendiendo exelearningAxel Mérida
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJSRodrigo Pimentel
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...Miguel Ángel Sánchez Chordi
 
Symfony: construyendo aplicaciones web
Symfony: construyendo aplicaciones webSymfony: construyendo aplicaciones web
Symfony: construyendo aplicaciones websergiovier
 
Proyect Evenge. Event manager
Proyect Evenge. Event managerProyect Evenge. Event manager
Proyect Evenge. Event managerIvan Ortega
 
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHPIntroducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHPDaniel Primo
 
Testing & debugging lightning web components
Testing & debugging lightning web componentsTesting & debugging lightning web components
Testing & debugging lightning web componentsFederico Giust
 
Gestionar mis proyectos con ayuda de CodeIgniter
Gestionar mis proyectos con ayuda de CodeIgniterGestionar mis proyectos con ayuda de CodeIgniter
Gestionar mis proyectos con ayuda de CodeIgniterandrewzg
 
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
 

Similar a Taller evento TestingUY 2015 - Técnicas de Automatización Going from GOOD to GREAT (20)

Angular 6
Angular 6Angular 6
Angular 6
 
003-Introduccion-Angular.pdf
003-Introduccion-Angular.pdf003-Introduccion-Angular.pdf
003-Introduccion-Angular.pdf
 
Aprendiendo exelearning
Aprendiendo exelearningAprendiendo exelearning
Aprendiendo exelearning
 
Semana 2 Configuración entorno de desarrollo
Semana 2   Configuración entorno de desarrolloSemana 2   Configuración entorno de desarrollo
Semana 2 Configuración entorno de desarrollo
 
El coste de no usar integración continua
El coste de no usar integración continuaEl coste de no usar integración continua
El coste de no usar integración continua
 
Javascript + Angular Sesion 1
Javascript + Angular Sesion 1Javascript + Angular Sesion 1
Javascript + Angular Sesion 1
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJS
 
Testing Ruby on Rails (spanish)
Testing Ruby on Rails (spanish)Testing Ruby on Rails (spanish)
Testing Ruby on Rails (spanish)
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
 
Modulo 1
Modulo 1Modulo 1
Modulo 1
 
Dia2
Dia2Dia2
Dia2
 
Symfony: construyendo aplicaciones web
Symfony: construyendo aplicaciones webSymfony: construyendo aplicaciones web
Symfony: construyendo aplicaciones web
 
Proyect Evenge. Event manager
Proyect Evenge. Event managerProyect Evenge. Event manager
Proyect Evenge. Event manager
 
Met2 07 01-introduccion_poo
Met2 07 01-introduccion_pooMet2 07 01-introduccion_poo
Met2 07 01-introduccion_poo
 
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHPIntroducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHP
 
Testing & debugging lightning web components
Testing & debugging lightning web componentsTesting & debugging lightning web components
Testing & debugging lightning web components
 
Visual basic .NET
Visual basic .NETVisual basic .NET
Visual basic .NET
 
JAVA3.0
JAVA3.0JAVA3.0
JAVA3.0
 
Gestionar mis proyectos con ayuda de CodeIgniter
Gestionar mis proyectos con ayuda de CodeIgniterGestionar mis proyectos con ayuda de CodeIgniter
Gestionar mis proyectos con ayuda de CodeIgniter
 
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
 

Más de TestingUy

Webinar TestingUy - Cuando el testing no es opcional
Webinar TestingUy - Cuando el testing no es opcionalWebinar TestingUy - Cuando el testing no es opcional
Webinar TestingUy - Cuando el testing no es opcionalTestingUy
 
Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...
Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...
Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...TestingUy
 
Webinar TestingUy - Sesgos cognitivos en las pruebas. El lado más humano de...
Webinar TestingUy -   Sesgos cognitivos en las pruebas. El lado más humano de...Webinar TestingUy -   Sesgos cognitivos en las pruebas. El lado más humano de...
Webinar TestingUy - Sesgos cognitivos en las pruebas. El lado más humano de...TestingUy
 
Webinar TestingUy - Thinking outside the box: Cognitive bias and testing
Webinar TestingUy - Thinking outside the box: Cognitive bias and testingWebinar TestingUy - Thinking outside the box: Cognitive bias and testing
Webinar TestingUy - Thinking outside the box: Cognitive bias and testingTestingUy
 
TestingPy meetup - Invitación TestingUy 2020
TestingPy meetup - Invitación TestingUy 2020TestingPy meetup - Invitación TestingUy 2020
TestingPy meetup - Invitación TestingUy 2020TestingUy
 
Meetup TestingUy 2019 - Plataforma de integración y testing continuo
Meetup TestingUy 2019 - Plataforma de integración y testing continuoMeetup TestingUy 2019 - Plataforma de integración y testing continuo
Meetup TestingUy 2019 - Plataforma de integración y testing continuoTestingUy
 
Meetup TestingUy 2019 - May the automation be with you
Meetup TestingUy 2019 - May the automation be with youMeetup TestingUy 2019 - May the automation be with you
Meetup TestingUy 2019 - May the automation be with youTestingUy
 
Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...
Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...
Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...TestingUy
 
Meetup TestingUy 2019 - En clave de protocolo con apache JMeter
Meetup TestingUy 2019 - En clave de protocolo con apache JMeterMeetup TestingUy 2019 - En clave de protocolo con apache JMeter
Meetup TestingUy 2019 - En clave de protocolo con apache JMeterTestingUy
 
Meetup TestingUy 2019 - Si Tony Stark fuera Tester
Meetup TestingUy 2019 - Si Tony Stark fuera TesterMeetup TestingUy 2019 - Si Tony Stark fuera Tester
Meetup TestingUy 2019 - Si Tony Stark fuera TesterTestingUy
 
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?TestingUy
 
Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?
Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?
Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?TestingUy
 
Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?
Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?
Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?TestingUy
 
Charla TestingUy 2019 - Ready Tester One? Go!
Charla TestingUy 2019 - Ready Tester One? Go!Charla TestingUy 2019 - Ready Tester One? Go!
Charla TestingUy 2019 - Ready Tester One? Go!TestingUy
 
Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...
Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...
Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...TestingUy
 
Charla TestingUy 2019 - Contract Testing con Pact
Charla TestingUy 2019 - Contract Testing con PactCharla TestingUy 2019 - Contract Testing con Pact
Charla TestingUy 2019 - Contract Testing con PactTestingUy
 
Charla TestingUy 2019 - Testing de chatbots
Charla TestingUy 2019 - Testing de chatbotsCharla TestingUy 2019 - Testing de chatbots
Charla TestingUy 2019 - Testing de chatbotsTestingUy
 
Charla TestingUy 2019 - Cypress.io - Automatización al siguiente nivel
Charla TestingUy 2019 - Cypress.io - Automatización al siguiente nivelCharla TestingUy 2019 - Cypress.io - Automatización al siguiente nivel
Charla TestingUy 2019 - Cypress.io - Automatización al siguiente nivelTestingUy
 
Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...
Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...
Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...TestingUy
 
Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...
Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...
Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...TestingUy
 

Más de TestingUy (20)

Webinar TestingUy - Cuando el testing no es opcional
Webinar TestingUy - Cuando el testing no es opcionalWebinar TestingUy - Cuando el testing no es opcional
Webinar TestingUy - Cuando el testing no es opcional
 
Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...
Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...
Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...
 
Webinar TestingUy - Sesgos cognitivos en las pruebas. El lado más humano de...
Webinar TestingUy -   Sesgos cognitivos en las pruebas. El lado más humano de...Webinar TestingUy -   Sesgos cognitivos en las pruebas. El lado más humano de...
Webinar TestingUy - Sesgos cognitivos en las pruebas. El lado más humano de...
 
Webinar TestingUy - Thinking outside the box: Cognitive bias and testing
Webinar TestingUy - Thinking outside the box: Cognitive bias and testingWebinar TestingUy - Thinking outside the box: Cognitive bias and testing
Webinar TestingUy - Thinking outside the box: Cognitive bias and testing
 
TestingPy meetup - Invitación TestingUy 2020
TestingPy meetup - Invitación TestingUy 2020TestingPy meetup - Invitación TestingUy 2020
TestingPy meetup - Invitación TestingUy 2020
 
Meetup TestingUy 2019 - Plataforma de integración y testing continuo
Meetup TestingUy 2019 - Plataforma de integración y testing continuoMeetup TestingUy 2019 - Plataforma de integración y testing continuo
Meetup TestingUy 2019 - Plataforma de integración y testing continuo
 
Meetup TestingUy 2019 - May the automation be with you
Meetup TestingUy 2019 - May the automation be with youMeetup TestingUy 2019 - May the automation be with you
Meetup TestingUy 2019 - May the automation be with you
 
Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...
Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...
Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...
 
Meetup TestingUy 2019 - En clave de protocolo con apache JMeter
Meetup TestingUy 2019 - En clave de protocolo con apache JMeterMeetup TestingUy 2019 - En clave de protocolo con apache JMeter
Meetup TestingUy 2019 - En clave de protocolo con apache JMeter
 
Meetup TestingUy 2019 - Si Tony Stark fuera Tester
Meetup TestingUy 2019 - Si Tony Stark fuera TesterMeetup TestingUy 2019 - Si Tony Stark fuera Tester
Meetup TestingUy 2019 - Si Tony Stark fuera Tester
 
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
 
Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?
Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?
Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?
 
Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?
Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?
Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?
 
Charla TestingUy 2019 - Ready Tester One? Go!
Charla TestingUy 2019 - Ready Tester One? Go!Charla TestingUy 2019 - Ready Tester One? Go!
Charla TestingUy 2019 - Ready Tester One? Go!
 
Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...
Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...
Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...
 
Charla TestingUy 2019 - Contract Testing con Pact
Charla TestingUy 2019 - Contract Testing con PactCharla TestingUy 2019 - Contract Testing con Pact
Charla TestingUy 2019 - Contract Testing con Pact
 
Charla TestingUy 2019 - Testing de chatbots
Charla TestingUy 2019 - Testing de chatbotsCharla TestingUy 2019 - Testing de chatbots
Charla TestingUy 2019 - Testing de chatbots
 
Charla TestingUy 2019 - Cypress.io - Automatización al siguiente nivel
Charla TestingUy 2019 - Cypress.io - Automatización al siguiente nivelCharla TestingUy 2019 - Cypress.io - Automatización al siguiente nivel
Charla TestingUy 2019 - Cypress.io - Automatización al siguiente nivel
 
Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...
Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...
Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...
 
Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...
Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...
Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...
 

Último

ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
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
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 

Último (20)

ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
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
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 

Taller evento TestingUY 2015 - Técnicas de Automatización Going from GOOD to GREAT

  • 1. + Técnicas de automatización Going from GOOD to GREAT Diego Tortoriello Federico Regueira Gonzalo Ciosek
  • 2. + Forma de trabajo en este workshop
  • 3. + Are you ready? – [5 min]
  • 4. + Setup – [10 min] ①  Conectar a la wi-fi “makeitworkshop” n  Psw: MAKEITWORKSHOP ②  Copiar al equipo personal la carpeta “MIW-WORKSHOP” n  IDEExport n  PageObjects n  SelenoScripts ③  Chequear que se pueda acceder a la aplicación de prueba: n  http://192.168.0.161:57300
  • 5. + ¿Por qué se automatizan las pruebas? n Acumular cobertura. n Optimizar regresión. n Para “apalancar” las pruebas manuales (leverage). n Para reducir el “time to market” de los productos. n Para reducir el costo de las fallas detectándolas antes.
  • 6. + Grandes expectativas “La automatización de pruebas es la solución”
  • 7. + Gran autoconfianza al comenzar “Who’s awesome? We are!”
  • 8. + Cambios en el código “¡Hay que cambiar todos los scripts!”
  • 9. + Sentimiento de frustración “¡Esto es imposible de mantener!”
  • 10. +
  • 11. + Selenium IDE If you want to create quick bug reproduction scripts, create scripts to aid in automation-aided exploratory testing.
  • 12. + make it work! Lab 1: Grabar script – [15 min] ①  URL: http://192.168.0.161:57300 ②  Abrir FireFox, y el plugin Selenium IDE. ③  Grabar un script que ejecute las siguientes acciones. n  Login (usuario:“Pedro” / pass:“contra”). n  Condición de verificación:El nombre de usuario debe aparecer debajo del logo. n  Crear nuevo proyecto. n  Condición de verificación: El proyecto se muestra en la lista de proyectos. ④  Ejecutar script y observar comportamiento.
  • 13. + Conclusiones n  Fácil de crear. n  No requiere skills de programación. n  Los scripts se generan rápidamente. n  Es un primer comienzo que aporta elementos nuevos en un proyecto. n  Los datos de prueba quedan “en duro”. n  Los elementos quedan localizados “en duro”. n  No es posible crear iteraciones. n  Se ejecuta sólo desde FireFox.
  • 14. + Selenium 2.0 Selenium 1.0 +WebDriver = Selenium 2.0 If you want to: §  create robust,browser-based regression automation suites and tests §  scale and distribute scripts across many environments
  • 15. + make it work! Lab 2: Exportar a Selenium Webdriver – [10 min] ①  Demo de exportación SeleniumIDE > Selenium 2.0. ②  Observar el código generado por la exportación. n  Locators repetidos. n  Test-data. n  ¡Estamos en Java! >> iteraciones + datasource externo. ③  Abrir Eclipse. ④  Abriel el proyecto “IDEExport”.
  • 16.
  • 17. + make it work! Lab 3: Iteraciones y data-source externo – [10 min]] ①  Observar el código del proyecto “IDEExport”. n  Iteración. n  Conexión a datasource externo.
  • 18.
  • 19. + Conclusiones n  Es sencillo pasar del script grabado en Selenese a un script que pueda ser potenciado en otro lenguaje (java). n  Los “locators” de los elementos quedan repetidos en cada test. n  El código queda poco legible y difícil de seguir. (Un script que en el IDE tiene 5 líneas,con la exportación genera 95 líneas.) n  Este es un script chico, y por lo tanto fácilmente mantenible. n  Con el tiempo, las suites de pruebas crecen, y es necesario agregar cada vez más líneas de código para mantener los scripts actualizados. n  Con este apprach, si 10 scripts diferentes usan los mismos elementos de una página (control“usuario” / control “password”), cualquier cambio a un elemento deberá ser actualizado en los 10 scripts. Esto demanda mucho tiempo y es una fuente potencial de errores.
  • 20. + Usando POM (Page Object Model) n  Un approach más eficiente para el mantenimiento de los scripts es separar las operaciones de localización (find) de las operaciones de input de datos o verificación de los elementos. n  De esta forma, si un elemento de la página cambia, el cambio sólo debe hacerse en un archivo y no en 10 scripts difrentes. n  A este approach se le llama Page Object Model(POM), y ayuda a mantener el código más legible, más fácil de mantener y más reutilizable.
  • 21. +
  • 22. + make it work! Lab 4:Trabajar con (Page Object Model) – [15 min] ①  Cargar el proyecto “PageObject”. ②  Observar la definición de clases. n  Abrir la clase“PageLogin” del paquete “Pages”. n  Abrir la clase “TestLogin” del paquete “Scripts”. ③  Escribir un test nuevo para el Login utlizando el template “TestEmpty”. ④  Observar el código (itellisense, etc)
  • 23. + Conclusiones n  El uso de POM hace más sencillo el mantenimiento. n  El código es más legible. n  La lógica de las pruebas queda separada de la estructura HTML de la página. n  El repositorio de objetos es independiente de los testcases, lo que nos permite reutilizar el repositorio para diferentes propósitos. Por ejemplo: es posible integrar los POMs con Junit para las pruebas funcionales y el mismo repositorio utlizarlo para UAT con Cucumber. n  El código queda más “corto” y optimizado, pues los POMs se reutilizan en las demás clases. n  Los métodos pueden tener nombres más adecuados a las acciones de las páginas (acciones de negocio) y pueden ser mapeados fácilmente con la operación descripta en la UX. Por ejemplo: luego de hacer click en un botón que navega a la home page, el método puede llamarse 'gotoHomePage()'.
  • 25. + ¿Qué es Seleno? n  Seleno is an open source project from TestStack which helps you write automated UI tests with Selenium. n  It focuses on the use of Page Objects and Page Components and by reading from and writing to web pages using strongly typed view models.
  • 26. + ¿Cómo trabajar con Seleno? MVC Apps (.Net) / Other apps MVC Apps El diseño del modelo de test se integra al modelo de desarrollo. Lee el modelo de desarrollo directamente, y a partir de ahí mantiene los objetos dinámicamente (refactor). Necesita acceso al código fuente. Other apps Es necesario generar el mapping entre el modelo de objetos desarrollo (páginas, clases) y los objetos de Seleno. No lee el código fuente, tabaja sobre la app compilada .
  • 27. + make it work! Lab 5: Observar Seleno en acción – [15 min] ①  Demo de implementación de Seleno con app no MVC. n  Herencia de clases provistas por el fwk. n  Properties y métodos. n  Test script usando Seleno. ②  Demo de implementación de Seleno con app MVC. n  Herencia de clases provistas por el fwk. n  Properties y métodos. n  Test script usando Seleno.
  • 28. + ¿Cómo trabajar con Seleno? n  Seleno desarrolla su máximo potencial cuando se utiliza como framework de automatización para aplicaciones desarrolladas con MVC(r) de Microsoft (r). n  Seleno se integra al código fuente, y los objetos de prueba se leen directamente desde la definición del modelo. n  Al trabajar con un modelo fuertemente tipado, Seleno permite manejar las páginas como objetos, definiendo propiedades y métodos. n  Es posible intanciar durante las pruebas una instancia “populated” del modelo, e ingresar esa información en una página web utilizando el método “Input()”. MVC Apps (.Net)
  • 29. + Conclusiones n  Permite incorporar elementos y lenguaje de negocio en los tests. n  El código es más legible. n  Se hace más sencillo el mantenimiento de los scripts. n  La lógica de las pruebas queda separada, pero integrada al modelo de desarrollo (MVC). n  Permite trabajar con modelos y patrones (patterns), lo cual hace más sólido el diseño del modelo de pruebas.
  • 30. + Algunos resultados (3 proyectos) n  A partir del segundo ciclo de automatización, el tiempo promedio de las pruebas de humo de negocio se redujo a la mitad. n  Tiempo promedio de implementación del primer ciclo: entre 2 y 3 meses (análisis, implementación y ejecución). Automated test initial estimation Maual test initial estimation Automated test duration after one cycle