Eduardo Amaral, director asociado Quality Manager Noesis-Altia, aborda los procesos más importantes a la hora de adoptar metodologías de automatización de pruebas de software para llevarlo a producción de la forma más eficiente posible.
La automatización de pruebas es una de las prioridades en la agenda de las empresas en la actualidad. Todas, o casi todas, las compañías están trabajando en este aspecto con el objetivo de reducir el esfuerzo de la realización de pruebas manuales, evitar la rotación de personas en los proyectos, motivar a los empleados y ganar tiempo para la comercialización de productos y servicios. Ahora bien, antes de tirarse a la piscina de la automatización, hay una serie de aspectos principales que hay que plantearse para acertar con el proyecto y el objetivo que estamos buscando.
Lo primero que hay que poner sobre la mesa y analizar es que hay tres áreas importantes que es necesario cubrir en todo proceso de automatización de pruebas: herramientas, entorno de pruebas y alcance; aunque no es necesario hacerlo por este orden, porque todos ellos se retroalimentan.
En el terreno de las herramientas la pregunta que debemos hacernos es qué herramienta satisface nuestras necesidades. Aquí lo importante es analizar qué necesidades tenemos y observar los tipos de validación, arquitectura y herramientas que nos permiten construir nuestro proyecto de automatización, administrar y reportar. No es lo mismo seleccionar una herramienta de automatización de pruebas si estamos pensando en web o móviles que si estamos pensando en un sistema SAP, ya que, en este caso, habría que hacer un enfoque más específico en lo que se refiere al soporte tecnológico y tendríamos que seleccionar las herramientas que nos proporcionen soporte para ello.
Si pasamos a los entornos de prueba, lo que necesitamos es software, licencias e infraestructuras, así como un registro de ejecuciones y una parametrización. Por tanto, hay que definir la estrategia de gestión de datos de pruebas y los requisitos necesarios para la realización de pruebas continuas. En muchos casos, es importante tener en cuenta que, para poner en marcha estos entornos de pruebas, necesitaremos tener una gran cantidad de datos. Este es un aspecto que no podemos obviar.
En cuanto al alcance, lo que tenemos que valorar es qué es lo que queremos automatizar. La evaluación inicial debe tener el objetivo de definir qué procesos de negocio vamos a automatizar. Para ello, hay que identificar en qué tipo de aplicaciones tenemos tareas repetitivas y qué queremos automatizar. Igualmente, tenemos que definir en qué nivel implementaremos nuestra automatización de pruebas.
Una vez que tengamos estos tres fundamentos bien asentados, solo nos queda observar algunos pasos adicionales, como son la identificación de la aplicación piloto, la identificación de pequeños pasos de validación, que se tendrán que realizar paso a paso para gestionar las expectativas de forma adecuada, y los criterios de automatización, que se utilizan para conocer la estabilidad de la aplicación en un estado de pruebas. En este sentido, tenemos que estar seguros de qué se va a utilizar y valorar los ciclos de vida de la aplicación; si se utilizará durante mucho tiempo, si está obsoleto o si el tiempo de las pruebas son aceptables.
Por último, pero muy importante debemos fijarnos en el ROI (Return On Investment), teniendo en cuenta tantos los costes de automatización como los costes que vamos a ir teniendo. Aquí lo importante es estimar el punto de equilibrio para lo que hay que tener en cuenta el esfuerzo que supone el desarrollo, el soporte/mantenimiento que se tiene que realizar y las tareas que tendemos que hacer manualmente. El equilibrio lo encontraremos cuando alcancemos aproximadamente el 80% de beneficios (al considerar el uso de la automatización) y el 20% de esfuerzo (de cuál sería el monto total para automatizar el 100% del alcance).
En este sentido, cada organización debe definir los niveles de automatización que va a implementar y su nivel de escalas, partiendo del 0 que se corresponden con no tener nada de automatización y pasando gradualmente por los niveles del 1 al 4. El primer nivel se corresponde con un nivel básico; el segundo con un nivel más productivo en el que ya tenemos una hoja de ruta, objetivos definidos y KPIs; el tercero con un marco de automatización más consolidado en el que ya trabajamos en procesos y no solo en aplicaciones; y un cuarto y último más avanzando en el que ya introducimos la inteligencia artificial. Estos niveles dan una referencia de prioridad para guiarnos y lo ideal es tener una escala de prioridades detallada. De este modo, a medida que aumentamos la cobertura 60-80%, la inversión empieza disminuir. Este es un aspecto importante para tener en cuenta antes de empezar.
En definitiva, es importante centrarse en cómo la automatización de pruebas se va a utilizar, basándose en las buenas prácticas del mercado, así en cómo conseguir el ROI que necesitas y cómo vas a medirlo.