Iniciar en el mundo del TESTING AUTOMATIZADO ✍
Tags: javascript, python, selenium, beginners
Published: 2021-05-11 19:21:59

Ahhhh... El mundo del **testing**, es un lugar que a veces puede estar lleno de caos y algunas otras es el lugar más pacifico del mundo.

No podemos negar que las pruebas en el desarrollo son nuestro pan de cada día, todo añadido o cambio realizado en nuestro software debería de ser probado (en teoría 😝), en todo flujo de desarrollo las pruebas debería de ser algo implícito y no ser algo que se tome a la ligera o se deje para el final.

Entonces teniendo esto en consideración, de aquí parten las pruebas automatizadas. Todos hemos realizado pruebas después de algún cambio y validar si este se había hecho correctamente; lo que nos proporcionan las pruebas automatizadas es que en el caso de que estemos intentando validar un login por ejemplo, el ingresar usuario y contraseña cientos de veces para comprobar que este funcionando, puede ser una cuestión que nos lleve, si bien no mucho tiempo, se puede acumular causando que nos retrasemos en alguna otra de nuestras tareas.

Las pruebas automatizadas nos ayudan a manejar esto de forma sencilla, con un simple script (ahora conoceremos un poco más de esto), podemos crear una prueba la cual haga nuestras tareas de validaciones mucho más sencillas. Y tal vez podamos pensar que este tipo de pruebas solo sean necesarias para sistemas los cuales sean muy grandes, pero esto no puede estar más alejado de la verdad, pues aunque tengamos un sistema sencillo el cual solo consulta a una API y la muestra, las pruebas automatizadas nos pueden permitir que se ejecute X cantidad de veces en un lapso, y con esto validamos si la llamada y la consulta a la API está funcionando correctamente.

La automatización pues no es más alejado a como lo conocemos, esta se encargara de hacer los pasos que normalmente nosotros haríamos, eso significa que debemos de tener un flujo de pasos a seguir para completar una prueba, esto es importante a mencionar, ya que cuando nosotros normalmente realizamos pruebas, no tomamos en cuenta que pasos estamos siguiendo para validar esa acción, el crear estas pruebas también nos permite darnos cuenta de los flujos que tienen nuestros sistemas.

## Conocimientos previos 🧠
La creación de pruebas es algo sumamente importante por lo tanto, debemos conocer que flujos vamos a aplicar y que pasos se van a seguir, si no definimos esto desde antes puede llevarnos aun más tiempo el querer desarrollar pruebas de forma improvisada.

Afortunadamente las pruebas automatizadas puedes desarrollarse en múltiples lenguajes, podemos usar desde Python hasta Javascript, así que con tan solo tener algunos conocimientos en alguno de estos lenguajes podemos comenzar a desarrollar esta automatización.

En el caso de las pruebas que se realizan sobre Front-End podemos investigar acerca de [X-Path] (https://www.javatpoint.com/what-is-xpath) o [CSS Selector](https://developer.mozilla.org/es/docs/Learn/CSS/Building_blocks/Selectors) Para hacer uso de la automatización de elementos que se encuentren en nuestra pagina.

## Herramientas (para la realización de pruebas) 🔨

El framework para la realización de pruebas más famoso, es [SELENIUM] (https://www.guru99.com/introduction-to-selenium.html) este framework se encuentra en múltiples lenguajes. Algunas ventajas de Selenium sobre otro tipo de frameworks es el uso de Selenium Grid, el cual nos permite ejecutar múltiples pruebas de forma simultanea de forma muy sencilla.

Para el lado de Javascript si bien tenemos Selenium existen diferentes tipos de herramientas tal vez un poco más actualizadas, como es el caso de Cypress, el cual es una herramienta que se encuentra en constante actualización y nos proporciona una ayuda visual para la creación de las pruebas y la selección de elementos de nuestra página.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l6lb5v5z71q8k9cm6695.png)

Cypress de igual manera que Selenium nos da la capacidad de ejecutar pruebas de manera paralela con su [Dashboard] (https://www.cypress.io/dashboard/) pero ese tema para otro articulo.

Otras herramientas que también recomiendo conocer un poco son [Mocha] (https://mochajs.org/) y [Cucumber] (https://cucumber.io/).

## Conclusiones 🔴

Como hemos visto existen diferentes herramientas de automatización y el que se encuentren en múltiples lenguajes, nos ayuda a que podamos adentrarnos mucho más en aprender este tipo de tecnologías.

Las pruebas en el flujo de desarrollo puede llegar a ser algo muy infravalorado sin embargo, estas nos pueden llegar a asegurar la calidad de nuestros sistemas.

Así pues, que esperas, la automatización es un mundo muy divertido y con mucha información para conocer mucho más.

**Keep coding** 😎