El testing es una parte fundamental del ciclo de vida de cualquier producto digital. Es una de las buenas prácticas de desarrollo para garantizar su calidad y seguridad. Cuando llevamos a cabo un proyecto desde cero, tendemos a pensar en clientes, cloud, KPIs, modelos de negocio... pero, a veces, la fase de pruebas queda descuidada o en un segundo plano. Es un proceso en el que tienen cabida diferentes tipos de pruebas: unitarias, de integración, de evaluación UX/UI, de testeo de APIs... Hay empresas en que las pruebas las hacen los equipos de desarrollo. Y hay otras en las que existe un departamento de calidad (Quality Assurance) que desconoce todos los detalles del código y la tecnología que hay detrás de una solución y se encarga de revisar que no se ha roto nada en cada iteración y verifica que funciona todo correctamente.
«La inteligencia artificial no viene a reemplazarnos, viene a ser un compañero que nos permitirá llegar mucho más lejos»
IA para automatizar testeos
En mi ponencia planteé cómo los modelos de procesamiento de lenguaje natural (PLN) pueden llegar a formar parte del departamento de QA y realizar las pruebas de integración de una API, una interfaz de programación de aplicaciones. A través de una demostración práctica, presenté cómo utilizar sistemas como GPT para testeo y cómo incorporarlos en la integración y despliegue continuo del desarrollo de software.
Pero... ¿cómo podemos hacer que un modelo, cuyo cometido es escribir y chatear, escriba tests? La clave es dividir la tarea de testear un API en pasos sencillos, considerando las limitaciones actuales de la inteligencia artificial. Estos pasos se podrían desglosas en un flujo de ejecución:
¿Es 100% fiable?
Aunque por ahora, este tipo de sistemas no son 100% fiables, nos abren un amplio abanico de posibilidades para agilizar el testeo en el desarrollo de software.
Aunque actualmente los modelos LLM abiertos no llegan a ese punto, sería interesante, por ejemplo, que pudieran integrarse en un flujo continuo para que automáticamente, cuando hay un fallo, se generara la tarea correspondiente en el gestor de proyectos para que el equipo la resolviera. También sería interesante, según planteó el ingeniero en su intervención, convertir el ejecutor en un chat y aplicarlo en tests UI. Así, por ejemplo, haría fotos a la pantalla y, analizando el html, haría pruebas de los diferentes botones y flujos sin tener que hacerlo manualmente.
«Claramente tiene mucho margen de mejora, pero la inteligencia artificial está sentando un camino para que el testing sea mucho más ágil y dinámico».