Table of Contents
La inteligencia artificial (IA) ha revolucionado la forma en que los equipos de desarrollo trabajan, los QA’s y los Product Owners no somos una excepción. Tareas como rear historias de usuario, definir casos de uso y generar test cases solía ser un proceso tedioso y manual. Pero, ¿y si una IA pudiera aprender a realizar este trabajo, aportando homogeneidad y precisión en pocos segundos?
En este artículo, explico a través de mi experiencia cómo, con muy poco entrenamiento, la IA ha logrado automatizar la generación de casos de uso a partir de historias de usuario y la creación de test manuales en X-ray para Jira. Además, exploraremos el potencial futuro de la inteligencia artificial en QA y los próximos pasos para adoptar esta tecnología a corto plazo.
Inteligencia artificial en QA: Lo que nadie queria hacer – escribir tests manuales
Todo empezó con la necesidad de implementar una librería de tests manuales que ofreciera trazabilidad, mantenibilidad y escalabilidad. Hasta ese momento, me encontraba con muchas historias de usuario que carecían de casos de uso bien definidos o que sólo contenían listados básicos dentro de su descripción.
La herramienta elegida fue Xray, un plugin de Jira que permite gestionar tanto tests manuales como automáticos, vinculándolos a historias, épicas y otros elementos según sea necesario.
Si alguna vez has tenido que escribir un test manual en Xray u otra herramienta similar, sabrás que el proceso es repetitivo y tedioso, especialmente cuando se han de permutar casuísticas o cubrir diagramas de flujo. También puede ser difícil saber dónde cortar cada test, ya que lo interesante es poder reutilizarlos en múltiples desarrollos y mantenerlos actualizados con los nuevos cambios de la funcionalidad.
Este problema llevó a debates y quejas dentro del equipo, viendo la sobrecarga de trabajo que supone embarcarse desde cero en un proceso tan ambicioso, y sobre todo ¿quién asumiría la carga de trabajo? ¿POs? ¿QAs? ¿Había una mejor manera de hacerlo?
En este punto, sabiendo que Xray, como otras tools de testing, ofrece la posibilidad de importar masivamente tests y acostumbrado a usar la IA en mi día a día, me pregunté: ¿sería posible automatizar la creación de tests a partir de la historia de usuario?
Inteligencia artificial en QA: Primeros pasos
Tras cinco prompts con ChatGPT, y con la documentación de la API de Xray en la mano, logré generar un JSON con casos de uso en formato Gherkin, parametrizando campos iterables (como países o dispositivos), junto con un CSV que contenía estas iteraciones.
Con solo guardar estos archivos, Xray pudo importar múltiples test cases perfectamente estructurados con sus iteraciones. Además, la API de Xray permite ordenar estos casos por carpeta, añadirle etiquetas, vincularlos a otros tickets, actualizar tests existentes… por lo que todavía podía mejorar el resultado.
Para optimizar aún más el proceso, le pedí la IA que siempre que recibiera una historia de usuario, generara automáticamente el JSON con los casos y el CSV con iteraciones.
Actualmente, estamos desarrollando un sistema basado en roles de IA:
- Rol PO: Crea historias detalladas y bien estructuradas. Manteniendo siempre el mismo formato.
- Rol QA: Recibe la historia, genera o modifica los tests y los organiza en Xray.
Cuanto antes entremos en el flujo de automatización, mejor será el resultado.
Además, estamos explorando una interfaz visual que permita revisar, editar y descartar tests antes de enviarlos a Jira/Xray. También ofrecer la opción de dar feedback a la IA y así poder entrenarla para ir afinando los resultados.
El siguiente nivel: IA integrada en el ecosistema de desarrollo
Este avance ya supone un gran ahorro de tiempo, pero la verdadera revolución vendrá con la integración de IA’s con acceso a Jira, Confluence y Xray. Esto permitirá:
- Construir una librería de tests centralizada, actuando como la fuente de la verdad del producto.
- Reducir la redundancia, optimizando el número de tests y eliminando casos innecesarios.
- Detectar automáticamente qué tests de regresión son necesarios según los cambios en el código.
- Implementar BDD en el proyecto con el mínimo esfuerzo.
¿Hasta dónde queremos llegar?
La IA está cambiando la manera en que los QA’s trabajan, liberándonos de tareas mecánicas y permitiéndonos centrarnos en la estrategia y la calidad. La visión final es la de un sistema semiautomático donde simplemente indicamos una necesidad y la IA, con pleno contexto, genera:
- La historia de usuario y criterios de aceptación.
- Los casos de uso y test cases.
- El diseño del set de pruebas y las actualizaciones en la regresión.
Todo eso bajo una ligera supervisión de las personas que tradicionalmente harían manualmente este trabajo, QA’s y PO’s. Se trata al fin y al cabo de dejar de ser peones y de empezar a ser supervisores.
Enlaces de interés y ejemplo de generación de tests dados 2 prompts:
PROMPTS:
Petición 1: Dada esta historia de usuario: Descripción
COMO usuaria de una calculadora digital. QUIERO realizar operaciones básicas como suma, resta y multiplicación. PARA obtener resultados precisos de mis cálculos diarios.
Contexto
La calculadora debe permitir a los usuarios ingresar dos números y seleccionar una operación (suma, resta o multiplicación). El resultado de la operación debe mostrarse claramente en la pantalla. La funcionalidad debe ser intuitiva y accesible para usuarios de todas las edades.
Necesito que me generes casos con el formato GIVEN WHEN THEN, también algun AND si es necesario, y me los pongas en el formato:
- Titulo de test 1 GIVEN precondiciones WHEN accion 1 AND accion 2 THEN resultado
Respuesta: Aquí tienes algunos casos de prueba en el formato solicitado:
001. Realizar una suma GIVEN la calculadora está encendida AND el usuario ha ingresado el número 5 AND el usuario ha ingresado el número 3 WHEN el usuario selecciona la operación de suma THEN el resultado mostrado en la pantalla es 8
002. Realizar una resta GIVEN la calculadora está encendida AND el usuario ha ingresado el número 10 AND el usuario ha ingresado el número 4 WHEN el usuario selecciona la operación de resta THEN el resultado mostrado en la pantalla es 6
003. Realizar una multiplicación GIVEN la calculadora está encendida AND el usuario ha ingresado el número 7 AND el usuario ha ingresado el número 6 WHEN el usuario selecciona la operación de multiplicación THEN el resultado mostrado en la pantalla es 42
004. Manejo de números negativos en suma GIVEN la calculadora está encendida AND el usuario ha ingresado el número -2 AND el usuario ha ingresado el número 3 WHEN el usuario selecciona la operación de suma THEN el resultado mostrado en la pantalla es 1
005. Manejo de números negativos en resta GIVEN la calculadora está encendida AND el usuario ha ingresado el número 5 AND el usuario ha ingresado el número -3 WHEN el usuario selecciona la operación de resta THEN el resultado mostrado en la pantalla es 8
006. Manejo de números negativos en multiplicación GIVEN la calculadora está encendida AND el usuario ha ingresado el número -4 AND el usuario ha ingresado el número 2 WHEN el usuario selecciona la operación de multiplicación THEN el resultado mostrado en la pantalla es -8
Estos casos de prueba cubren las operaciones básicas de suma, resta y multiplicación, incluyendo el manejo de números negativos.
Petición 2: Ahora quiero que me generes un JSON para poder importar los tests en Xray. Te paso ejemplos tanto de estructura como de formato, y donde ubicamos los given, when then. En este caso quiero todos casos en un mismo test con múltiples steps.
[
{
“testtype": ‘manual’,
“fields": {
“summary": ‘Brief description of test’,
“project": { ‘key’: ‘ONLINE’ }
},
“steps": [
{
“action": ‘*Scenario title* GIVEN initial condition WHEN action performed’,
“data": ‘’,
“result": ”THEN expected result.”
},
{
“action": ‘*Scenario Title 2* GIVEN other initial condition WHEN other action performed’,
“data": ‘’,
“result": ”THEN another expected result.”
}
]
}
]
Resultado: Aquí tienes el JSON con todos los casos de prueba combinados en un solo test con múltiples pasos, en el formato adecuado para importar en Xray:
```json
[
{
“testtype": ‘Manual’,
“fields": {
“summary": { ‘calculator basic operations’,
“project": { ‘key’: ‘ONLINE’ }
},
“steps": [
{
“action": ‘*Perform a sum* GIVEN the calculator is on AND the user has entered the number 5 AND the user has entered the number 3 WHEN the user selects the sum operation.’, ‘action’: ‘*Perform a sum* GIVEN the calculator is on AND the user has entered the number 5 AND the user has entered the number 3 WHEN the user selects the sum operation’,
“data": ‘’,
“result": ”THEN the result shown on the display is 8”
},
{
“action": ‘*Perform a subtraction* GIVEN the calculator is on AND the user has entered the number 10 AND the user has entered the number 4 WHEN the user selects the subtraction operation’,
“data": ‘’,
“result": ”THEN the result shown on the display is 6”
},
{
“action": ‘*Perform a multiplication* GIVEN the calculator is on AND the user has entered the number 7 AND the user has entered the number 6 WHEN the user selects the multiplication operation’,
“data": ‘’,
“result": ”THEN the result shown on the display is 42”
},
{
“action": ‘*Negative number handling in addition* GIVEN the calculator is on AND the user has entered the number -2 AND the user has entered the number 3 WHEN the user selects the addition operation’,
“data": ‘’,
“result": ”THEN the result shown on the display is 1”
},
{
“action": ‘*Handling negative numbers in subtraction* GIVEN the calculator is on AND the user has entered the number 5 AND the user has entered the number -3 WHEN the user selects the subtraction operation’,
“data": ‘’,
“result": ”THEN the result shown on the display is 8”
},
{
“action": ‘*Negative number handling in multiplication* GIVEN the calculator is on AND the user has entered the number -4 AND the user has entered the number 2 WHEN the user selects the multiplication operation’,
“data": ‘’,
“result": ”THEN the result shown on the display is -8”
}
]
}
]
```
Este JSON combina todos los casos de prueba en un solo test, con cada paso detallando las acciones y los resultados esperados en el formato GIVEN, WHEN, THEN.

Foto 1: Importación del JSON generado por la IA en Xray

Foto 2: Visualización final de los tests en Xray tras la importación
Author
-
Software Quality Assurance (QA) engineer, tasks coordinator and testing experience. Functionality, compatibility, exploratory/ad hoc and related test methodologies. QA Execution and testing processes, automation, bug documentation and bug tracking system development. Experience collaborating with team and individual work. Enjoy working collaboratively with testers, developers and other team members in testing complex projects and in the overall enhancement of software product quality.
Ver todas las entradas