introducción a automatización de pruebas web

85
Automatización pruebas web Escuela Politécnica de Ingeniería Gijón - Diciembre 2015

Upload: francisco-moreno-sanz

Post on 18-Feb-2017

266 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Introducción a automatización de pruebas web

Automatización pruebas web

Escuela Politécnica de Ingeniería Gijón - Diciembre 2015

Page 2: Introducción a automatización de pruebas web

Francisco Moreno (@morvader) Responsable QA en Atiun Comunicaciones [email protected]

Page 3: Introducción a automatización de pruebas web

Francisco Moreno (@morvader) Responsable QA en Atiun Comunicaciones [email protected]

He visto cosas que no creeríais

Page 4: Introducción a automatización de pruebas web

#Intro

Page 5: Introducción a automatización de pruebas web

¿Por qué son necesarias las pruebas?

Page 6: Introducción a automatización de pruebas web

¿Por qué son necesarias las pruebas?

Las personas cometen errores

Page 7: Introducción a automatización de pruebas web

¿Por qué son necesarias las pruebas?

Las personas cometen errores

Verificar cumplimiento expectativas

Page 8: Introducción a automatización de pruebas web

¿Por qué son necesarias las pruebas?

Las personas cometen errores

Verificar cumplimiento expectativas

Sin fallos ≠Funcional

Page 9: Introducción a automatización de pruebas web

¿Por qué son necesarias las pruebas?

Las personas cometen errores

Verificar cumplimiento expectativas

Sin fallos ≠Funcional

Sin miedo a cambios

Page 10: Introducción a automatización de pruebas web

¿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

Page 11: Introducción a automatización de pruebas web

¿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

Page 12: Introducción a automatización de pruebas web

¿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

Page 13: Introducción a automatización de pruebas web

¿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

Page 14: Introducción a automatización de pruebas web

¿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

Page 15: Introducción a automatización de pruebas web

¿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

Page 16: Introducción a automatización de pruebas web

¿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

Page 17: Introducción a automatización de pruebas web

¿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

Page 18: Introducción a automatización de pruebas web

¿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

Page 19: Introducción a automatización de pruebas web

#EstaPasando #TrueStory

Page 20: Introducción a automatización de pruebas web

En alguna empresa del mundo...

¡¡NUEVO PROYECTO!!

Page 21: Introducción a automatización de pruebas web

En alguna empresa del mundo...

Esta vez queremos hacer las cosas bien de verdad

¡¡NUEVO PROYECTO!!

Page 22: Introducción a automatización de pruebas web

En alguna empresa del mundo...

Esta vez queremos hacer las cosas bien de verdad

¡¡NUEVO PROYECTO!!

Page 23: Introducción a automatización de pruebas web

En alguna empresa del mundo...

Esta vez queremos hacer las cosas bien de verdad

· Vamos a usar la última tecnología

¡¡NUEVO PROYECTO!!

Page 24: Introducción a automatización de pruebas web

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

Page 25: Introducción a automatización de pruebas web

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

Page 26: Introducción a automatización de pruebas web

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

Page 27: Introducción a automatización de pruebas web

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

Page 28: Introducción a automatización de pruebas web

Primeras iteraciones Empresa

Page 29: Introducción a automatización de pruebas web

Primeras iteraciones Empresa

Page 30: Introducción a automatización de pruebas web

Primeras iteraciones Empresa

Devs

Page 31: Introducción a automatización de pruebas web

Primeras iteraciones Empresa

Devs

QA

Page 32: Introducción a automatización de pruebas web

Primeras iteraciones Empresa

Devs

QA

Page 33: Introducción a automatización de pruebas web

Primeras iteraciones Empresa

Devs

QA

Page 34: Introducción a automatización de pruebas web

Primeras iteraciones Empresa

Devs

QA

Page 35: Introducción a automatización de pruebas web

Primeras iteraciones Empresa

Devs

QA

Page 36: Introducción a automatización de pruebas web

Primeras iteraciones Empresa

Devs

QA

Page 37: Introducción a automatización de pruebas web

Primeras iteraciones Empresa

Devs

QA

Page 38: Introducción a automatización de pruebas web

Primeras iteraciones Empresa

Devs

QA

Page 39: Introducción a automatización de pruebas web

Primeras iteraciones Empresa

Devs

QA

Page 40: Introducción a automatización de pruebas web

Primeras iteraciones Empresa

Devs

Page 41: Introducción a automatización de pruebas web

Primeras iteraciones Empresa

Devs

Page 42: Introducción a automatización de pruebas web

Primeras iteraciones Empresa

Devs

· El trabajo de pruebas aumenta con cada iteración. Nunca disminuye

· El feedback a desarrollo comienza a ralentizarse

Page 43: Introducción a automatización de pruebas web

Siguientes iteraciones Empresa

Page 44: Introducción a automatización de pruebas web

Siguientes iteraciones Empresa

Devs

Page 45: Introducción a automatización de pruebas web

Siguientes iteraciones Empresa

Devs

Page 46: Introducción a automatización de pruebas web

Siguientes iteraciones Empresa

Devs

Page 47: Introducción a automatización de pruebas web

Siguientes iteraciones Empresa

Devs

Page 48: Introducción a automatización de pruebas web

Siguientes iteraciones Empresa

Devs

Page 49: Introducción a automatización de pruebas web

Siguientes iteraciones Empresa

Devs

Page 50: Introducción a automatización de pruebas web

Siguientes iteraciones Empresa

Devs

Page 51: Introducción a automatización de pruebas web

Siguientes iteraciones Empresa

Devs

Page 52: Introducción a automatización de pruebas web

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

Page 53: Introducción a automatización de pruebas web

Últimas iteraciones Empresa

Page 54: Introducción a automatización de pruebas web

Últimas iteraciones Empresa

Page 55: Introducción a automatización de pruebas web

Últimas iteraciones Empresa

Page 56: Introducción a automatización de pruebas web

Últimas iteraciones Empresa

Page 57: Introducción a automatización de pruebas web

Últimas iteraciones Empresa

Page 58: Introducción a automatización de pruebas web

Últimas iteraciones Empresa

Page 59: Introducción a automatización de pruebas web

Últimas iteraciones Empresa

Page 60: Introducción a automatización de pruebas web

Últimas iteraciones Empresa

Page 61: Introducción a automatización de pruebas web

Últimas iteraciones Empresa

Page 62: Introducción a automatización de pruebas web

Últimas iteraciones Empresa

Page 63: Introducción a automatización de pruebas web

Últimas iteraciones Empresa

Page 64: Introducción a automatización de pruebas web

Últimas iteraciones Empresa

Page 65: Introducción a automatización de pruebas web

Ú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

Page 66: Introducción a automatización de pruebas web

Un momento de reflexión

Análisis de la situación

Page 67: Introducción a automatización de pruebas web

¿Qué quiere cada parte?

Page 68: Introducción a automatización de pruebas web

¿Qué quiere cada parte?

Desarrollo

✓ Feedback rápido y

claro

✓ Confianza en las

pruebas

✓ Red de seguridad

Page 69: Introducción a automatización de pruebas web

¿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

Page 70: Introducción a automatización de pruebas web

¿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

Page 71: Introducción a automatización de pruebas web

¿Qué trabajo está haciendo QA?

Test Plan

Lista verificación

Regresión

Excel

Post-its

….

Page 72: Introducción a automatización de pruebas web

¿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

….

Page 73: Introducción a automatización de pruebas web

¿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

….

Page 74: Introducción a automatización de pruebas web

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

Page 75: Introducción a automatización de pruebas web

#AutomatedTesting #Selenium

Page 76: Introducción a automatización de pruebas web

Automatización web con Selenium

Emular interacciones de un usuario sobre el navegador

API para varios lenguajes

Multinavegador

Page 77: Introducción a automatización de pruebas web

Automatización web con Selenium

Emular interacciones de un usuario sobre el navegador

API para varios lenguajes

Multinavegador

Java, .Net, Python ...

Web Driver

Page 78: Introducción a automatización de pruebas web

Nociones básicas

JUnit

@Test - Métodos que se

ejecutan independientemente

Asserts - Comprobaciones

@Before y @After

Page 79: Introducción a automatización de pruebas web

Nociones básicas

JUnit

@Test - Métodos que se

ejecutan independientemente

Asserts - Comprobaciones

@Before y @After

Código sin verificar

Page 80: Introducción a automatización de pruebas web

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

Page 81: Introducción a automatización de pruebas web

#Demo #Selenium #Java

Page 82: Introducción a automatización de pruebas web

#Conclusiones

Page 83: Introducción a automatización de pruebas web

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

Page 84: Introducción a automatización de pruebas web

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

Page 85: Introducción a automatización de pruebas web

#TheEnd

Francisco Moreno (@morvader)

Diciembre 2015