Los desarrolladores pasan más del 50 % de su tiempo probando código para verificar que el software funcione y detectar -y eventualmente eliminar- errores. El dato es un descubrimiento de la Universidad de Cambridge. Es una época en que la inteligencia artificial (IA) está dotando de autonomía diferentes sectores de la empresa. ¿Podrá convertirse también en una aliada a la hora de establecer medidas de testing y aseguramiento de la calidad en la creación de software?
Si bien aún no se trata de un concepto que haya alcanzado la madurez, la IA y machine learning aplicados a las pruebas de aplicaciones están generando una alta expectativa. Por un lado, podría resolver distintos problemas aún pendientes para liberar tiempo de los testers. Además, garantizar la eficacia de los procedimientos y mejorar la calidad de los productos.
Primeros casos de uso
Si bien el horizonte de sistemas de aseguramiento de la calidad de software no supervisado en absoluto parece lejano, ya emergen algunos casos de uso concretos. El análisis de ciclos ejecutados para optimizar los sets de casos, tomando como base los flujos reales de usuarios en producción es un buen ejemplo.
La inteligencia artificial también es capaz de identificar pasos duplicados o redundantes y agruparlos en componentes reutilizables. También tiene capacidades de autorreparación de los scripts de automatización, de predicción de defectos en los modelos de prueba o de uso de herramientas analíticas para identificar qué elementos necesitan ser probados. La gran ventaja es la misma gran ventaja de la IA aplicada a cualquier situación: cuanto más lo hace, mejor se vuelve.
Incluso, se avanza sobre proyectos más ambiciosos, que incluyen la automatización scriptless, por mencionar un primer ejemplo. La automatización del mantenimiento de las pruebas, de forma que si cualquier atributo de cualquier elemento cambia, lo hacen también las pruebas para poder contemplarlo. O la generación y gestión de datos de prueba para manejar una cobertura total durante los testeos, incluyendo la creación de conjuntos completos de datos sintéticos.
Cuestiones culturales
Para aprovechar estas innovaciones, las empresas deben atravesar un proceso de cambio y avanzar en la madurez de sus procesos, de sus herramientas y de la integridad de sus datos.
Los equipos de control de calidad, por ejemplo, deben tener ingenieros de QA con habilidades en ciencia de datos, análisis e inteligencia artificial. Si es necesario, deben colaborar con otras partes de la organización para adquirir dichas habilidades.
Otro aspecto a tener en cuenta -ya que puede producir resistencias- es que el rol del tester humano no se encuentra amenazado. El testing exploratorio continuará realizándose manualmente durante un tiempo, al igual que las pruebas que requieran improvisación o análisis intelectuales que escapen a las habilidades de la IA.
Eso sí: el tester necesitará reenfocarse en tareas que irán desde el entrenamiento de los algoritmos hasta la evaluación del aprendizaje de la IA para garantizar qué tan bien completará la tarea de probar el software, pasando por el análisis de cumplimiento de los aspectos éticos, de seguridad y de privacidad del software.
¿Qué tan inteligente es la prueba de software en tu organización? ¿Quisieras que lo fuera más? Contáctanos haciendo CLICK AQUÍ y conoce más sobre nosotros en nuestras redes LinkedIn y Twitter.