Misconceptions del testing automatizado

En los últimos años, el uso de testing automatizado se ha popularizado debido a diversas tendencias como integración continua o Devops. Sin embargo, es común escuchar historias de proyectos de automatización que no alcanzan los objetivos o beneficios planteados en un principio. El objetivo de este artículo es abordar algunas ideas erróneas que muchas veces impiden la inclusión exitosa de prácticas de automatización de Testing en los proyectos.

mancebo_d2b1576d64ff40b49a6ba27b893d938d

Por Gonzalo Mancebo

Ideas Erróneas

La automatización debe verse como el uso de herramientas para brindar apoyo a las actividades de testing. Sin embargo, este foco no siempre es tan evidente cuando se busca incluir actividades de automatización. A continuación se detallan algunos preconceptos que solemos tener antes de automatizar un proyecto.

#1 – La herramienta sustituye al tester

El primer error es creer que el uso de una herramienta de automatización sustituye nuestras tareas como testers. De hecho, no existe tal herramienta y la automatización debe concebirse y visualizarse como un medio más para ayudar al equipo de test a alcanzar ciertos objetivos de forma más sencilla.

#2 – No fijar objetivos  

Otro problema común, es que no se fijan objetivos para la automatización o se fijan objetivos poco alcanzables como ser:

  • Automatizar pensando en cubrir el 100 % de las pruebas de un sistema.
  • Automatizar todas las pruebas de las funcionalidades más críticas (esto podría ser muy negativo si no se analizan cuáles son los tiempos y la complejidad de automatizar dichas pruebas).
  • Automatizar sobre funcionalidades inestables y que sufrirán cambios.
  • Decidir automatizar con el objetivo genérico de reducir el tiempo de testing.

Cada proyecto ocurre sobre realidades contextuales diferentes y por lo tanto, es necesario analizar cuál es el contexto en el que se desea incluir actividades de automatización. Es en base a esto que deben definirse los objetivos a alcanzar. Sin embargo, muchas veces este análisis no se lleva a cabo y se suelen realizar actividades en base a objetivos poco alcanzables o incluso contraproducentes para los objetivos del proyecto.

#3 – Cualquier herramienta sirve para alcanzar nuestros objetivos

En relación a qué herramienta seleccionar, existe una buena y amplia oferta, pero elegirla antes de conocer el contexto en la que se va a aplicar es desperdiciar la oportunidad de seleccionar aquella que se adapte mejor a nuestras necesidades y facilite la obtención de los objetivos que nos hemos planteado. Las herramientas deben ser seleccionadas cuando se tenga claro qué se desea obtener con la automatización y de qué forma y no al revés, seleccionando objetivos y decidiendo qué automatizar en base a una herramienta disponible.

#4 – Automatizamos todo

De igual manera, un punto clave es seleccionar cuidadosamente las pruebas que vamos a automatizar. No todo lo automatizable se debe automatizar. Muchas veces automatizar alguna prueba puede implicar un esfuerzo no rentable o que no facilite las actividades (que recordemos es el objetivo de automatizar), y puede generar un impacto negativo restando valor. En GeneXus Consulting para seleccionar las pruebas a automatizar, analizamos tres factores: criticidad de la prueba, facilidad para automatizar y esfuerzo de ejecución manual. La siguiente tabla ejemplifica una forma de seleccionar y priorizar los aspectos a automatizar.

Sin título*Alta: 3, Media: 2, Baja: 1

#5 – Automatizamos en el tiempo libre

Muchas veces la automatización se considera una actividad para “los ratos libres”, lo que genera que su realización se diluya frente a las prioridades de otras actividades. Un problema resultante de esto es que cuando las actividades de automatización se vuelven a retomar, el sistema ha evolucionado en varias versiones y todo lo automatizado suele quedar obsoleto o conlleva un costo de mantenimiento muy elevado. Como consecuencia, se suele perder toda la inversión realizada al comienzo. La automatización debe ser vista como una actividad planificada, con un cronograma y tiempos establecidos de antemano.

#6 – ¡Resultados ya!

Por último, otro aspecto a tener en cuenta es que la automatización es una inversión. Como tal debe pasar un tiempo antes de que la inversión sea recuperada, e inclusive el retorno de la inversión puede provenir desde varios lugares dependiendo los objetivos que se planteen. Pretender obtener retornos inmediatos o grandes beneficios en términos de costos es otro error que comúnmente se comete.


Nuestro enfoque

Una forma de llevar adelante el análisis y lograr una correcta inclusión de una herramienta para la automatización, evitando confundir su uso,  es poseer un conjunto de actividades bien definidas que denominaremos como Proceso de Automatización.  

Compartimos a continuación los elementos más importantes de nuestro proceso de automatización:

Sin título

El proceso nos ayuda a sistematizar y así evitar muchos de los problemas mencionados. Se deberá delinear un marco de trabajo en el cual será necesario pensar en los objetivos, las pruebas y las funcionalidades sobre las cuales se trabajará, para luego sí enfocarnos en automatizar.

Por Gonzalo Mancebo, SQA de GeneXus Consulting.