El documento presenta una conferencia sobre las dificultades que enfrenta un tester a medida que un proyecto crece y cambia con el tiempo. Comienza describiendo el rol del orador y los primeros días del proyecto. Luego describe cómo la arquitectura y la base de datos cambiaron, lo que dificultó las pruebas. Finalmente, la conferencia concluye que es importante educar la automatización desde el principio y propone usar un lenguaje de programación, pruebas guiadas por datos y una arquitectura de pruebas bien definida.
2. EL PEQUEÑO SE HACE MAYOR
Antonio Robres Turon
Quality Manager
3. 12 y 13 de noviembre de 2014 Valencia, España 3
Quien soy?
{Nombre: Toni Robres,
rol: [QA Manager, QA Arquitect],
hobbies: [Leer, Tenis, Testing],
twitter: @twiindan }
4. 12 y 13 de noviembre de 2014 Valencia, España 4
Introducción
Basada en una historia real
Los eventos explicados en esta conferencia
Tienen lugar en Barcelona
Ningún tester ni desarrollador ha sido maltratado
durante los hechos explicados en la conferencia
5. 12 y 13 de noviembre de 2014 Valencia, España 5
Introducción
6. 12 y 13 de noviembre de 2014 Valencia, España 6
Dia 1
7. 12 y 13 de noviembre de 2014 Valencia, España 7
Dia 1
8. 12 y 13 de noviembre de 2014 Valencia, España 8
Dia 7
Cambios en la API:
No problem!
9. 12 y 13 de noviembre de 2014 Valencia, España 9
Dia 15
La arquitectura crece:
oVarios componentes
oColas
oCache
Como voy a probar
todos estos componentes?
10. 12 y 13 de noviembre de 2014 Valencia, España 10
Dia 30
Cambian la BBDD
oMySQL MongoDB
Mi herramienta solo puede
funcionar con MySQL!!!!
Tengo los datos mezclados
con los tests!
11. 12 y 13 de noviembre de 2014 Valencia, España 11
Dia 60
Solo puedo realizar pruebas E2E
oTolerantes a fallos
oComplejas
oMantenimiento complejo
12. 12 y 13 de noviembre de 2014 Valencia, España 12
Día 90
13. 12 y 13 de noviembre de 2014 Valencia, España 13
Motivación tester en la automatización
-6
-4
-2
0
2
4
6
8
Motivación
Tiempo
Motivación tester automatizando
14. 12 y 13 de noviembre de 2014 Valencia, España 14
Conclusiones
Ciclo de un proyecto de automatización
oHay que educar a nuestra automatización desde el principio!!!
15. 12 y 13 de noviembre de 2014 Valencia, España 15
Utilizar un lenguaje de programación
16. 12 y 13 de noviembre de 2014 Valencia, España 16
Utilizar un lenguaje de programación
-Flexibilidad
-Integración
-Cooperación con desarrolladores
-Reutilización
17. 12 y 13 de noviembre de 2014 Valencia, España 17
Testing guiado por datos
Importante separar los datos de la logica del sistema
Permite agragar facilmente nuevas condiciones de
prueba
Crear librerías reutilizables con la lógica de negocio
oAbstrae de la tecnologia que se utiliza
oSi cambia los tests no cambian
18. 12 y 13 de noviembre de 2014 Valencia, España 18
Testing guiado por datos
Ejemplo:
o Software para una libreria donde existe un inventario de libros
oUtiliza una BBDD MySQL
Creamos una libreria con las funciones necesarias para
nuestros tests:
oInsertarLibro
oObtenerLibro
19. 12 y 13 de noviembre de 2014 Valencia, España 19
Testing guiado por datos
Nuestros tests utilizan la libreria que nos abstrae de la
BBDD:
MySQL Driver
Automatic
Tests MySQL
20. 12 y 13 de noviembre de 2014 Valencia, España 20
Testing guiado por datos
Que pasa si cambia la BBDD?
Los tests no cambian!
MongoDB
Driver
Automatic
Tests MongoDB
21. 12 y 13 de noviembre de 2014 Valencia, España 21
Arquitectura de Test
Documento donde definimos la estrategia
oSe construye a partir de la arquitectura de software
oSe define QUE se ha de probar
oSe define que TIPOS de prueba se van a realizar
oSe define que niveles de prueba se van a realizar
22. 12 y 13 de noviembre de 2014 Valencia, España 22
Estrategia
23. 12 y 13 de noviembre de 2014 Valencia, España 23
Ejemplo
Plataforma de citas
Aplicación movil
Web usuario
Web de soporte
BBDD MySQL
Software de terceros para hacer el registro SMS
24. 12 y 13 de noviembre de 2014 Valencia, España 24
Ejemplo
Web Usuarios
SMS
Web Soporte
Backend
BBDD
25. 12 y 13 de noviembre de 2014 Valencia, España 25
Ejemplo
Pruebas de componente:
oWebs
oAplicación movil
oBackend
Pruebas de integración
oWeb + backend
oMovil + backend
oSMS + backend
Pruebas E2E:
oCiclo de registro
oConsistencia Web / Movil
26. 12 y 13 de noviembre de 2014 Valencia, España 26
Ejemplo
Que necesitaremos para probar?
o Selenium para interfaz grafica
o Herramientas para automatizar aplicación movil (appium,
calaba.sh, TestDroid...)
o Liberia para Hacer peticiones REST
o Libreria para acceder a MySQL
o Mock de backend
o Mock Plataformas SMS
27. 12 y 13 de noviembre de 2014 Valencia, España 27
28. 12 y 13 de noviembre de 2014 Valencia, España 28
Ventajas
Pruebas de componente mucho más rapidas
Aislamos problemas
Logica en librerias
Pruebas de integración y E2E son conjuntos de pruebas
de componente
Mantenibilidad
29. 12 y 13 de noviembre de 2014 Valencia, España 29
Resultado
Inicios automatización:
Si hay un libro donde esten todos los errores de novatos de automatización… seguramente lo hubiera seguido al pie de la letra
Duplicar cosas
No parametrizar
Poner todos los datos harcodeados
Hacer cosas que no se utilizan para nada
No versionar mis tests (ni subirlos al SCM)
No llamar a los tests por su nombre
No poner logs ni comentarios
…
Conclusión: Despues de 9-10 meses, el 75 % de mi tiempo diario se iba a mantener tests que fallaban
Primer dia:
Felicidad
Ganas de aplicar todo lo que has aprendido en el anteriori
Reutilizar
Comentar / Documentar
Parametrizar
Empiezo con una nueva herramienta que promete mucho!
Empiezo a trabajar duro mientras desarrollan:
El software aun no esta definido
Definen la API
Definen el Body
Definen la arquitectura
API funciona bien
Errores en las partes internas
Memory leaks
Poca robustez
Problemas en la BBDD
No soy capaz de detectar esas cosas porque solo hago pruebas E2E
Desarrolladores creen que los tests no sirven para nada
La herramienta no me permite acceder a la parte interna de la aplicación
Cuando son bebes son manejables
Tienen que hacer pocas cosas
Los padres de la criatura estan ilusionados
Los proyectos crecen y entran en la “adolescencia”
Se rebelan contra sus “creadores”
Cuesta mucho más mantenerlos
Una herramienta tiene un proposito en particular
Cuando se sale de ese proposito ya no sirve
Hay que hacer chapuzas
Flexibilidad
Integración
Ayuda al desarrollo
Lo mismo seria si cambiará el nombre o la estructura de alguna tabla de la BBDD