Tu empresa está pensando en automatizar? Beneficios y riesgos aquí

Recientemente una amiga me comentó que en su empresa están pensando en automatizar, por lo que se me ocurrió escribir este articulo en base a mi experiencia previa sobre los grandes beneficios que tiene la automatización, pero también hablar sobre los riesgos que tenemos al emprender esta tarea.

A lo largo del tiempo que llevo automatizando en distintos proyectos, he notado que muchas veces los clientes no tienen mucha idea del porqué precisan automatizar, o el caso al revés, no entienden que lo mejor para ellos es automatizar las pruebas.

Antes de comenzar a detallar los beneficios quiero aclarar que automatizar las pruebas no solucionará todos los problemas que tenemos, y si no se realiza de la forma correcta el resultado muchas veces termina siendo negativo y termina ocurriendo que empezamos a pensar en cosas como  : “Automatizar no sirve”, “Trae mas problemas que soluciones”, “Es una pérdida de tiempo”, etc.

Algunos beneficios que personalmente veo al comenzar a automatizar son :

  • Mejor organización de las pruebas. Al automatizar (y dependiendo de nuestra prolijidad y del framework que usemos) creamos test cases que son parte de distintos test plan. Estos test cases pueden ser “taggeados” de manera de ser fácilmente identificable, podemos agrupar casos de prueba según funcionalidades, según el código del ticket, etc.
  • El equipo se siente mas motivado. A lo largo de los años he notado que si bien puede no suceder en todos los casos (recordemos que hay distintos tipos de testing, y uno se profesionaliza en el que se siente mas cómodo y le gusta más), el tester acepta con mucho entusiasmo la idea de empezar a automatizar, de dejar de ejecutar de forma manual constantemente lo mismo día tras día, y empezar a tener otra responsabilidad mas, lo que en general lleva a que se sienta mas motivado.
  • Ejecución de un mayor numero de pruebas y en menor tiempo. Claramente no es lo mismo abrir una web de forma manual, y probar distintos set de datos de prueba en un formulario de 50 campos a mano, que hacerlo de forma automatizada. Obviamente ejecutaremos en un menor tiempo y podemos probar infinitos casos que seguramente de forma manual no lo hacemos por el tiempo que nos lleva.
  • Ejecución de pruebas complejas. En un escenario en el que necesitamos hacer una acción en un dispositivo móvil, luego pasar a la aplicación web, actualizar un campo en la base de datos, consultar 3 servicios REST y finalizar la ejecución realizando una acción en un backoffice, el tiempo de ejecución de forma manual es MUY largo, tedioso y donde podemos tener errores. De forma automatizada podemos lograr todo esto de forma simple, sin errores y en un tiempo relativamente corto. Lo mejor… podemos ejecutarlo cuantas veces queramos.
  • Permite enfocar a los testers en planear pruebas mas complejas y no tanto en ejecutarlas. Muchas veces tenemos 2.. 3.. 4 testers senior con años de experiencia.. ejecutando, cuando en realidad esa experiencia la podemos utilizar mas en pensar distintos escenarios.. en pensar pruebas complejas.. como atacar una funcionalidad. La automatización se encarga de ejecutar, ellos de pensar.
  • Mejora sustancial en los tiempos de entrega. Cuantas veces nos han pedido ejecutar una regresión en 3 dias porque se tiene que salir a producción rapidamente? Y NO VAYAMOS A ENCONTRAR BUGS! hay que ir a pelear los tiempos.. aplazar la entrega.. luego llega la discusión de siempre de… “siempre nos mandan las cosas al final”, etc. Si tenemos automatizada una regresión.. la ejecución es cuestión de minutos u horas y los resultados son instantáneos.
  • Mayor cobertura. Al automatizar una funcionalidad luego pasamos a otra.. y a otra.. y a otra.. y cada vez que ejecutamos tenemos mas casos de prueba que la ejecución anterior, lo que permite tener una mayor cobertura de los tests.
  • Mayor comunicación con el equipo de desarrollo. Pasamos a hablar el mismo idioma.. y DEFINITIVAMENTE vamos a precisar su ayuda, necesitamos que nos den servicios, queries, que nos ayuden agregando id’s a los elementos, etc. Va a mejorar sustancialmente la comunicación con desarrollo.
  • Cambio en la forma de pensar del tester, empieza a pensar mas como desarrollador, lo que le permite encontrar otro tipo de bugs.

Pero no todo es color rosa, la automatización no es para cualquiera, y como todo en la vida… hay que asumir riesgos y responsabilidades.

  • Cuesta dinero. Esto no es gratis, primero que nada los testers automatizadores tienen una tarifa mas alta en lo que respecta al sueldo. Si tienes testers manuales y quieres enseñarles a automatizar… tendrás que pagar a alguna empresa para que les enseñe, o permitirles investigar en horario laboral lo que llevará a que consumirás tiempo de testing en entrenamiento.
  • Inversión en plataformas pagas o dispositivos. A medida que vamos avanzando en la cantidad de tests vamos a necesitar ejecutar en diversos dispositivos (si estamos hablando de algo mobile) o de ejecutar varias pruebas en simultáneo. La mejor opción son las plataformas web en la nube, como SauceLabs o BrowserStack, los cuales tienen un costo que tendremos que asumir. La otra opción es comprar dispositivos y PCS y armar nuestra granja, pero igual sigue habiendo inversión.
  • Lleva tiempo. Este es el punto mas importante. Armar un framework, analizar las necesidades del negocio, estimar, priorizar, comenzar a automatizar… ir aumentando funcionalidades y luego solucionar lo que rompimos… todo esto lleva tiempo, el tener algo estable puede demorar un tiempo considerable que tendremos que asumir, nada se crea de un día al otro.
  • Hay que mantener lo creado. Las pruebas automatizadas llevan mantenimiento. Cuando automatizamos es porque estamos automatizando una aplicación que dependiendo del grado de madurez… tendrá cambios en el corto o mediano plazo. Estos cambios afectan a los tests y tendremos que mantenerlos para que no rompan.
  • Tiene que ir acompañado de una buena metodología de trabajo. Automatizar no soluciona los problemas que tengamos como equipo, para esto existen distintas metodologías de trabajo que tendremos que analizar para ver en cual la automatización puede implementarse y aumentar los resultados de forma positiva.
  • La conformación del equipo es importante. La experiencia de los tester es fundamental en este punto, lo ideal es tener al menos a un automatizador senior para armar el framework y al menos algún semi-senior. Tenemos que ver cual es la realidad de nuestra empresa y analizar a cuantos necesitamos.

En resumen, hay que analizar múltiples factores antes de comenzar a automatizar, no es una tarea sencilla pero sí es satisfactoria y si se hace de buena manera tendremos resultados alentadores que le añadirá un valor importantísimo al negocio.

6 comentarios sobre “Tu empresa está pensando en automatizar? Beneficios y riesgos aquí

Agrega el tuyo

  1. Muy bueno Maxi!!

    Aprovecho a pedirte un punto de vista, ya que sé que tenés mucha experiencia automatizando pruebas en Ruby (de hecho, ahora que lo estoy haciendo, recuerdo todos los beneficios que me comentaste, y realmente estoy bien enganchado con la tecnología, está muy bueno el mundillo Ruby, realmente me está gustando).

    Bueno, a lo que voy es que estoy viendo de usar Selenium o Watir.
    Acá dejé mis argumentos y dudas, si tenés algo para comentarme, estaré más que agradecido
    https://www.federico-toledo.com/selenium-vs-watir/

    Abrazo

    Me gusta

    1. Muchas gracias Fede!
      Me alegro que te haya gustado Ruby, es tremendo lenguaje :P. Mirá, yo probé ambos con Ruby, y no tengo algo bien fundamentado como para decirte.. elegi esto o lo otro. Los dos son buenos, yo en lo personal me manejé mejor con Watir, me pareció un poco mas estable a la hora de ejecutar, y que tenias alguna funcion mas, ya que es lo mismo que selenium pero con una capa mas por arriba. Obviamente en Selenium tenes toda la comunidad, pero creeme que en cuanto a codigo no cambia mucho, no es que tengas que aprender cosas nuevas ni nada, se maneja casi igual que con selenium, es mas el core lo que cambia y el como realizar ciertas acciones, pero que lo hacen mas simple en realidad, ponele..

      – Si queres clickear no tenes que hacer elemento.click, sino que le decis elemento nomas y ya clickea.
      – Si queres escribir no tenes que hacer elemento.sendkeys “hola”, sino que le decis elemento = “hola” y pronto.

      Las ventajas que yo le vi es que esperaba a que la pagina estuviera totalmente cargada para empezar a ejecutar por ejemplo, lo cual lo hacia mas estable, y me gustaba el escribir menos jaja.

      Igualmente cualquiera de los 2 es bueno.

      Abrazo!

      Le gusta a 1 persona

  2. Buenas noches Maximiliano disculpa como puedo comenzar a investigar sobre como ser un tester asi como sus funciones y ¿cual es el objetivo del mismo? la verdad no se por donde comenzar a investigar y como planear pruebas para x sistema, la planeacionm automatizacion e implementacion

    Me gusta

    1. Buenas tardes José. Este blog está enfocado mas a lo que respecta a automatizacion, pero te puedo recomendar algunos lugares para que vayas leyendo. Tienes el blog de Federico Toledo, quien ha dado varias conferencias en nuestro pais https://www.federico-toledo.com/, tambien te puedo recomendar paginas como la del CES (centro de ensayos de software) o el blog de Javier Garzas el cual es muy concurrido (www.javiergarzas.com).
      A su vez te cuento que hoy en dia hay varios cursos en algunas instituciones sobre testing, acá en Uruguay la Alianza esta dando, MakeItWork, CES, BIOS, etc.
      Tambien existen comunidades importantes de testers en “meetup.com” a las cuales puedes ir a las reuniones que hacen de forma gratuita e ir empapandote del tema.

      Cualquier consulta a las ordenes!

      Le gusta a 1 persona

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

WordPress.com.

Subir ↑

A %d blogueros les gusta esto: