Creación de Frameworks para Automation: Las básicas
Edgardo Crovetto [email protected] NetSuite – Senior Sofware QA Engineer 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
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 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
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
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
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
• 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
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
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
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
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
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
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 [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
Top Related