Está en la página 1de 11

Listado de temas

➔ ¿Qué es automatizar?
➔ Mitos en la automatizacion
➔ Cuando automatizar
➔ ¿Para qué se automatiza?
➔ Ventajas y desventajas de automatizar las pruebas de un software
➔ Manual vs Automatizado
➔ Tipos de pruebas a automatizar
➔ Enfoques de la automatización
➔ Algunas herramientas para automatizar pruebas (Katalon y Selenium)

1
Que es la automatizacion de pruebas?

Las pruebas automatizadas consisten en la aplicación de herramientas de software


para automatizar el proceso manual de revisión y validación de un producto de
software que lleva a cabo una persona.

Consiste en el uso de una herramienta de software para controlar y configurar las


condiciones previas a las pruebas, la ejecución de las pruebas y la comparación de
los resultados reales contra los resultados esperados.

Mitos en la automatizacion de pruebas

● Se puede automatizar todo? :

¡No! .Sabemos que una aplicación no se puede probar a fondo nunca. Por
ende, nunca se puede automatizar todo tampoco.

● Las pruebas automatizadas son demasiado costosas:

Si y no. En una primera instancia, la inversión es alta, pero el mismo con el


tiempo se beneficia y su costo baja mucho.

● Es fácil, solo es instalar o comprar una herramienta:

¡No! . A pesar de que existan herramientas que hagan la labor más sencilla,
automatizar es una de las partes más complejas del ciclo de desarrollo.

● Automatización reemplazará a pruebas manuales:

No. Es el error más grande de todos. La automatización ayuda a lo manual,


pero nunca podrá reemplazarlo.

Según Context-Driven Testing School, los siguientes siete principios ayudan a


comprender el objetivo del testing, ya sea manual o automatizado:

● El valor de cualquier práctica depende de su contexto.


● Hay buenas prácticas en contexto, pero no hay “buenas prácticas”.
● Las personas, trabajando juntas, son la parte más importante del contexto
de cualquier proyecto.

2
● Los proyectos no son estáticos y a menudo toman caminos impredecibles.
● El producto es una solución. Si el problema no se resuelve, el producto no
funcionará.
● El testing de software es un proceso intelectual desafiante.
● Solo a través del juicio y la habilidad, practicados cooperativamente durante
todo el proyecto, podremos hacer las cosas correctas en el momento
adecuado para probar nuestros productos de manera efectiva.

Estos siete principios fueron propuestos por Cem Kaner, James Bach y Brett
Pettichord en su libro “Lecciones aprendidas en Software Testing: un enfoque
basado en el contexto“.

¿Cuándo algo se considera Automatizable?

Esta suele ser una de las preguntas más comunes entre los testers. Y es que saber
cuándo automatizar pruebas de software implica evaluar la inversión potencial, el
enfoque, los beneficios y lo que es más importante, el conocimiento actual del
proceso manual.

En primer lugar, tenemos que entender completamente y convertirnos en


expertos en el proceso manual, y solo entonces es posible automatizar.

El conocimiento completo del proceso manual es el pilar para saber cuándo algo
es automatizable, lo que implica que las pruebas manuales no son
completamente sustituibles.

Para que se automatiza?

Históricamente, la automatización surgió para reducir el esfuerzo humano


requerido en actividades que podrían ser replicadas por un sistema o máquina
programable. Al automatizar pruebas de software se persigue el objetivo de
simplificar el trabajo dispendioso, repetitivo o complejo, haciéndolo efectivo y más
productivo.

De esta manera, es posible ahorrar energía, tiempo y costos, al tiempo que libera a
las personas para que se concentren en otras tareas.

Otras razones:

● Simplificar el trabajo tedioso y repetitivo


● Reducir tiempos de despliegue
● Reducir tiempo al encontrar bugs
● Reducir tiempos al construir
● Reducir tiempos de retroalimentación
● Recibir un feedback inmediato
● Eficiencia de la ejecución (más rápido, en cualquier horario, se puede correr

3
cuando se desee)
● Incrementa productividad (permite hacer más cosas al tester)

Ventajas y desventajas en la automatización

Ventajas
➔ Mayor cobertura de las pruebas.
➔ Reduce el tiempo de ejecución de pruebas.
➔ Reduce costos de software a largo plazo.
➔ Eliminación de los trabajos rutinarios.
➔ Reducción del tiempo empleado en procesar la información.
➔ Fiabilidad técnica en procesos y en operación de equipos.
➔ Ser competitivos frente al cliente.
➔ Mejorar y optimizar la implementación del análisis, de las funciones y del
diagnóstico.
➔ Mejora de la calidad de producto.

Desventajas
➔ Lentitud y dificultad de adaptación a los cambios de un proceso ya
automatizado para producir otros modelos diferentes.
➔ Requiere especialización por parte del personal.
➔ Requiere gran cantidad de tiempo al inicio.
➔ La inversión en equipos puede ser más costosa.

¿Qué aspectos debemos tener en cuenta al automatizar?

● Aquellos casos de pruebas que se ejecutan varias veces (tareas repetitivas)


● Se centran en áreas de riesgo de la aplicación
● Aquellos casos de prueba que manejen alto volumen de datos
● Funcionalidades que son prioritarias para el negocio
● Funcionalidades que presenten altos grados de errores
● Pruebas que sean necesarias ejecutar contra múltiples dispositivos, SO y

4
navegadores.

No es recomendable automatizar:
● Cuando las funcionalidades no están completamente desarrolladas
● En funcionalidades que no tienen resultados predecibles

Manual vs. Automatizado

Cuando un proyecto apuesta por automatizar pruebas de software, idealmente


debería tener una base sólida comenzando con los casos de prueba unitarios,
evitando tantos errores como sea posible.

Esta automatización debe contar con una retroalimentación inmediata y


continuar sucesivamente a las diferentes capas. De esta forma, las pruebas
manuales y exploratorias son más valiosas en el nivel de la interfaz de usuario,
centrándose en aquellas pruebas que no son posibles de automatizar.

Este concepto lo explica detalladamente la pirámide de automatización de


pruebas de Mike Cohn:

A la izquierda, vemos cómo se realiza comúnmente la automatización y a la


derecha, podemos ver la forma ideal, donde las pruebas unitarias tienen el mayor
peso en la pirámide.

Piramide de cohon

5
El objetivo es obtener resultados rápidos sin perder de vista la estrategia ni
apresurarse a elegir herramientas que prometan fórmulas mágicas.
La pirámide de automatización consiste en desarrollar una estrategia de testing
por capas donde en la capa inferior se acumula el conjunto más grande y en la
superior, el más pequeño.
Por lo tanto, la parte más amplia será la que ofrezca mayor velocidad y eficiencia
en costos, variables que disminuyen a medida que se asciende en la pirámide.

Con este criterio, comenzando por la base se ubican los test automatizados
unitarios: son los que brindan feedback muy específico y muy rápido. En el
extremo superior se ubican los test de usuario, que repasan la aplicación
completa de punta a punta a través de la interfaz del usuario.

Lo ideal es que haya muchos de los primeros y muy pocos de estos últimos, ya
que son frágiles, propensos a errores y muy costosos de mantener.

En el medio de la pirámide, por su parte, se agrupan las pruebas que testean las
funcionalidades y los servicios provistos por la aplicación por debajo de la interfaz
del usuario.

Son más abarcativos que los unitarios (no se concentran en un componente


aislado, sino que permiten implementar una funcionalidad del negocio) y más
controlables que los de usuario. Por eso, resueltas la base y la punta, el esfuerzo
debe concentrarse en este segmento.

En resumen, una buena estrategia de pirámide de automatización acelera la


ejecución, entrega más estabilidad, incrementa la eficiencia en el análisis de
errores y maximiza el ROI.

Aunque existen diferencias entre pruebas automatizadas y pruebas manuales, no


son mutuamente excluyentes. Más bien se consideran tareas complementarias en
la búsqueda de una mejor calidad de software.

Si pensamos en el retorno de la inversión de las pruebas, probar una nueva


funcionalidad manualmente le permite conocer más sobre la aplicación, a bajo
costo y rápidamente.

A medida que se adquiere conocimiento, el inventario de pruebas aumenta. En


consecuencia, el costo también sube para las pruebas manuales.

Por otro lado, la automatización tiene un costo inicial más alto que disminuye a
medida que avanza.

6
Analizando el grafico,, vemos que la automatización tiene una gran inversión
inicial hasta el “punto de quiebre” donde comenzamos a ver el impacto positivo
que genera en los costos a largo plazo.

En contraste con las pruebas manuales, para lo cual podemos estimar que ambas
actividades de pruebas son totalmente compatibles, generando beneficios a
corto y largo plazo.

Tipos de prueba para automatizar

A gran escala, los tipos de automatizaciones más utilizados son:


● Las pruebas unitarias.
● Las pruebas de API.
● Las pruebas de interfaz gráfica.
● Las pruebas de performance.

Pruebas Unitarias
Las pruebas unitarias generalmente son realizadas por los desarrolladores. Estas
pruebas se escriben para probar el nivel de código. Existen numerosos frameworks
para la automatización de pruebas unitarias. Algunos de los más conocidos son
NUnit, Jasmine, Junit, Unit, js, QUnit, etc.

7
Pruebas de api
Con las pruebas automatizadas de API, se prueban la funcionalidad, el
cumplimiento y los problemas de seguridad, y si está probando una aplicación
web, también se examina la seguridad de Solicitud y Respuesta. Para las pruebas
de API automatizadas, puede usar LambdaTest, Postman o Insomnia que está
disponible en versiones gratuitas y de pago.

Pruebas de interfaz grafica


Las pruebas de automatización de interfaz suplantan las mismas acciones que los
usuarios realizan con su mouse y teclado en la interfaz de usuario.
Existen múltiples herramientas de prueba de interfaz de usuario, como Selenium,
Cypress, Robot y Appium que son unas de las más conocidas.

Pruebas de performance
Son aquellas pruebas que determinan cómo la estabilidad, la velocidad, la
escalabilidad y la capacidad de respuesta de una aplicación se mantiene bajo una
determinada carga de trabajo. Como es imposible muchas veces suplantar N
cantidad de usuarios al mismo tiempo, es necesario automatizar este tipo de
pruebas.

8
Enfoques de automatización
¿Qué son los Enfoques?: formas o técnicas que vamos a usar para automatizar y
las herramientas que vamos a seleccionar para automatizar.

Scripting: hablamos de código. Generar scripts que puedan ser en algún lenguaje
de programación que nosotros manejemos del paso a paso de la prueba. Donde
lo ejecutamos a través de un software. Desventajas: escribir los script lleva mucho
tiempo y conocimiento. La ejecución sera 5 veces mas rápida que una prueba
manual. Herramienta más conocida: Selenium web driver. Hay que saber
programar, se pueden usar varios lenguajes de programación.

Record and Play: Grabar y reproducir. No es necesario programar. ventaja: si no


les gusta programar, es lo ideal. Hacemos la prueba de forma manual, el sistma
las graba y después se ejecutan en el mismo software. Desventaja: son más
limitantes en utilización de variables y en lógica.

Herramientas

Seleccionar la herramienta que vamos a utilizar puede ser una de las más
complejas de analizar inicialmente, dado el número de herramientas disponibles.

No obstante, la decisión tendrá que considerar el proyecto, el presupuesto, el


conocimiento y la experiencia de los involucrados.

Selenium

Selenium es una herramienta de código abierto, ampliamente aceptada en todo el


mundo para probar aplicaciones web en diferentes navegadores y plataformas.

En el mercado podemos encontrar Selenium en tres variantes:

● Selenium IDE: está destinado a programar pequeños flujos de navegación,


y al mismo tiempo nos ofrece un pequeño entorno de desarrollo para este
fin. En dicho entorno nos permitirá tanto grabar, modificar cómo
reproducir las pruebas que tengamos previsto realizar.

● Selenium Webdriver: sin tener un entorno de desarrollo, nos ofrece las


librerías principales del framework, sobre las que podremos codificar todas
las pruebas que queramos realizar. A través de Selenium Webdriver y un
controlador independiente de cada navegador, podremos automatizar
estos flujos web.

● Selenium Grid: aprovechando la característica de esta tercera modalidad


de Selenium, podremos expandir las posibilidades de Selenium Webdriver
a multitud de equipos, desde los cuales ejecutar todas esas pruebas
remotamente. Esto se puede hacer simplemente teniendo instalado un
servicio de Selenium Grip y conectándonos a ellos a través de Selenium
Webdriver, podremos manejar la ejecución de todas las pruebas que
queramos en distintos navegadores como Chrome, Firefox, Opera, Safari,

9
etcétera.

Katalon Studio

Katalon Studio es una herramienta de automatización gratuita para pruebas de


API, web y móviles, y en ella se integran todos los componentes indispensables
para que su uso sea más fácil para los nuevos usuarios.

Debido a que es una GUI simple y fácil de usar, no es necesario que los usuarios
cuenten con conocimientos previos, pero, aun así cuenta con capacidades
avanzadas para los usuarios más experimentados con esta herramienta.

También ofrece una gran variedad de funciones con las cuales se puede
automatizar todos los casos de prueba WEB, generar reportes y se envían
automáticamente a todo el equipo de trabajo sin mayor complicación.

Características de Katalon Studio:

● Permite automatizar aplicaciones Web, Mobile, Desktop y API’s

● Posee Record and play

● Permite la captura de objetos utilizando un Object Spy

● Crea automáticamente un repositorio de objetos, facilitando el

mantenimiento de los tests automáticos

● Soporta Java y Groovy

● Integración con Git, Github, Jenkins, Jira, etc

● Crear informes de resultados en diferentes formatos

● Envío de reportes Automáticos

Ventajas de utilizar Katalon Studio:

● Fácil de instalar

● Facilidad de uso, con record & play y keywords predefinidas

● Posee Scripting mode para los usuarios más avanzados

● Simplicidad para realizar cross browser testing

● Reportes automáticos

10
● Facilidad de integración con otras aplicaciones, tales como Jira, Git, Jenkins

etc.

Appium

Appium es otra herramienta open source basada en Selenium que se puede


emplear para automatizar las pruebas, principalmente en dispositivos móviles para
iOS y Android.

Cucumber

Cucumber es parte del enfoque BDD (Behavior Driven Development) y su principal


ventaja es la facilidad de uso, ya que es muy intuitiva.

Ghost Inspector

Lo más interesante de Ghost Inspector es que nos permite automatizar sin saber
codificar, lo que la convierte en una herramienta ideal para principiantes. Esta
herramienta solo permite 100 ejecuciones gratuitas por mes.

11

También podría gustarte