Ante este requerimiento, los equipos de desarrollo de software responden con la adopción de prácticas ágiles, DevOps, automatización y pruebas continuas.
Optimizar los procesos de prueba es una cuestión clave hoy en día, en un escenario donde mantener la calidad (sin sumar costos) es otro imperativo ineludible, ya que de la calidad del software dependerán en muchos casos la satisfacción del cliente y la posibilidad de brindarle una experiencia ideal.
Automatizar los procesos de QA testing aparece como una opción muy tentadora para hacer frente a la demanda de ciclos de entrega más rápidos y lanzamientos libres de errores. Esta estrategia tambien permite detectar defectos al comenzar el trabajo de desarrollo de software, lo que hace que sea más barato resolverlos. Ahora bien, la automatización del testing, ¿tiene sentido en todos los casos? Para saberlo es importante poder medir el retorno de la inversión (ROI), cosa que por cierto no es tan simple, ya que hay muchas variables en juego.
Retorno de inversión
La fórmula para obtener el ROI de la automatización del QA testing no difiere de la que se aplica en otras situaciones: ganancia neta (o ahorros netos) divididos por la inversión neta (es decir, por la suma de las herramientas y recursos que se usarán), multiplicado por 100 (ya que el ROI se expresa en porcentaje). Pero claro, al hacer este cálculo rápidamente se presentarán algunos desafíos. Por ejemplo, definir qué factores concretos se deberán tener en cuenta al calcular tanto las ganancias (o ahorros) como las inversiones.
El calcular el retorno de la inversión de las pruebas automatizadas en principio es importante evitar algunos errores comunes. Por ejemplo es frecuente que se compare el costo de crear, desarrollar y mantener pruebas automatizadas contra el de las pruebas manuales. Y si bien es cierto que con la automatización se podrá reducir al menos el 80% del tiempo dedicado a las pruebas manuales, todavía quedará un porcentaje que deberá continuar haciéndose de modo manual -básicamente aquellas pruebas que requieran observación humana-.
Además hay que tener en cuenta que aún luego de automatizar las pruebas, habrá que actualizarlas y darles el debido mantenimiento, cosa que también deberá considerarse en el cálculo del ROI. Las pruebas son software. Y al estimarse el ROI deben considerarse las formas en que esas pruebas cambiarán con el tiempo. Parte de ese cambio vendrá de agregar nuevas características y funciones.
Soluciones tecnológicas
La clave para que una prueba automatizada de software sea exitosa, es contar con buenas pruebas dado que en la actualidad existen distintas soluciones de automatización. Ahora bien, si dicha soucion se va a realizar in house, es convieniente realizar el cálculo del ROI que contemple el costo del sourcing o de la formación de las personas que diseñan y desarrollan las soluciones de pruebas automáticas adecuadas
Por otra parte hay algunos beneficios intangibles de la automatización del testing que deben contemplarse. Por ejemplo la posibilidad de evitar retrasos por corrección de errores, de realizar entregas más rápidas, de aumentar los lanzamientos por año y de mejorar el clima laboral (al reemplazar casos de prueba repetitivos y manuales y enfocar los esfuerzos en proyectos más desafiantes).
Por otro lado hay una serie de variables que determinarán que cada caso sea único y que por lo tanto el cálculo del ROI no sea del todo transferible de una organización a otra. Por ejemplo los requisitos comerciales que se desee implementar, el porcentaje de pruebas que pueda automatizarse, la complejidad de las mismas, la cantidad de configuraciones que deban probarse, el número de lanzamientos por año, etc.
Algunas estimaciones indican que la automatización del testing puede tener sentido para organizaciones que tienen al menos 50 procesos de negocio y que lanzan productos de software al menos 4 veces al año.
QA testing automatizado
De todas formas (y aunque no es simple de calcular, ya que también depende de cada caso) probablemente el mayor ROI de las pruebas automatizadas esté dado por la reducción del riesgo de introducir un defecto en producción (por la cobertura de pruebas cercana al 100%) y los consiguientes costos de remediación. Al evitar la introducción de errores la organización podrá evitarse una eventual interrupción de su negocio.
Así las cosas, del lado del ahorro (o de las ganancias) la fórmula deberá contemplar el ahorro en las pruebas más el ahorro en reducción de riesgos y costos de remediación. Del lado de las inversiones, por su parte, la licencia de la herramienta de pruebas automatizadas será el costo que más impactará. Pero también habrá que considerar los recursos para la instalación y configuración y la curva de aprendizaje.
¿En tu organización implementaron una estrategia de automatización de pruebas de software? ¿Calcularon previamente el ROI? ¡Sería genial que compartas el caso!