Artículos

“El
_
tester
_
de
_
mi
_
API
_
es
_
una
_
IA”

480Academy  ·  Automatización  ·  Inteligencia artificial  ·  Machine learning  ·  Soluciones Cloud

El Data Scientist de Cuatroochenta, Jaume Barrios, demuestra en una ponencia práctica en el T3chFest 2024 cómo los modelos de lenguaje de gran tamaño (LLM) pueden llegar a agilizar las pruebas de testing y el desarrollo de software.

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.

Pero, ¿y si introducimos los modelos de inteligencia artificial generativa (AI Gen) en el proceso de testing? ¿Pueden ayudarnos a agilizar y automatizar parte de estas pruebas? ¿Qué pasos debemos realizar para obtener los mejores resultados? ¿Hasta qué punto pueden ser fiables? Son algunas de las preguntas que intenté responder durante la charla “El tester de mi API es una IA” que ofrecí en la edición de 2024 del T3chFest, el festival de nuevas tecnologías de la Universidad Carlos III de Madrid y que contó con más de 1.700 asistentes presenciales.

«La inteligencia artificial no viene a reemplazarnos, viene a ser un compañero que nos permitirá llegar mucho más lejos»

¿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.

Puntos fuertes:

  • Generar y validar pruebas a de forma dinámica partir de lenguaje natural.
  • Sincronizar automáticamente los tests en la nube evitando que lo haga alguien de forma manual cada vez que haya una actualización o cambio.
  • Ejecutar de forma dinámica las llamadas para hacer correcciones y mantener el sistema actualizado.

Puntos débiles:

  • Errores a la hora ejecutar flujos complejos.
  • Puede llegar a ser inflexible con los resultados.
  • Puede sufrir alucinaciones y aportar datos falsos.

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».