
En el dinámico mundo del desarrollo de software, la automatización de pruebas es fundamental para garantizar la calidad y la fiabilidad de las aplicaciones. Muchos equipos de DevOps se basan en el Desarrollo Dirigido por Comportamiento (BDD) para definir con precisión los criterios de aceptación y los casos de prueba, asegurando así que el software cumpla con las expectativas. La llegada de los Modelos de Lenguaje a Gran Escala (LLM) abre nuevas posibilidades en la automatización de pruebas.
En Infometis, nos hemos propuesto evaluar casos de uso innovadores de inteligencia artificial en el desarrollo de software a través de nuestro grupo de aprendizaje de IA, con el fin de demostrar sus ventajas a nuestros clientes. En este artículo, mostramos cómo LLM (Learning Lifecycle Management) simplifica el proceso, desde las historias de usuario y los requisitos hasta las especificaciones BDD y la generación automática de JavaScript. También podrá leer sobre los beneficios que esta tecnología ofrece a las empresas y las lecciones aprendidas al implementar este caso de uso.
En nuestra última publicación del blog (Grupo de Aprendizaje de IA de Infometis) del 20 de agosto de 2024, sobre la Guía de Transformación de IA en 5 Pasos, ilustramos los pasos que deben considerarse desde la ideación hasta la implementación de un caso de uso de IA. Partiendo de la premisa de no solo comprender la IA en teoría, sino también integrarla activamente en el día a día de la empresa, en Infometis adoptamos un enfoque ascendente. Esto significa que los casos de uso provienen directamente de nuestros empleados, basados en desafíos concretos de su trabajo diario. Este es también el caso aquí: el caso de uso presentado se desarrolló a partir de un problema real planteado por un empleado de Infometis.
El caso de uso se puede resumir en tres pasos:
Paso 1: Se deben crear criterios de aceptación y casos de prueba en BDD (formato Dado-Cuando-Entonces) a partir del requisito (historia de usuario/texto en prosa)
Paso 2: Los casos de prueba en formato Dado-Cuando-Entonces se transforman en un archivo de características de Cucumber
Paso 3: El código JavaScript para la automatización de pruebas se crea a partir del archivo de características de Cucumber
Tras recopilar los requisitos y evaluar la disponibilidad y calidad de los datos, analizamos diversos modelos de lenguaje a gran escala. Desde las primeras pruebas de concepto, ya pudimos obtener resultados positivos en la generación automática de JavaScript para la automatización de casos de prueba.
Para resolver el problema, se configuró una GPT (From BDD to JavaScript) personalizada en esta prueba de concepto. Se definieron las especificaciones relativas a las fuentes de datos, la estructura, el lenguaje y el contexto. Utilizando estas especificaciones estructuradas, el LLM pudo generar un resultado funcional.
Supongamos que tenemos la siguiente historia de usuario:
Historia de usuario (Indicación)
Salida CustomGPT
//
¡Gracias por tu solicitud! Ahora crearé el caso de prueba solicitado en formato Given-When-Then, lo convertiré en un archivo de características de Cucumber y, finalmente, generaré el código JavaScript correspondiente para la automatización de pruebas.
Título: Búsqueda de un curso de formación utilizando la cadena de búsqueda "ChatGPT Prompt Engineering"
Dado que el usuario se encuentra en el sitio web de Infometis
Cuando: el usuario introduce la cadena de búsqueda "ChatGPT Prompt Engineering" en la barra de búsqueda y comienza la búsqueda.
Entonces: el usuario debería ver los resultados de búsqueda de "ChatGPT Prompt Engineering".



//
El uso de modelos de lenguaje grandes para generar JavaScript para la automatización de pruebas ofrece numerosas ventajas que hacen que el proceso de desarrollo sea más eficiente y efectivo. Las ventajas clave incluyen:
1. Conversión automatizada de historias de usuario en especificaciones BDD: Los LLM pueden convertir historias de usuario y requisitos en especificaciones BDD claramente estructuradas en el formato "Dado-Cuando-Entonces". Esto simplifica significativamente la transición del análisis de requisitos a la implementación de pruebas.
2. Generación automatizada de pruebas: Después de convertir las historias de usuario en especificaciones BDD, los LLM pueden convertir directamente estas especificaciones a JavaScript, lo que reduce significativamente el esfuerzo manual necesario para crear pruebas.
3. Ahorro de tiempo: La generación automática de especificaciones y pruebas BDD ahorra un valioso tiempo de desarrollo que puede utilizarse mejor para otras tareas, como desarrollar nuevas funcionalidades o mejorar la experiencia del usuario.
4. Calidad de código consistente: El uso de LLM garantiza que el código generado siga un estándar uniforme, lo que mejora la mantenibilidad y la legibilidad.
5. Escalabilidad:
- Los sistemas LLM permiten a los equipos escalar rápidamente a un gran número de pruebas sin necesidad de realizar ningún esfuerzo manual adicional.
- Mediante un complemento, los requisitos se pueden transferir directamente de Jira a un LLM, lo que hace que el flujo de trabajo sea fluido y eficiente.
Potencial de mejora: El resultado, concretamente el código JavaScript, de CustomGPT se puede utilizar para la automatización de pruebas, pero puede que necesite optimizarse en uno o dos puntos.
Ventajas de los modelos de lenguaje a gran escala (LLM): Las ventajas de los LLM radican en su capacidad para analizar y generar textos, patrones lingüísticos y código, ofreciendo así un enorme potencial. Para resolver este problema, se aplican tanto las capacidades analíticas (búsqueda, extracción, clasificación y ordenación) como las de generación de resultados (generación, resumen, reescritura y traducción) de los LLM.
¿Te gustaría probarlo tú mismo?
Te acompañaremos en tu aventura con la IA. Descubre el servicio ideal para ti en nuestra página web: ¡estaremos encantados de ayudarte con tu próximo proyecto!
¿Le gustaría aprovechar nuestra experiencia e implementar innovaciones tecnológicas?


¿Tienes alguna pregunta o necesitas más información? Déjanos tus datos de contacto y te llamaremos.