QA × IA

De documentación y capturas al .feature: IA local con Llama 3.2 + Llava

19 May 2025

En este artículo te muestro cómo montar un flujo completo de generación de escenarios .feature (Gherkin) y casos de uso a partir de requisitos funcionales y capturas de pantalla, todo ejecutado 100% en local, sin necesidad de enviar datos sensibles a servicios externos. Esto elimina las barreras legales y técnicas que muchas empresas ponen cuando se quiere usar IA con datos internos.
Gracias a herramientas como Ollama, puedes tener modelos LLM como Llama 3.2 (para texto) y Llava (para visión) corriendo directamente en tu equipo, sin pagar APIs, sin exponer datos, sin depender de internet…
Este primer post no solo sirve como ejemplo práctico para profesionales de QA, sino como guía de cómo desplegar e integrar modelos locales de forma sencilla. Es el primer paso de una serie en la que exploraremos cómo pasar de requisitos a código de automatización real generado por IA.
Si trabajas en QA, desarrollo o estás explorando cómo usar IA sin comprometer la privacidad de tus proyectos, este artículo es para ti.

Modelos que se utilizarán:

Tarea Modelo Peso Q4 RAM real
Texto → Gherkin Llama 3.2 4.4 GB 6–8 GB
Imagen + texto → Gherkin Llava 4.7 GB 7-8 GB

1. ¿Por qué ejecutar la IA en local?

  1. Privacidad y cumplimiento  Los requisitos y los mock-ups nunca salen de tu equipo, así que no hay riesgo de que queden guardados en los registros de un servicio externo. Puedes incluso ejecutarlos sin conexión a internet.
  2. Coste cero & offline  Sin cuotas ni límites de API. No pagas tokens por petición, no temes sobrecostes y puedes realizar tantas iteraciones como quieras mientras ajustas el prompt.
  3. Iteración rápida  Modificas prompts, re‑corres, comparas… sin esperar cola externa.
  4. Independencia  Si mañana cambian precios o políticas de una API, tu flujo sigue igual. Además, puedes afinar el modelo con ejemplos propios sin enviarlos a nadie.

2. Setup

En esta sección vamos a preparar el entorno necesario para ejecutar nuestro generador de escenarios .feature usando modelos LLM locales.

¿Qué es Ollama?

Ollama es una herramienta que permite ejecutar modelos de lenguaje (LLM) de forma local en tu equipo, sin necesidad de depender de servicios en la nube. Ofrece multitud de módulos de diferentes tamaños y propósitos.

2.1. Instalar Ollama

Dependiendo de tu sistema operativo, puedes instalar Ollama de dos formas:

Opción 1. Instalación rápida por terminal

# Para macOS
brew install ollama

# Para Windows
winget install Ollama.Ollama

# Para Linux
curl -fsSL https://ollama.com/install.sh | sh

Nota: Necesitarás tener instalado brew (macOS), winget (Windows) o curl (Linux). Si no los tienes, consulta su documentación correspondiente.

Opción 2. Instalación manual desde su web

También puedes instalar Ollama como cualquier otro programa, descargándolo directamente desde su web oficial: Descargar Ollama

Solo tienes que ir a la sección de instalación, descargar el instalador correspondiente a tu sistema operativo y seguir los pasos habituales.


2.2. Iniciar el servidor de Ollama

Una vez instalado Ollama, es necesario arrancar el servidor local, que es el encargado de gestionar los modelos y responder a nuestras peticiones.

Si lo instalaste desde la terminal

Ejecuta el siguiente comando para lanzar el servidor en segundo plano:

ollama serve &

Esto dejará el servidor corriendo y listo para recibir peticiones desde otros scripts o herramientas.

Si lo instalaste manualmente desde la web

Simplemente abre la aplicación de Ollama como cualquier otro programa en tu sistema. Esto pondrá en marcha el servidor de forma automática.

Importante: A partir de este punto, todos los pasos siguientes funcionarán exactamente igual, independientemente del método de instalación que hayas elegido.

2.3. Descargar modelos LLM

Una vez iniciado el servidor, vamos a descargar los modelos que utilizaremos para generar nuestros escenarios .feature y para describir interfaces a partir de imágenes:

ollama pull llama3.2
ollama pull llava

¿Por qué estos modelos?


2.4. Clonar el repositorio del proyecto

Clonamos el proyecto base que contiene toda la lógica para interactuar con los modelos, pasarles los prompts adecuados y generar archivos .feature automáticamente.

git clone https://github.com/abarragancosto/llm-feature-gen.git
cd llm-feature-gen

En este repositorio encontrarás:

  • Scripts para lanzar peticiones a los modelos
  • Templates de prompts optimizados
  • Utilidades para guardar las salidas directamente como archivos .feature

2.5. Crear entorno virtual e instalar dependencias

Creamos un entorno virtual para aislar las dependencias del proyecto:

python -m venv .venv && source .venv/bin/activate

Y luego instalamos todos los paquetes necesarios:

pip install -r requirements.txt

Esto incluye bibliotecas para interactuar con Ollama, procesar imágenes, manejar prompts, etc.

3. Ejecutar programa

Una vez descargados los modelos y arrancado el servidor de Ollama, ya puedes utilizar el script generate_features.py para generar automáticamente escenarios en formato Gherkin (.feature) o descripciones de casos de uso a partir de texto y, opcionalmente, imágenes de mock-up.


Argumentos disponibles

El script admite varios parámetros para personalizar la ejecución:

Parámetro Descripción
requirements Ruta al archivo de requisitos (en formato .txt o .md). Obligatorio.
-m, --mockup Ruta a una imagen de la interfaz si se desea usar un modelo con capacidad visual. (Opcional)
-n, --num Número de escenarios o casos a generar (por defecto: 5). (Opcional)
-o, --output Nombre del archivo de salida. Por defecto: output.feature.
-f, --format Formato de salida: feature para Gherkin o txt para casos de uso en texto plano. Obligatorio
--prompt-file Ruta a un archivo con prompt personalizado (opcional).

3.1 Solo texto

Si solo tienes una descripción funcional (sin mock-up) y quieres generar escenarios en formato .feature, ejecuta:

python generate_features.py examples/requirements.txt -o login.feature

Esto usará el archivo examples/requirements.txt, generará 5 escenarios (valor por defecto) y los guardará en login.feature.


Como demostración del ejemplo, el fichero requirements.txt contiene lo siguiente:

Diagrama flujo

Una vez ejecutado, por consola nos saldrá:

Ejecución solo texto

El resultado de la feature será:

Resultado solo texto


3.2 Texto + mock‑up

Si además del archivo de requisitos tienes una imagen de la interfaz (mock-up), puedes añadirla para que el modelo la interprete y genere escenarios más ajustados visualmente:

python generate_features.py examples/requirements.txt --mockup examples/image.png -n 8 -o loginMockup.feature

📌 Esto generará 8 escenarios combinando texto e imagen, y los guardará en loginMockup.feature.

La consola mostrará el resultado de la interpretación de imagen a texto:

Imagen a texto

El resultado de la feature sería:

Resultado con imagen


Ejemplo con salida en texto plano

Si no quieres escenarios en Gherkin sino casos de uso en un txt, cambia el formato de salida con --format txt:

python generate_features.py examples/requirements.txt -f txt -o casos_uso.txt

Usar un prompt personalizado

Puedes utilizar tu propio archivo de prompt (por ejemplo, para adaptar el estilo o el idioma):

python generate_features.py examples/requirements.txt --prompt-file custom_prompt.txt

4. Comentarios finales


5. Próximos pasos

En próximos artículos, daremos un paso más: convertiremos estos archivos .feature en código Selenium (Java) utilizando IA, incluyendo estructuras Page Object y sugerencias de selectores automáticos.

Este flujo completo permitirá generar desde requisitos hasta pruebas automatizadas listas para ejecución, todo asistido por modelos LLM.


6. ¿Te animas a dar feedback?

¿Has probado este flujo? Me encantaría saber tu opinión:

Tu feedback me ayuda a mejorar cada contenido. ¡Gracias por llegar hasta aquí y ser parte de este experimento con LLMs en QA! 🙌