Slides utilizadas en charla a alumnos de Ingeniería del Software en la Escuela Politécnica de Gijón sobre:
- Necesidad de testing
- Problemas dentro de un proyecto
- Automatización de pruebas con Seleniun
6. ¿Por qué son necesarias las pruebas?
Las personas cometen errores
7. ¿Por qué son necesarias las pruebas?
Las personas cometen errores
Verificar cumplimiento expectativas
8. ¿Por qué son necesarias las pruebas?
Las personas cometen errores
Verificar cumplimiento expectativas
Sin fallos ≠Funcional
9. ¿Por qué son necesarias las pruebas?
Las personas cometen errores
Verificar cumplimiento expectativas
Sin fallos ≠Funcional
Sin miedo a cambios
10. ¿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
11. ¿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
12. ¿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
13. ¿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
14. ¿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
15. ¿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
16. ¿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
17. ¿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
18. ¿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
21. En alguna empresa del mundo...
Esta vez queremos hacer las cosas bien de verdad
¡¡NUEVO PROYECTO!!
22. En alguna empresa del mundo...
Esta vez queremos hacer las cosas bien de verdad
¡¡NUEVO PROYECTO!!
23. En alguna empresa del mundo...
Esta vez queremos hacer las cosas bien de verdad
· Vamos a usar la última tecnología
¡¡NUEVO PROYECTO!!
24. 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!!
25. 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!!
26. 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!!
27. 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!!
42. Primeras iteraciones
Empresa
Devs
· El trabajo de pruebas aumenta con cada iteración. Nunca disminuye
· El feedback a desarrollo comienza a ralentizarse
52. 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
65. Ú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
68. ¿Qué quiere cada parte?
Desarrollo
✓ Feedback rápido y
claro
✓ Confianza en las
pruebas
✓ Red de seguridad
69. ¿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
70. ¿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
71. ¿Qué trabajo está haciendo QA?
Test Plan
Lista verificación
Regresión
Excel
Post-its
….
72. ¿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
….
73. ¿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
….
74. 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
76. Automatización web con Selenium
Emular interacciones de un usuario sobre el navegador
API para varios lenguajes
Multinavegador
77. Automatización web con Selenium
Emular interacciones de un usuario sobre el navegador
API para varios lenguajes
Multinavegador
Java,
.Net,
Python
...
Web
Driver
83. 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
84. 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