introducción a automatización de pruebas web

Post on 18-Feb-2017

266 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related