Está en la página 1de 17

Unidad N°2

Frameworks de automatización
NOMBRE DE LA ESCUELA

Director : Marcelo Lucero Yáñez

ELABORACIÓN

Experto disciplinar: Felipe Montenegro

Diseñador instruccional: Antonio Colmenares Prieto

VALIDACIÓN

Experto disciplinar: Segundo Galdamez Henriquez

Jefa de Diseño Instruccional: Alejandra San Juan Reyes

EQUIPO DE DESARROLLO

DIDACTIC

AÑO

2022
Tabla de contenidos

Aprendizaje esperado .............................................................................................. 4

Introducción .............................................................................................................. 5

1. Frameworks de automatización ....................................................................... 6

2. Tipos de frameworks de automatización ....................................................... 12

3. Áreas de aplicación de frameworks .............................................................. 13

4. Ejemplos de frameworks: análisis de casos ................................................... 14

Referencias bibliográficas ...................................................................................... 17


Aprendizaje esperado

Analizan frameworks de automatización, considerando componentes,


ventajas y aplicabilidad, de acuerdo con requerimientos.

Fuente: Freepik (s/f)


Introducción

Los frameworks, son un conjunto de reglas y normas para trabajar sobre algún
proceso. En este caso en particular, nos centraremos en el proceso de
automatización de pruebas de softwares, las que se encuentran declaradas
en el ciclo de vida de desarrollo de software, como parte fundamental para
asegurar un buen producto.

Los frameworks, son la evolución natural de un desarrollo de software a medida


en el que cada vez que creamos un sistema, se vuelven a generar
componentes que ya han sido desarrolladas antes. Un ejemplo son los login,
ya que aún cuando existen diferentes formas de generar un login, se puede
estandarizar y utilizar como un elemento ya creado en los nuevos software.
Otro ejemplo son las pruebas de software, las que en sus inicios se
desarrollaban de manera manual, lo que aumentaba la posibilidad de error
humano y el tiempo requerido para realizarlas, sin embargo en la actualidad
estas pruebas pueden automatizarse, aumentando la calidad y reduciendo
costos de los productos. Por lo tanto, un framework nos provee de herramientas
para desarrollar y automatizar algunos procesos.

5
1. Frameworks de automatización

Para lograr entender cómo nace el uso de frameworks, primero


debemos comprender cuál es la problemática que se buscaba
solucionar con este tipo de implementaciones, que tienen relación con
automatizar algunos procesos. Durante esta semana nos enfocaremos
en el análisis de frameworks aplicados al desarrollo de pruebas de
calidad de software. Desde este punto de vista, el ciclo de desarrollo de
software, que ustedes y han estudiado en módulos anteriores, posee la
etapa de pruebas, que es fundamental para asegurar la calidad del
producto. Sin embargo puede resultar problemático un testeo manual,
sobre todo pensando en pruebas de usuario.

Figura 1. Representación de pruebas manuales


Fuente: Cristhian Carmona, 2016

6
Algunos de los problemas que se presentan en este proceso son:

1. Equipo insuficiente para gestionar las pruebas manuales


2. Aumento de probabilidad de errores humanos
3. Testeos poco estructurados
4. Tiempo de pruebas extensos
5. Gestión de usuarios de prueba

Así la solución que se buscó fue el desarrollo de una infraestructura


capaz de soportar la realización de pruebas automáticas, reduciendo al
mínimo la probabilidad de errores humanos. Con este primer paso, nace
la idea de automatizar las pruebas e incorporarlas en un proceso formal
mediado por un software, lo que trae consigo ventajas como reducir
costos de implementación, tiempo y por sobre todo asegurar el proceso.

Figura 2. Representación del proceso de pruebas automatizadas


Fuente: Cristhian Carmona, 2016

7
Un elemento a considerar es que en la actualidad la mayoría de las
aplicaciones son web y móviles, teniendo esta tecnología un gran auge
de desarrollo, lo que se presenta como una oportunidad de negocio
para empresas las que deben acortar sus tiempos y costos de
implementación. De esta manera la automatización presenta ventajas y
desventajas en el proceso de pruebas.

Figura 3. Ventajas y desventajas de la automatización de pruebas de


software.

Fuente: Felipe Montenegro, 2022

Automatización de pruebas

Grabación de pruebas: es un enfoque en el que las pruebas son


seteadas de manera manual, capturando entradas y salida. Un ejemplo
es el software Selenium que a través de un plugin en el navegador puede
grabar las pruebas, como se muestra en la figura (en la siguiente semana
profundizaremos sobre este software).

8
Figura 4. Representación del funcionamiento de Selenium
Fuente: Cristhian Carmona, 2016

Otro enfoque utilizado en la automatización, es el desarrollo guiado por


comportamiento, que consiste en acciones para comunicar mejor los
requerimientos. Su principal objetivo es preguntar qué debería hacer la
aplicación antes y durante el proceso de desarrollo. Esto se consigue
mediante test de comportamiento o especificaciones, que son escritas
por los desarrolladores y que a continuación se encargan de
implementar, como se muestra en la figura.

9
Figura 5. Representación de enfoque guiado por comportamiento
Fuente: Cristhian Carmona, 2016

Para desarrollar un proceso de automatización de pruebas, se deben


considerar las siguientes etapas:

1. Análisis de viabilidad, que hace referencia a verificar si el aplicativo


a utilizar puede ser automatizado, debemos recordar que no todas
las aplicaciones son automatizables.
2. Seleccionar herramientas adecuadas, en esta fase se deben
seleccionar las herramientas a utilizar, las que dependen en gran
medida de la tecnología utilizada en la aplicación y sus
especificaciones.
3. Evaluar un framework, una vez que se tiene claridad sobre las
herramientas a utilizar, se debe seleccionar la forma en que se
utilizarán, donde es fundamental seleccionar un marco de trabajo
o framework, puede ocurrir que no exista uno que se adecue a
nuestro caso.
4. Prueba de concepto, se realizan pruebas en un entorno
controlado de desarrollo, verificando el funcionamiento.

10
5. Desarrollo, cuando se tiene la prueba de concepto, se procede a
desarrollar un framework (si es que no se está utilizando alguno), a
través de la programación en algún lenguaje
6. Testing y análisis, una vez el desarrollo de los scripts se haya
terminado, serán ejecutados y analizados los resultados

Para la elección de herramientas se deben considerar los lenguajes


de programación más utilizados:

JavaScript, es muy utilizado para el desarrollo web, ya que permite


controlar el comportamiento del navegador, gestión de documentos
y trabaja de una manera asincrónica.

Java, es un lenguaje utilizado para programar en web como para el


desarrollo de aplicaciones móviles.

Python, es un lenguaje muy popular y dentro de sus características


principales es que no necesita un compilador.

Así podemos definir un framework de automatización como un conjunto


de funcionalidades y herramientas que nos proveen un entorno en el
cual crear test automatizados, los que dependerán en gran medida de
la aplicación que deseamos testear, del lenguaje de programación,
tipos de prueba, entre otros.

11
2. Tipos de frameworks de automatización

Un framework se encarga de encapsular funciones genéricas y comunes


del software que se requiera, a la vez que estandariza la generación de
código. Los frameworks están en constante desarrollo y avanzan tan
rápido como la tecnología, por lo que resulta difícil clasificarlos, pero los
más utilizados son:

Data driven: Se basan en que reciben los parámetros de las pruebas


(dataset) en algún tipo de archivo o a través de conexión a una base
de datos. Con esto, se logra que las pruebas sean independientes de los
datos de entrada, pudiéndose ejecutar con valores diferentes.

Keyword driven: consiste en identificar una serie de palabras clave y


asignarles a cada una acciones que se estimen convenientes, utilizando
tablas. Por ejemplo, login o cerrar ventana.

Modular: este tipo de framework incluye la creación de scripts pequeños


e independientes que representan módulos, secciones y funciones de la
aplicación a probar, permitiendo una mejor mantenibilidad y
actualización de las pruebas.

Behavior Driven Development: utilizan lenguaje natural, para la


especificación de las pruebas, con el objetivo de que las mismas sean
entendibles tanto para analistas de negocio como para desarrolladores
y testers.

12
Hybrid: cada uno de los tipos de framework anteriormente mencionados
cuenta con una serie de ventajas, por lo que es usual que los frameworks
de automatización que se utilizan cuenten con un híbrido de dos o más
de ellos; especialmente la parte de modularización y utilización de data
sets.

3. Áreas de aplicación de frameworks

Un framework, nos permite gestionar el desarrollo de un proyecto y


reducir su tiempo de ejecución. Desde el punto de vista de la
programación podemos obtener un código más limpio y consistente, de
manera rápida y eficaz. El framework ofrece una estructura base que los
programadores pueden complementar o modificar según sus objetivos.
Por otro lado, no solo pueden ser implementados en la programación,
ya que sus características favorecen el trabajo colaborativo, minimizan
la posibilidad de riesgo y facilitan el acceso a la información. Todos estos
puntos son muy importantes en cualquier tipo de proyecto, pero nos
centraremos como ejemplo en el desarrollo de una estrategia de
marketing. Cuando se busca definir el perfil de un usuario en base a la
interacción que desarrolle con un sitio web, es un proceso automatizable
o el uso de framework como AARRR que selecciona una técnica de
marketing en función del momento de cliente, o sea, si este es
recurrente, nunca ha comprado, es comprador regular, etc.
Un marco de trabajo o framework, nos invita a utilizar lo que ya
conocemos y optimizar nuestro desarrollo en función de esta

13
información, lo que nos permitirá obtener mejores resultados en
cualquier área.

4. Ejemplos de frameworks: análisis de casos

Para comprender el funcionamiento de los frameworks, nos centraremos


en la herramienta Selenium Webdriver, la que podemos analizar desde
dos puntos de vista: un enfoque conceptual y uno técnico. Para
explicarlo mejor consideraremos la analogía de conducción de un taxi.

Enfoque conceptual:

1. El cliente da a conocer el destino y la ruta al taxista


2. El taxista ejecuta una serie de acciones para cumplir con el
requerimiento del cliente.
3. El auto ejecuta procedimientos en base a las instrucciones del
taxista

Figura 6. Representación del taxi, enfoque conceptual.


Fuente: Cristhian Carmona, 2016

14
Este mismo proceso analizado desde la automatización con un enfoque
técnico, también tendría 3 actores:

1. El ingeniero de pruebas, quien escribe el código de la


automatización, que a su vez, envía solicitudes al controlador del
navegador.
2. El controlador del navegador, ejecuta las solicitudes del ingeniero
de pruebas y envía sus propias solicitudes al navegador.
3. El navegador, que ejecuta las solicitudes del controlador del
navegador.

Así, el ingeniero de pruebas sería el cliente del taxi, el controlador del


navegador como el taxista y el navegador el taxi. Si se fijan. Todo el
proceso se basa en la comunicación, la que desde el punto de vista
técnico sería:

Figura 7. Punto de vista técnico


Fuente: Felipe Montenegro, 2022

15
Cierre
En la siguiente figura, podremos observar el proceso necesario para
realizar el análisis de un framework adecuado a lo que se necesitamos,
hasta la culminación del análisis posterior a los resultados.

Figura 8. Ideas claves semana 4


Fuente: Felipe Montenegro, 2022

16
Referencias bibliográficas

Cabraca, M. (2020), QA: ¿Necesito un Framework de Automatización?,


https://www.encora.com/es/blog/qa-necesito-un-framework-de-
automatizacion

Carmona, C. (2016), INFRAESTRUCTURA PARA LA AUTOMATIZACIÓN DE


PROCESOS DE SOFTWARE ENFOQUE SOBRE TESTING Y CALIDAD

Freepik (s.f). Hands robot human [Imagen].


https://www.freepik.com/premium-photo/hands-robot-human-
touching-global-virtual-network-connection-future-
interface_5284740.htm#query=automation&from_query=auto
matizaci%C3%B3n&position=5&from_view=search

Freepik (s.f). Smart industry robot [Imagen].


https://www.freepik.com/premium-photo/smart-industry-robot-
arms-digital-factory-production-
technology_10517888.htm#&position=0&from_view=detail#&p
osition=0&from_view=detail

17

También podría gustarte