Creación de Frameworks para Automation:
Las básicas
Edgardo Crovetto
edcrove@gmail.com
NetSuite – Senior Sofware QA EngineerAgosto 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
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
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
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
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
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
Tipos de automationframeworks
Data-driventesting
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
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 automationframeworks
Modularity-driventesting
Test
Script 1
Test
Script 2
Test
Script n
Test Case
Creación de Frameworks para Automation:
Las básicas
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 automationframeworks
Keyword-driventesting
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
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 automationframeworks
Hybrid-driventesting
Creación de Frameworks para Automation:
Las básicas
• Locators/Selectors fields mapping
• Data Sets
• Test Suites
• Configuración de regresiones
• Organización de pruebas
• Logs de ejecución
• Mantenimiento
Segmentando un framework
Conceptosatomarencuenta
Creación de Frameworks para Automation:
Las básicas
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/Selectorsfieldsmapping
Creación de Frameworks para Automation:
Las básicas
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
DataSets
Creación de Frameworks para Automation:
Las básicas
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
TestSuites
Creación de Frameworks para Automation:
Las básicas
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ónderegresiones
Creación de Frameworks para Automation:
Las básicas
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
Logsdeejecución
Creación de Frameworks para Automation:
Las básicas
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
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
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
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
¡Muchas Gracias!
Q & A
Edgardo Crovetto
edcrove@gmail.com
NetSuite – Senior Sofware QA EngineerAgosto 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

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

  • 1.
    Creación de Frameworkspara Automation: Las básicas Edgardo Crovetto edcrove@gmail.com NetSuite – Senior Sofware QA EngineerAgosto 2013
  • 2.
    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
  • 3.
    Agenda • Enfrentarse aun 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
  • 4.
    Enfrentarse a unproyecto 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
  • 5.
    Proyectos • Tecnología dela 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
  • 6.
    Herramientas Teniendo de basela 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
  • 7.
    Tipos de automationframeworks 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
  • 8.
    Tipos de automationframeworks Data-driventesting Estetipo 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
  • 9.
    Este tipo deframework 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 automationframeworks Modularity-driventesting Test Script 1 Test Script 2 Test Script n Test Case Creación de Frameworks para Automation: Las básicas
  • 10.
    Este tipo deframework 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 automationframeworks Keyword-driventesting 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
  • 11.
    La idea esutilizar los frameworks antes mencionados para generar uno nuevo que tenga lo que el proyecto demanda específicamente a medida. Tipos de automationframeworks Hybrid-driventesting Creación de Frameworks para Automation: Las básicas
  • 12.
    • Locators/Selectors fieldsmapping • Data Sets • Test Suites • Configuración de regresiones • Organización de pruebas • Logs de ejecución • Mantenimiento Segmentando un framework Conceptosatomarencuenta Creación de Frameworks para Automation: Las básicas
  • 13.
    En cualquier herramientapara 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/Selectorsfieldsmapping Creación de Frameworks para Automation: Las básicas
  • 14.
    Especialmente para data-drivenframeworks 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 DataSets Creación de Frameworks para Automation: Las básicas
  • 15.
    Tomar en cuentaen 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 TestSuites Creación de Frameworks para Automation: Las básicas
  • 16.
    Usando las testsuites 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ónderegresiones Creación de Frameworks para Automation: Las básicas
  • 17.
    Muchas herramientas yatienen 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 Logsdeejecución Creación de Frameworks para Automation: Las básicas
  • 18.
    Finalmente tener comoprincipio 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
  • 19.
    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
  • 20.
    Buena documentación, hechaa 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
  • 21.
    El tema esextenso 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
  • 22.
    ¡Muchas Gracias! Q &A Edgardo Crovetto edcrove@gmail.com NetSuite – Senior Sofware QA EngineerAgosto 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