Automatización pruebas web
Escuela Politécnica de Ingeniería Gijón - Diciembre 2015
Francisco Moreno (@morvader)
Responsable QA en Atiun Comunicaciones
franciscomoreno@gmail.com
Francisco Moreno (@morvader)
Responsable QA en Atiun Comunicaciones
franciscomoreno@gmail.com
He visto cosas
que no creeríais
#Intro
¿Por qué son necesarias las pruebas?
¿Por qué son necesarias las pruebas?
Las personas cometen errores
¿Por qué son necesarias las pruebas?
Las personas cometen errores
Verificar cumplimiento expectativas
¿Por qué son necesarias las pruebas?
Las personas cometen errores
Verificar cumplimiento expectativas
Sin fallos ≠Funcional
¿Por qué son necesarias las pruebas?
Las personas cometen errores
Verificar cumplimiento expectativas
Sin fallos ≠Funcional
Sin miedo a cambios
¿Por qué son necesarias las pruebas?
Las personas cometen errores
Verificar cumplimiento expectativas
Sin fallos ≠Funcional
Feedback temprano interno = avance rápido
Sin miedo a cambios
¿Por qué son necesarias las pruebas?
Las personas cometen errores
Verificar cumplimiento expectativas
Sin fallos ≠Funcional
Feedback temprano interno = avance rápido
Sin miedo a cambios
Rápidos y robustos
¿Por qué son necesarias las pruebas?
Las personas cometen errores
Verificar cumplimiento expectativas
Sin fallos ≠Funcional
Feedback temprano interno = avance rápido
Sin miedo a cambios
Rápidos y robustos
¿Por qué son necesarias las pruebas?
Las personas cometen errores
Verificar cumplimiento expectativas
Sin fallos ≠Funcional
Feedback temprano interno = avance rápido
Sin miedo a cambios
Rápidos y robustos Clientes satisfechos
¿Por qué son necesarias las pruebas?
Las personas cometen errores
Verificar cumplimiento expectativas
Sin fallos ≠Funcional
Feedback temprano interno = avance rápido
Sin miedo a cambios
Rápidos y robustos Clientes satisfechos
¿Por qué son necesarias las pruebas?
Las personas cometen errores
Verificar cumplimiento expectativas
Sin fallos ≠Funcional
Feedback temprano interno = avance rápido
Sin miedo a cambios
Rápidos y robustos Clientes satisfechos
¿Por qué son necesarias las pruebas?
Las personas cometen errores
Verificar cumplimiento expectativas
Sin fallos ≠Funcional
Feedback temprano interno = avance rápido
Sin miedo a cambios
Rápidos y robustos Clientes satisfechos
¿Por qué son necesarias las pruebas?
Las personas cometen errores
Verificar cumplimiento expectativas
Sin fallos ≠Funcional
Feedback temprano interno = avance rápido
Sin miedo a cambios
Rápidos y robustos Clientes satisfechos
¿Por qué son necesarias las pruebas?
Las personas cometen errores
Verificar cumplimiento expectativas
Sin fallos ≠Funcional
Feedback temprano interno = avance rápido
Sin miedo a cambios
Rápidos y robustos Clientes satisfechos
#EstaPasando
#TrueStory
En alguna empresa del mundo...
¡¡NUEVO PROYECTO!!
En alguna empresa del mundo...
Esta vez queremos hacer las cosas bien de verdad
¡¡NUEVO PROYECTO!!
En alguna empresa del mundo...
Esta vez queremos hacer las cosas bien de verdad
¡¡NUEVO PROYECTO!!
En alguna empresa del mundo...
Esta vez queremos hacer las cosas bien de verdad
· Vamos a usar la última tecnología
¡¡NUEVO PROYECTO!!
En alguna empresa del mundo...
Esta vez queremos hacer las cosas bien de verdad
· Vamos a usar la última tecnología
· Vamos a usar Scrum: Desarrollo
ágil e iterativo
¡¡NUEVO PROYECTO!!
En alguna empresa del mundo...
Esta vez queremos hacer las cosas bien de verdad
· Vamos a usar la última tecnología
· Vamos a usar Scrum: Desarrollo
ágil e iterativo
· Vamos a cumplir plazos
¡¡NUEVO PROYECTO!!
En alguna empresa del mundo...
Esta vez queremos hacer las cosas bien de verdad
· Vamos a usar la última tecnología
· Vamos a usar Scrum: Desarrollo
ágil e iterativo
· Vamos a cumplir plazos
¿Y las pruebas?
¡¡NUEVO PROYECTO!!
En alguna empresa del mundo...
Esta vez queremos hacer las cosas bien de verdad
· Vamos a usar la última tecnología
· Vamos a usar Scrum: Desarrollo
ágil e iterativo
· Vamos a cumplir plazos
¿Y las pruebas?
Por supuesto, tenemos un
tester que hará las pruebas al
final de cada iteración como
hasta ahora
¡¡NUEVO PROYECTO!!
Primeras iteraciones
Empresa
Primeras iteraciones
Empresa
Primeras iteraciones
Empresa
Devs
Primeras iteraciones
Empresa
Devs
QA
Primeras iteraciones
Empresa
Devs
QA
Primeras iteraciones
Empresa
Devs
QA
Primeras iteraciones
Empresa
Devs
QA
Primeras iteraciones
Empresa
Devs
QA
Primeras iteraciones
Empresa
Devs
QA
Primeras iteraciones
Empresa
Devs
QA
Primeras iteraciones
Empresa
Devs
QA
Primeras iteraciones
Empresa
Devs
QA
Primeras iteraciones
Empresa
Devs
Primeras iteraciones
Empresa
Devs
Primeras iteraciones
Empresa
Devs
· El trabajo de pruebas aumenta con cada iteración. Nunca disminuye
· El feedback a desarrollo comienza a ralentizarse
Siguientes iteraciones
Empresa
Siguientes iteraciones
Empresa
Devs
Siguientes iteraciones
Empresa
Devs
Siguientes iteraciones
Empresa
Devs
Siguientes iteraciones
Empresa
Devs
Siguientes iteraciones
Empresa
Devs
Siguientes iteraciones
Empresa
Devs
Siguientes iteraciones
Empresa
Devs
Siguientes iteraciones
Empresa
Devs
Siguientes iteraciones
Empresa
· Las pruebas completas llevan mucho tiempo: ¿Centrarse en lo nuevo o que todo siga funcionando?
· No hay tiempo para testing de calidad. Además aumentan las probabilidades de errores humanos
· Feedback lento. Cambio contexto ralentiza desarrollos. Propenso a errores
· Cliente comienza recibir desarrollos sin probar
Devs
Últimas iteraciones
Empresa
Últimas iteraciones
Empresa
Últimas iteraciones
Empresa
Últimas iteraciones
Empresa
Últimas iteraciones
Empresa
Últimas iteraciones
Empresa
Últimas iteraciones
Empresa
Últimas iteraciones
Empresa
Últimas iteraciones
Empresa
Últimas iteraciones
Empresa
Últimas iteraciones
Empresa
Últimas iteraciones
Empresa
Últimas iteraciones
Empresa
· Tiempos de pruebas inmanejables. Sin testing de calidad, sólo checking
· Entrega de versiones completas sin probar. Fallos de regresión
· Coste de corrección de errores disparado y descontrolado
Un momento de reflexión
Análisis de la situación
¿Qué quiere cada parte?
¿Qué quiere cada parte?
Desarrollo
✓ Feedback rápido y
claro
✓ Confianza en las
pruebas
✓ Red de seguridad
¿Qué quiere cada parte?
Desarrollo
✓ Feedback rápido y
claro
✓ Confianza en las
pruebas
✓ Red de seguridad
QA
✓ Más tiempo para
testing de calidad
✓ Mayor trazabilidad
✓ Trabajo menos
repetitivo
¿Qué quiere cada parte?
Desarrollo
✓ Feedback rápido y
claro
✓ Confianza en las
pruebas
✓ Red de seguridad
QA
✓ Más tiempo para
testing de calidad
✓ Mayor trazabilidad
✓ Trabajo menos
repetitivo
Cliente
✓ Entregas rápidas
✓ Versiones sin errores
✓ Lo que antes
funcionaba todavía lo
hace
¿Qué trabajo está haciendo QA?
Test Plan
Lista verificación
Regresión
Excel
Post-its
….
¿Qué trabajo está haciendo QA?
Secuencia de pasos definida
Resultado esperado especificado
Ejecutado una y otra vez
Test Plan
Lista verificación
Regresión
Excel
Post-its
….
¿Qué trabajo está haciendo QA?
Secuencia de pasos definida
Resultado esperado especificado
Ejecutado una y otra vez
¿Qué podría hacer alguien con conocimientos de programación
ante una tarea repetitiva,
con una secuencia de pasos de definida y
conociendo el resultado esperado ?
Test Plan
Lista verificación
Regresión
Excel
Post-its
….
Como mínimo: “Todo va bien”
Automatizar checkeos de funcionalidad básica del sistema
✓ En cualquier momento. También para monitorizar producción
✓ Feedback temprano rápido: Podemos seguir, no hemos roto nada
✓ Confianza en los resultados: Reproducible y sin errores humanos
✓ Deja tiempo para Testing de calidad
#AutomatedTesting
#Selenium
Automatización web con Selenium
Emular interacciones de un usuario sobre el navegador
API para varios lenguajes
Multinavegador
Automatización web con Selenium
Emular interacciones de un usuario sobre el navegador
API para varios lenguajes
Multinavegador
Java,
.Net,
Python
...
Web
Driver
Nociones básicas
JUnit
@Test - Métodos que se
ejecutan independientemente
Asserts - Comprobaciones
@Before y @After
Nociones básicas
JUnit
@Test - Métodos que se
ejecutan independientemente
Asserts - Comprobaciones
@Before y @After
Código sin verificar
Nociones básicas
JUnit
@Test - Métodos que se
ejecutan independientemente
Asserts - Comprobaciones
@Before y @After
Tips
KISS:
@Test {
//ARRANGE – Given
//ACT – When
//ASSERT – Then
}
Nombres representativos
Clean code
¿Pruebas de pruebas?
Código sin verificar
#Demo
#Selenium
#Java
#Conclusiones
Conclusiones
· Un verdadero desarrollo ágil e iterativo requiere automatización de pruebas
· Checking vs Testing
· ¡No sustituye al testing manual!
· El código de test debe ser tratado con cariño
· Automatizar con sentido común
Conclusiones
· Un verdadero desarrollo ágil e iterativo requiere automatización de pruebas
· Checking vs Testing
· ¡No sustituye al testing manual!
· El código de test debe ser tratado con cariño
· Automatizar con sentido común
Nº Pruebas
Usuario
Código
#TheEnd
Francisco Moreno (@morvader)
Diciembre 2015

Más contenido relacionado

PPTX
Workshop: Testeando nuestra aplicaciones.
PPTX
El coste de no usar integración continua
PPTX
Testing & Pizza by Lito & nitsnets
PDF
Apuntes #XPweek
PPTX
TDD y Python
PPTX
Cypress en un mundo lleno de Selenium
PPTX
Introducción a Unit Testing y TDD
Workshop: Testeando nuestra aplicaciones.
El coste de no usar integración continua
Testing & Pizza by Lito & nitsnets
Apuntes #XPweek
TDD y Python
Cypress en un mundo lleno de Selenium
Introducción a Unit Testing y TDD

La actualidad más candente (20)

PDF
ATDD - Desarrollo Dirigido por Test de Aceptación
PPTX
TDD Course (Spanish)
PPTX
Taller definición bugs
PPT
Como hacer tdd y no morir en el intento
PPTX
Pruebas Automatizadas
PPTX
Unidad ii. tdd
PDF
BDD y tests automatizados
PPTX
Test Automation .NET
PPTX
Unit testing
PPTX
Introducción a tdd
PPT
Test unitarios
ODP
Cómo hacer Test Driven Development
PDF
Artesania de Software y TDD
PDF
Test Driven Development
PDF
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
ODP
Taller SOLID Refactor
PPTX
TDD: ¿Cómo escribir código testeable?
PDF
Introducción a testing en php
PPTX
Dealing with fear in legacy projects #PHPDS15
PPTX
Integracion Continua
ATDD - Desarrollo Dirigido por Test de Aceptación
TDD Course (Spanish)
Taller definición bugs
Como hacer tdd y no morir en el intento
Pruebas Automatizadas
Unidad ii. tdd
BDD y tests automatizados
Test Automation .NET
Unit testing
Introducción a tdd
Test unitarios
Cómo hacer Test Driven Development
Artesania de Software y TDD
Test Driven Development
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
Taller SOLID Refactor
TDD: ¿Cómo escribir código testeable?
Introducción a testing en php
Dealing with fear in legacy projects #PHPDS15
Integracion Continua
Publicidad

Destacado (9)

PDF
Introducción al software testing
PPTX
Testing con selenium
PPTX
Selenium
PDF
Selenium RC: Automated Testing of Modern Web Applications
PDF
SEMINARIO WEB EN VIVO: INTRODUCCIÓN AL AGILE TESTING
PDF
Selenium Tips & Tricks
PPTX
Automation Testing by Selenium Web Driver
PPT
Usando Selenium Con Firefox E Ie
DOCX
Tutorial selenium
Introducción al software testing
Testing con selenium
Selenium
Selenium RC: Automated Testing of Modern Web Applications
SEMINARIO WEB EN VIVO: INTRODUCCIÓN AL AGILE TESTING
Selenium Tips & Tricks
Automation Testing by Selenium Web Driver
Usando Selenium Con Firefox E Ie
Tutorial selenium
Publicidad

Similar a Introducción a automatización de pruebas web (20)

PDF
El camino de Tester Agil.pdf
PPTX
Software Testing - Panorama Actual
PPTX
20180313 Keep Calm And Test Your Code RiojaDotNet
PPT
Feb-2015 / El arte de crear software de calidad con agilidad
PPTX
Seminario de actuaciones presentacion.pptx
PPTX
imagenes-testing-agile-agil.pptx.doc.ppt.doc
PDF
2.6 Pruebas Funcionales.pdf
PDF
Vuelta_a_los_origines_Testing.pdf
DOC
Plan de pruebas de software
PDF
Fundamentos Rational Tester
PDF
Charla evento TestingUY 2017 - Automatización en gran escala
PDF
Material de lectura QA Program----------
PPTX
Pruebas de software
PPTX
S9-DAW-2022S1.pptx
PPTX
Testing de Aplicaciones Móviles, Públicas, Masivas y Críticas
DOC
20180421100423
PPTX
Software Quality Assurance
PDF
presentacion de programacion Software testing.pdf
DOCX
Taller 3 calidad_de_software_jcom
PDF
Meetup TestingUy 2019 - Contribuir con la definición de requerimientos para e...
El camino de Tester Agil.pdf
Software Testing - Panorama Actual
20180313 Keep Calm And Test Your Code RiojaDotNet
Feb-2015 / El arte de crear software de calidad con agilidad
Seminario de actuaciones presentacion.pptx
imagenes-testing-agile-agil.pptx.doc.ppt.doc
2.6 Pruebas Funcionales.pdf
Vuelta_a_los_origines_Testing.pdf
Plan de pruebas de software
Fundamentos Rational Tester
Charla evento TestingUY 2017 - Automatización en gran escala
Material de lectura QA Program----------
Pruebas de software
S9-DAW-2022S1.pptx
Testing de Aplicaciones Móviles, Públicas, Masivas y Críticas
20180421100423
Software Quality Assurance
presentacion de programacion Software testing.pdf
Taller 3 calidad_de_software_jcom
Meetup TestingUy 2019 - Contribuir con la definición de requerimientos para e...

Último (9)

PPTX
PROPIEDADES Y METODOS DE PrOO CON PYTHON
PPTX
hojas_de_calculo_aplicado para microsoft office
PPTX
Implementación equipo monitor12.08.25.pptx
PPTX
Control de seguridad en los sitios web.pptx
PDF
Presentacion de compiladores e interpretes
PDF
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
PPTX
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
PPTX
presentación de introducción a las metodologías agiles .pptx
PDF
DNS_SERVIDORES PARA ASER PRACTICAS EN REDES
PROPIEDADES Y METODOS DE PrOO CON PYTHON
hojas_de_calculo_aplicado para microsoft office
Implementación equipo monitor12.08.25.pptx
Control de seguridad en los sitios web.pptx
Presentacion de compiladores e interpretes
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
presentación de introducción a las metodologías agiles .pptx
DNS_SERVIDORES PARA ASER PRACTICAS EN REDES

Introducción a automatización de pruebas web