creación de frameworks para automation: las básicas (meet up automation uy agosto 2013)

22
Creación de Frameworks para Automation: Las básicas Edgardo Crovetto [email protected] NetSuite – Senior Sofware QA Engineer Agosto 2013

Upload: edgardo-crovetto

Post on 12-Jul-2015

222 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Creación de Frameworks para Automation: Las básicas (meet up automation UY Agosto 2013)

Creación de Frameworks para Automation: Las básicas

Edgardo Crovetto [email protected] NetSuite – Senior Sofware QA Engineer Agosto 2013

Page 2: Creación de Frameworks para Automation: Las básicas (meet up automation UY Agosto 2013)

Definición

• Conceptos

• Plataforma

• Buenas practicas

• Herramientas asociadas

• Librerias de extensión

• Arquitectura

¿Qué es un framework?

Creación de Frameworks para Automation: Las básicas

Page 3: Creación de Frameworks para Automation: Las básicas (meet up automation UY Agosto 2013)

Agenda

• Enfrentarse a un proyecto nuevo

• Proyectos

• Herramientas

• Tipos de automation frameworks

• Segmentando un framework

• Lecciones aprendidas

• Para seguir investigando

Creación de Frameworks para Automation: Las básicas

Page 4: Creación de Frameworks para Automation: Las básicas (meet up automation UY Agosto 2013)

Enfrentarse a un proyecto nuevo

• Particularidades del proyecto influyen estrategia de automation

• Proceso institucionalizado a nivel de empresa o proyecto

• Framework desde 0, que tener en cuenta

Creación de Frameworks para Automation: Las básicas

Page 5: Creación de Frameworks para Automation: Las básicas (meet up automation UY Agosto 2013)

Proyectos

• Tecnología de la AUT/SUT (Application Under Test/Sytem Under Test)

• Ambiente de pruebas

• Complejidad de AUT/SUT

• Presupuesto

• Tiempo

• ¿Quién va a automatizar?

Creación de Frameworks para Automation: Las básicas

Page 6: Creación de Frameworks para Automation: Las básicas (meet up automation UY Agosto 2013)

Herramientas

Teniendo de base la información del proyecto hay que decidir que herramienta de automation utilizar.

• Open source o Propietary

• Para probar Desktop, mobile o web AUT/SUTs.

• Extensible por programación o no.

Teniendo en cuenta esto se elige una herramienta que cumpla los requisitos del proyecto.

Creación de Frameworks para Automation: Las básicas

Page 7: Creación de Frameworks para Automation: Las básicas (meet up automation UY Agosto 2013)

Tipos de automation frameworks

Para diferentes tipos de proyectos puede haber diferentes tipos de automation frameworks que vayan a medida de estos:

• Data-driven testing

• Modularity-driven testing

• Keyword-driven testing

• Hybrid testing

Creación de Frameworks para Automation: Las básicas

Page 8: Creación de Frameworks para Automation: Las básicas (meet up automation UY Agosto 2013)

Tipos de automation frameworks Data-driven testing

Este tipo de framework tiene como cometido que cada test script reaccione al data set de entrada y tenga una salida en función de el.

O sea que el test script sea suficientemente robusto para soportar diferentes flujos en función del data set ingresado para la ejecución.

Un test case en este caso se define como el par data set - test script.

Creación de Frameworks para Automation: Las básicas

Page 9: Creación de Frameworks para Automation: Las básicas (meet up automation UY Agosto 2013)

Este tipo de framework tiene como cometido que cada test script corresponda a una minima parte de una transacción o prueba más grande.

La ventaja es mantener partes más chicas para pruebas más grandes.

Divide & Conquer.

Tipos de automation frameworks Modularity-driven testing

Test Script 1

Test Script 2

Test Script n

Test Case

Creación de Frameworks para Automation: Las básicas

Page 10: Creación de Frameworks para Automation: Las básicas (meet up automation UY Agosto 2013)

Este tipo de framework genera test scripts a través de acciones definidas.

Con esta técnica se pueden generar acciones pre definidas si se desea no utilizar programación y usar personal con un nivel de programación más básico para el armado de pruebas y personal con un nivel más avanzado de programación para la generación de acciones genericas.

Ejemplo:

Tipos de automation frameworks Keyword-driven testing

http://safsdev.sourceforge.net/FRAMESDataDrivenTestAutomationFrameworks.htm

Cycle Table: VerifyAuthenticationFunction

KEYWORDS (Suite Tables) TABLE PURPOSE

VerifyInvalidLogin Tests with Invalid UserID and/or Password

VerifyBlankLogin Tests with Missing UserID and/or Password

VerifyValidLogin Tests with Valid UserID and Password

Creación de Frameworks para Automation: Las básicas

Page 11: Creación de Frameworks para Automation: Las básicas (meet up automation UY Agosto 2013)

La idea es utilizar los frameworks antes mencionados para generar uno nuevo que tenga lo que el proyecto demanda específicamente a medida.

Tipos de automation frameworks Hybrid-driven testing

Creación de Frameworks para Automation: Las básicas

Page 12: Creación de Frameworks para Automation: Las básicas (meet up automation UY Agosto 2013)

• Locators/Selectors fields mapping

• Data Sets

• Test Suites

• Configuración de regresiones

• Organización de pruebas

• Logs de ejecución

• Mantenimiento

Segmentando un framework Conceptos a tomar en cuenta

Creación de Frameworks para Automation: Las básicas

Page 13: Creación de Frameworks para Automation: Las básicas (meet up automation UY Agosto 2013)

En cualquier herramienta para cualquier aplicación siempre está el concepto de ubicar los fields, campos, objetos de una pantalla para el uso de acciones sobre ellos.

Un framework debería tomar en cuenta el mapeo de estos teniendo como objetivo la mantenibilidad.

Posibles formas de mapeo:

• Mapeo que disponga la herramienta

• XML, JSON, INI files

• Data base

Segmentando un framework Locators/Selectors fields mapping

Creación de Frameworks para Automation: Las básicas

Page 14: Creación de Frameworks para Automation: Las básicas (meet up automation UY Agosto 2013)

Especialmente para data-driven frameworks pero para cualquier framework en general es recomendable que la data de los test scripts no quede guardada hard coded dentro.

La recomendación es usar algún tipo de mapeo para los datos de prueba que puede estar alineada o no con el mapeo de objetos.

Segmentando un framework Data Sets

Creación de Frameworks para Automation: Las básicas

Page 15: Creación de Frameworks para Automation: Las básicas (meet up automation UY Agosto 2013)

Tomar en cuenta en un framework los grupos de pruebas que ejecutan solos y conceptualmente agrupados es fundamental.

Tener control sobre la agrupación de pruebas para la combinación de estas para hacer regresiones hace más eficiente el proceso de testing.

Segmentando un framework Test Suites

Creación de Frameworks para Automation: Las básicas

Page 16: Creación de Frameworks para Automation: Las básicas (meet up automation UY Agosto 2013)

Usando las test suites definidas, poder definir agrupaciones para poder configurar regresiones a medida, de forma eficiente es un factor a tomar en cuenta.

Puntos a considerar:

• Pruebas distribuidas

• Pruebas sincronizadas con ciclos de desarrollo

Segmentando un framework Configuración de regresiones

Creación de Frameworks para Automation: Las básicas

Page 17: Creación de Frameworks para Automation: Las básicas (meet up automation UY Agosto 2013)

Muchas herramientas ya tienen un output de ejecución que es legible a la hora de ver el estado de una ejecución.

Si no lo tiene para crearlo tomar en cuenta estos puntos:

• Descripción clara del flujo de prueba

• Mapeo de acciones con resultados

• Visibilidad clara de posibles anomalías/bugs en las ejecuciones.

• Mapeo de bugs conocidos con el reporte ya realizado en la herramienta correspondiente de bug reporting.

• Complemento con imágenes de captura en momentos del flujo cruciales y/o errores.

• Reducir ruido de información extra irrelevante

• Que el propio log de ejecución muestre métricas de la ejecución

Segmentando un framework Logs de ejecución

Creación de Frameworks para Automation: Las básicas

Page 18: Creación de Frameworks para Automation: Las básicas (meet up automation UY Agosto 2013)

Finalmente tener como principio fundamental el mantenimiento es importante.

Las pruebas y las aplicaciones cambian y poder reaccionar rápidamente a esos cambios hace que las pruebas automatizadas mantengan su vigencia.

Enfocarse en que el mantenimiento sea lo más sencillo posible reduce los tiempos de mantenimiento y a mediano largo plazo hace que la carga de trabajo se reduzca (aunque no lo parezca en el corto plazo).

Segmentando un framework Mantenimiento

Creación de Frameworks para Automation: Las básicas

Page 19: Creación de Frameworks para Automation: Las básicas (meet up automation UY Agosto 2013)

Control de versiones: mapear las versiones de los scripts de automation con la versión del software a probar.

Visibilidad de mapeo de objetos y datos.

Crear la arquitectura del framework de forma que mantener no sea un agujero negro, claridad e intiutivo.

Lecciones aprendidas

Creación de Frameworks para Automation: Las básicas

Page 20: Creación de Frameworks para Automation: Las básicas (meet up automation UY Agosto 2013)

Buena documentación, hecha a mano y buena documentación auto generada.

Contra más conceptual y amena esté la información la curva de aprendizaje se acorta cada vez más.

Trabajo en equipo, siempre tratar de evitar el retrabajo buscando colaborar de la forma más eficiente posible.

Lecciones aprendidas

Creación de Frameworks para Automation: Las básicas

Page 21: Creación de Frameworks para Automation: Las básicas (meet up automation UY Agosto 2013)

El tema es extenso y empezar con las básicas es importante.

Frameworks existentes ejemplo

robotframework.org/

fitnesse.org/

Implementación de un framework de ejemplo, dependencias generadas.

Diseño e implementación de una arquitectura de automation.

Coding standards para el proyecto.

Alinear con documentación de testing e integración con herramientas de reporte.

Para seguir investigando

Creación de Frameworks para Automation: Las básicas

Page 22: Creación de Frameworks para Automation: Las básicas (meet up automation UY Agosto 2013)

¡Muchas Gracias! Q & A

Edgardo Crovetto [email protected] NetSuite – Senior Sofware QA Engineer Agosto 2013

Creación de Frameworks para Automation: Las básicas

http://en.wikipedia.org/wiki/Test_automation_framework http://en.wikipedia.org/wiki/Test_automation