Software Testing

Pasos para automatizar pruebas de software

Por Pablo Hernández Castillo, Automation Tester en Financial Solutions

Realizar pruebas mientras desarrollamos software es totalmente común, siempre con el objetivo de entregar calidad en lo que estamos creando.

La automatización de pruebas no busca sustituir a las pruebas manuales, pero debemos tener en cuenta el factor humano, ya que al realizar pruebas tediosas una y otra vez de forma manual, lo único que nos genera es pérdida de tiempo que podríamos emplear en seguir desarrollando.

Lo que se busca conseguir con la automatización de pruebas es:                                            

1. Reducir tiempos en la ejecución
2. Incrementar la efectividad
3. Mejorar la productividad 
4. Obtener retroalimentación inmediata

¿En qué consiste?

Consiste en hacer uso de herramientas de automation testing para desarrollar casos de prueba automatizados, que normalmente realizaríamos de forma manual. Esto se logra generando una prueba mediante programación, replicando el flujo que normalmente nosotros realizaríamos para una prueba manual.

Para generar las pruebas, previo a ponernos a codificar debemos de tener en mente ciertos factores para comenzar con este proceso los cuales son:

1. Seleccionar una herramienta 

Existen diferentes herramientas para la creación y desarrollo de pruebas, sin embargo, algunas tendrán más o menos opciones que otras.

Debemos de tener presente desde un inicio sobre qué tipo de sistema automatizaremos, evidentemente no es lo mismo automatizar una plataforma, instalada en nuestro escritorio a uno que esté sobre un sistema web. Por lo tanto, debemos conocer bien la base del sistema en el cual realizaremos las pruebas.

Algunas de las herramientas más famosas para automatizar en diferentes escenarios son:

Sistemas web

  • Selenium
  • Cypress
  • Mocha

Sistemas de escritorio

  • Winium
  • WinAppDriver
  • Ranorex

2. Definir el alcance de las pruebas 

Tal vez esta es la parte más importante de todas, ya que aquí́ se define lo productivo que seremos con el diseño y el desarrollo, hay que recordar que estas, tienen un objetivo corto y conciso, no debemos extendernos demasiado con lo que sé está llevando a cabo, ya que entre más se extienda una prueba, existe una mayor probabilidad de que esta falle.

Puedes conocer un poco más acerca de la definición y alcance de pruebas en nuestro blog –> [Define un plan de pruebas eficaz] https://bit.ly/3pxgGjD

3. Diseñar y desarrollar 

Una vez que ya contamos con nuestro alcance, comenzamos a diseñar nuestra automatización, hay que definir los pasos a seguir y hay que saber que nos podemos encontrar al momento de estar en ejecución, cada factor debemos tomarlo en cuenta para cumplir con un diseño claro.

Desarrollarlo es la parte divertida del proceso, este es el punto donde replicaremos cómo se comportaría una persona en nuestro sistema, cuánto tardaría en pasar de X a Y elemento o qué haría si se encuentra con algún elemento extraño. El mayor problema que podemos llegar a tener desarrollando nuestra prueba, es no apegarnos lo suficiente al diseño antes planeado, lo que ocasionará que nuestra prueba no de los resultados esperados.

4. Ejecución de pruebas

Ya con todas nuestras pruebas desarrolladas en su totalidad, podemos comenzar con la ejecución, manejándolas de forma unitaria para que cuando se realice un cambio en un módulo especifico, se ejecute solo esa prueba o bien de manera integrada para comprobar si algún cambio realizado en el sistema no afecta alguna otra parte.

5. Mantenimiento 

Después de cada prueba obtendremos nuestra retroalimentación, esta nos servirá́ para saber si la prueba se realizó de forma correcta o si bien, hay que modificar algo en nuestro diseño para poder mejorar nuestro porcentaje de éxito.

No olvidemos que cada cambio en nuestro sistema puede afectar nuestras pruebas, por lo tanto, es necesario darles mantenimiento constante para confirmar que todo sigue en orden.

6. Implementación 

Este puede llegar a ser un proceso totalmente opcional, sin embargo, puede ahorrarnos todavía aún más trabajo.

Supongamos que tenemos un sistema web, el cual tiene sus 4 principales ramas: Desarrollo, QA, Producción y Diseño, existen dashboards (dependiendo de la herramienta que utilicemos) los cuales, nos permitirán hacer la sincronización con nuestro repositorio, con el fin de centralizar las pruebas a ejecutar en una sola herramienta.

Los dashboards son herramientas que nos ayudarán a visualizar de manera clara las diferentes pruebas que ejecutaremos en el sistema, el tiempo promedio de ejecución y hasta la capacidad de dividir la carga de trabajo, en diferentes nodos con el objetivo de mejorar, el tiempo que lleve a cabo realizar las pruebas, de esta manera cada vez que se detecte un cambio, en cualquiera de nuestras ramas, nuestras pruebas previamente definidas y desarrolladas se ejecutarán, dándonos esta retroalimentación inmediata, sin nosotros tener que realizar pruebas manuales o ejecutar la automatización por nuestra cuenta, generando así una integración continua con lo que se esté desarrollando.

En conclusión…

Las pruebas automatizadas nos permiten ahorrar tiempo en la creación de una aplicación, tiempo que la mayoría de las veces es necesario. De la misma forma que se menciona al inicio, debemos recordar que esto no es una batalla entre pruebas manuales y automatizadas, es buscar generar un nexo entre estas dos para poder tener una mayor productividad y fiabilidad.

En Financial Solutions, usamos la automatización, con el fin de mejorar día con día el software que desarrollamos, buscamos utilizar las mejores herramientas que se adecuen a cada caso y gracias a esto, hemos podido incrementar nuestra productividad, para seguir entregando el alto estándar de calidad que nos caracteriza.

Related Post

Contactar a un especialista