Unir calidad con velocidad en el desarrollo de software es una premisa muy deseable. Pero no siempre es fácil de concretar. En nuestros días la transformación digital y la necesidad de adoptar un enfoque de negocio innovador y personalizado hace que las empresas desarrollen herramientas de software con mucho foco en el cliente, en vez de estar orientado únicamente a los usuarios internos. En este contexto evitar los errores en las aplicaciones y sitios web se transformó en una cuestión clave. Ahora bien, ¿cómo se logra esto? Fortaleciendo las instancias de testeo, mediante desarrollos de testing automation o testing automatizado. ¿Ya abordaron este desafío en su empresa?

Se sabe: el sector de software tiene dificultades para encontrar mano de obra capacitada. A modo de ejemplo, una encuesta en Argentina encontró que si bien los desarrolladores son los más buscados, los especialistas en testing acaparan una cuota significativa de las búsquedas (5%). Se trata de perfiles que no abundan y cuyos salarios resultan onerosos. Durante los últimos años la labor el tester se profesionalizó y hoy involucra estándares de trabajo y certificaciones internacionales. Y en territorio nacional las firmas que ofrecen servicios tecnológicos especializados en el tema -como Arbusta- se cuentan con los dedos de las manos. Ante tal escenario muchas empresas se están planteando una meta: lograr que las pruebas requieran menos mano de obra. ¿Y cómo se consigue esto? A través del testing automatizado.

TESTING AUTOMATION

Como concepto general las pruebas automatizadas son procesos que validan si el software funciona correctamente y cumple con los requisitos antes de su lanzamiento a producción. Son aplicables a pruebas unitarias, de regresión y de APIs. Y su principal ventaja es que simplifican la tarea de los equipos de aseguramiento de la calidad. Los desarrollos de testing automation aportan mayor precisión, expanden la posibilidad de obtener informes, brindan mayor cobertura y eficiencia, optimizan la detección de errores (particularmente en las etapas tempranas de desarrollo) y aumentan la reutilización. Además, ayudan a realizar verificaciones más rápidas y a evitar errores humanos. Dicho lo anterior, no es para nada casual que el despliegue de pruebas automatizadas en sitios web y aplicaciones comience a ser tendencia. Pensado en términos de rubros, esta evolución cobra más sentido para los sectores que necesitan brindar una óptima experiencia del cliente. Por eso hoy se habla tanto del testing automatizado para banca, e-commerce y servicios de salud, por ejemplo.

SE VIENE LA INTELIGENCIA ARTIFICIAL

Las investigaciones indican que casi un cuarto de los presupuestos de IT ya se destina a diferentes proyectos de inteligencia artificial (IA). Particularmente en el caso de testing de software, el uso de herramientas de automatización basadas en IA torna más robustas y potentes a las pruebas (con mayor capacidad de detectar errores relevantes antes de que se corran los tests), acelera los tiempos de ejecución y facilita el mantenimiento. Sumar IA en la automatización del testing es importante, pero no suficiente. Otro lineamiento clave para potenciar la velocidad y la productividad en la construcción de software es adoptar una cultura ágil y la metodología DevOps. Y además hay que configurar una tubería de integración continua / entrega continua (CI / CD) eficiente y automatizada –esto es, una práctica de desarrollo de software que permite recibir notificaciones automáticas ante cambios y ayuda a detectar errores en etapas tempranas-. Mediante estos procesos se pueden automatizar las pruebas de regresión y rendimiento, y sumar controles automáticos de calidad, seguridad, accesibilidad y usabilidad del código.

COMPLEMENTO QUE SUMA

Está claro que los esfuerzos de testing automation no van a desplazar totalmente a las evaluaciones manuales, sino que las potenciarán y complementarán. El factor humano continuará siendo necesario sobre todo en las instancias que requieran pruebas en profundidad para garantizar la seguridad y la precisión de todas las aplicaciones y la tecnología basadas en datos. Y dado que la IA comienza a aprender a partir del conjunto de datos de entrenamiento que se le otorga, siempre será importante elegir cuidadosamente ese set, cosa que requerirá de la participación humana. No obstante, hasta cierto punto la incorporación de IA al testing permitirá que cuadros no técnicos
puedan crear y ejecutar pruebas de manera colaborativa.

A nivel de mantenimiento –una instancia que según las investigaciones tiende a consumir cerca del 30% del tiempo de los evaluadores- las pruebas basadas en IA reemplazan los localizadores estáticos por otros dinámicos. Es decir que se usan múltiples atributos de un elemento para identificarlo en una página, de modo tal de poder ubicarlo aún si algún atributo cambia. Esto agrega mayor estabilidad y ayuda a ahorrar un tiempo considerable.

Otro dato es que la IA permite conectar las aplicaciones de producción al ciclo de prueba, lo cual habilita a crear tests basados en los flujos reales. La IA tiene capacidad para observar y encontrar pasos repetidos y agruparlos para hacer componentes reutilizables. Además, al sumar más pruebas, la inteligencia tiende a crecer, optimizando las esperas entre pasos y solucionando proactivamente los problemas.

Agregar IA en el testing automatizado es una tendencia que avanza y que además de sumar eficiencia, agilidad y productividad habilita a centrar los esfuerzos manuales de control de calidad en las tareas de mayor valor agregado.

Por Debora Slotnizky@deboraslot