<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: abarragancosto</title>
    <description>The latest articles on DEV Community by abarragancosto (@abarragancosto).</description>
    <link>https://dev.to/abarragancosto</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3138161%2F28ed440b-d733-4fa5-a8c5-ad89e184e6ee.png</url>
      <title>DEV Community: abarragancosto</title>
      <link>https://dev.to/abarragancosto</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abarragancosto"/>
    <language>en</language>
    <item>
      <title>De documentación y capturas al .feature: IA local con Llama 3.2 + Llava</title>
      <dc:creator>abarragancosto</dc:creator>
      <pubDate>Mon, 19 May 2025 08:00:00 +0000</pubDate>
      <link>https://dev.to/abarragancosto/de-documentacion-y-capturas-al-feature-ia-local-con-llama-32-llava-3lbg</link>
      <guid>https://dev.to/abarragancosto/de-documentacion-y-capturas-al-feature-ia-local-con-llama-32-llava-3lbg</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;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.&lt;br&gt;&lt;br&gt;
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...&lt;br&gt;&lt;br&gt;
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.&lt;br&gt;&lt;br&gt;
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.  &lt;/p&gt;

&lt;p&gt;Modelos que se utilizarán:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tarea&lt;/th&gt;
&lt;th&gt;Modelo&lt;/th&gt;
&lt;th&gt;Peso Q4&lt;/th&gt;
&lt;th&gt;RAM real&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Texto → Gherkin&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Llama 3.2&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;4.4 GB&lt;/td&gt;
&lt;td&gt;6–8 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Imagen + texto → Gherkin&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Llava&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;4.7 GB&lt;/td&gt;
&lt;td&gt;7-8 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  1. ¿Por qué ejecutar la IA &lt;strong&gt;en local&lt;/strong&gt;?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Privacidad y cumplimiento&lt;/strong&gt;  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.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Coste cero &amp;amp; offline&lt;/strong&gt;  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.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Iteración rápida&lt;/strong&gt;  Modificas prompts, re‑corres, comparas… sin esperar cola externa.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Independencia&lt;/strong&gt;  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.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  2. Setup
&lt;/h2&gt;

&lt;p&gt;En esta sección vamos a preparar el entorno necesario para ejecutar nuestro generador de escenarios &lt;code&gt;.feature&lt;/code&gt; usando modelos LLM locales.&lt;/p&gt;

&lt;h3&gt;
  
  
  ¿Qué es Ollama?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://ollama.com/" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt;&lt;/strong&gt; es una herramienta que permite ejecutar modelos de lenguaje (LLM) de forma &lt;strong&gt;local&lt;/strong&gt; en tu equipo, sin necesidad de depender de servicios en la nube. Ofrece multitud de módulos de diferentes tamaños y propósitos.&lt;/p&gt;

&lt;h3&gt;
  
  
  2.1. Instalar Ollama
&lt;/h3&gt;

&lt;p&gt;Dependiendo de tu sistema operativo, puedes instalar Ollama de dos formas:&lt;/p&gt;

&lt;h4&gt;
  
  
  Opción 1. Instalación rápida por terminal
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Para macOS&lt;/span&gt;
brew &lt;span class="nb"&gt;install &lt;/span&gt;ollama

&lt;span class="c"&gt;# Para Windows&lt;/span&gt;
winget &lt;span class="nb"&gt;install &lt;/span&gt;Ollama.Ollama

&lt;span class="c"&gt;# Para Linux&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://ollama.com/install.sh | sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Nota&lt;/strong&gt;: Necesitarás tener instalado &lt;code&gt;brew&lt;/code&gt; (macOS), &lt;code&gt;winget&lt;/code&gt; (Windows) o &lt;code&gt;curl&lt;/code&gt; (Linux). Si no los tienes, consulta su documentación correspondiente.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Opción 2. Instalación manual desde su web
&lt;/h4&gt;

&lt;p&gt;También puedes instalar Ollama como cualquier otro programa, descargándolo directamente desde su web oficial:&lt;br&gt;
&lt;strong&gt;&lt;a href="https://ollama.com/download" rel="noopener noreferrer"&gt;Descargar Ollama&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

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


&lt;h3&gt;
  
  
  2.2. Iniciar el servidor de Ollama
&lt;/h3&gt;

&lt;p&gt;Una vez instalado Ollama, es necesario arrancar el servidor local, que es el encargado de gestionar los modelos y responder a nuestras peticiones.&lt;/p&gt;
&lt;h4&gt;
  
  
  &lt;strong&gt;Si lo instalaste desde la terminal&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Ejecuta el siguiente comando para lanzar el servidor en segundo plano:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama serve &amp;amp;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esto dejará el servidor corriendo y listo para recibir peticiones desde otros scripts o herramientas.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Si lo instalaste manualmente desde la web&lt;/strong&gt;
&lt;/h4&gt;

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

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Importante&lt;/strong&gt;: A partir de este punto, todos los pasos siguientes funcionarán exactamente igual, independientemente del método de instalación que hayas elegido.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  2.3. Descargar modelos LLM
&lt;/h3&gt;

&lt;p&gt;Una vez iniciado el servidor, vamos a descargar los modelos que utilizaremos para generar nuestros escenarios &lt;code&gt;.feature&lt;/code&gt; y para describir interfaces a partir de imágenes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama pull llama3.2
ollama pull llava
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  ¿Por qué estos modelos?
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;llama3.2&lt;/code&gt;&lt;/strong&gt;: modelo de texto optimizado para tareas complejas como generación de código, razonamiento y QA avanzado. Lo utilizaremos para generar escenarios en lenguaje Gherkin. Aunque es un modelo grande para el uso puntual que haremos aquí, lo descargamos desde el principio para tenerlo disponible en local y reutilizarlo más adelante, por ejemplo, para generar código de automatización con Selenium en futuros proyectos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;llava&lt;/code&gt;&lt;/strong&gt;: modelo multimodal que puede interpretar tanto texto como imágenes. Lo utilizamos específicamente para extraer descripciones detalladas de interfaces a partir de capturas de pantalla. Su capacidad de visión lo hace ideal para este tipo de tareas sin depender de soluciones en la nube.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  2.4. Clonar el repositorio del proyecto
&lt;/h3&gt;

&lt;p&gt;Clonamos el proyecto base que contiene toda la lógica para interactuar con los modelos, pasarles los prompts adecuados y generar archivos &lt;code&gt;.feature&lt;/code&gt; automáticamente.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/abarragancosto/llm-feature-gen.git
&lt;span class="nb"&gt;cd &lt;/span&gt;llm-feature-gen
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;En este repositorio encontrarás:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scripts para lanzar peticiones a los modelos&lt;/li&gt;
&lt;li&gt;Templates de prompts optimizados&lt;/li&gt;
&lt;li&gt;Utilidades para guardar las salidas directamente como archivos &lt;code&gt;.feature&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  2.5. Crear entorno virtual e instalar dependencias
&lt;/h3&gt;

&lt;p&gt;Creamos un entorno virtual para aislar las dependencias del proyecto:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;-m&lt;/span&gt; venv .venv &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;source&lt;/span&gt; .venv/bin/activate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Y luego instalamos todos los paquetes necesarios:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Esto incluye bibliotecas para interactuar con Ollama, procesar imágenes, manejar prompts, etc.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  3. Ejecutar programa
&lt;/h2&gt;

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




&lt;h3&gt;
  
  
  Argumentos disponibles
&lt;/h3&gt;

&lt;p&gt;El script admite varios parámetros para personalizar la ejecución:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parámetro&lt;/th&gt;
&lt;th&gt;Descripción&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;requirements&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ruta al archivo de requisitos (en formato &lt;code&gt;.txt&lt;/code&gt; o &lt;code&gt;.md&lt;/code&gt;). &lt;strong&gt;Obligatorio&lt;/strong&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;-m&lt;/code&gt;, &lt;code&gt;--mockup&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Ruta a una imagen de la interfaz si se desea usar un modelo con capacidad visual. (Opcional)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;-n&lt;/code&gt;, &lt;code&gt;--num&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Número de escenarios o casos a generar (por defecto: 5). (Opcional)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;-o&lt;/code&gt;, &lt;code&gt;--output&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Nombre del archivo de salida. Por defecto: &lt;code&gt;output.feature&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;-f&lt;/code&gt;, &lt;code&gt;--format&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Formato de salida: &lt;code&gt;feature&lt;/code&gt; para Gherkin o &lt;code&gt;txt&lt;/code&gt; para casos de uso en texto plano. &lt;strong&gt;Obligatorio&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--prompt-file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ruta a un archivo con prompt personalizado (opcional).&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  3.1 Solo texto
&lt;/h3&gt;

&lt;p&gt;Si solo tienes una descripción funcional (sin mock-up) y quieres generar escenarios en formato &lt;code&gt;.feature&lt;/code&gt;, ejecuta:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python generate_features.py examples/requirements.txt &lt;span class="nt"&gt;-o&lt;/span&gt; login.feature
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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




&lt;p&gt;Como demostración del ejemplo, el fichero &lt;code&gt;requirements.txt&lt;/code&gt; contiene lo siguiente:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpdtzajsqbo5udz77bsjr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpdtzajsqbo5udz77bsjr.png" alt="Diagrama flujo" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Una vez ejecutado, por consola nos saldrá:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyy6e9drbtntgxs60iy13.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyy6e9drbtntgxs60iy13.png" alt="Ejecución solo texto" width="800" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El resultado de la feature será:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fztlj11fcnligwfcza8ri.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fztlj11fcnligwfcza8ri.png" alt="Resultado solo texto" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  3.2 Texto &lt;strong&gt;+&lt;/strong&gt; mock‑up
&lt;/h3&gt;

&lt;p&gt;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:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python generate_features.py examples/requirements.txt &lt;span class="nt"&gt;--mockup&lt;/span&gt; examples/image.png &lt;span class="nt"&gt;-n&lt;/span&gt; 8 &lt;span class="nt"&gt;-o&lt;/span&gt; loginMockup.feature
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📌 Esto generará 8 escenarios combinando texto e imagen, y los guardará en &lt;code&gt;loginMockup.feature&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;La consola mostrará el resultado de la interpretación de imagen a texto:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjpxljb392yflvc55f58u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjpxljb392yflvc55f58u.png" alt="Imagen a texto" width="800" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El resultado de la feature sería:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjku0da7md5e13cinyw0p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjku0da7md5e13cinyw0p.png" alt="Resultado con imagen" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Ejemplo con salida en texto plano
&lt;/h3&gt;

&lt;p&gt;Si no quieres escenarios en Gherkin sino casos de uso en un txt, cambia el formato de salida con &lt;code&gt;--format txt&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python generate_features.py examples/requirements.txt &lt;span class="nt"&gt;-f&lt;/span&gt; txt &lt;span class="nt"&gt;-o&lt;/span&gt; casos_uso.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Usar un prompt personalizado
&lt;/h3&gt;

&lt;p&gt;Puedes utilizar tu propio archivo de prompt (por ejemplo, para adaptar el estilo o el idioma):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python generate_features.py examples/requirements.txt &lt;span class="nt"&gt;--prompt-file&lt;/span&gt; custom_prompt.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. Comentarios finales
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;La revisión humana es clave&lt;/strong&gt;: Aunque el uso de modelos LLM agiliza notablemente la generación de escenarios y casos de uso, &lt;strong&gt;no sustituye el criterio de un buen QA&lt;/strong&gt;. Lo generado puede servir como punto de partida, inspiración o repaso de casos que podrían haberse pasado por alto, pero siempre debe haber una validación manual.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Versión ligera recomendada&lt;/strong&gt;: Si &lt;code&gt;llava&lt;/code&gt; te resulta pesado en tu equipo, te recomiendo probar la versión optimizada &lt;code&gt;llava:7b-v1.5-q4_0&lt;/code&gt;. Es la que he utilizado para las pruebas y ofrece un excelente equilibrio entre rendimiento y calidad.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Objetivo de este post&lt;/strong&gt;: Esta primera entrega ha sido una toma de contacto para mostrar cómo puedes trabajar con modelos LLM de forma &lt;strong&gt;local&lt;/strong&gt;, sin depender de APIs externas, y generar &lt;code&gt;.feature&lt;/code&gt; files de forma automática a partir de requisitos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Lo realmente valioso&lt;/strong&gt;: Más allá de automatizar la generación de archivos &lt;code&gt;.feature&lt;/code&gt;, lo importante aquí es mostrar que &lt;strong&gt;tener modelos potentes en tu máquina local es posible, gratuito y muy útil en flujos QA reales&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  5. Próximos pasos
&lt;/h2&gt;

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

&lt;p&gt;Este flujo completo permitirá generar desde requisitos hasta pruebas automatizadas listas para ejecución, todo asistido por modelos LLM.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. ¿Te animas a dar feedback?
&lt;/h2&gt;

&lt;p&gt;¿Has probado este flujo? Me encantaría saber tu opinión:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;¿Te ha resultado útil este post?&lt;/li&gt;
&lt;li&gt;¿Te gustaría más profundidad técnica o que fuera más directo al grano?&lt;/li&gt;
&lt;li&gt;¿Te interesa que detalle más las herramientas utilizadas?&lt;/li&gt;
&lt;li&gt;¿Echas de menos más ejemplos o capturas?&lt;/li&gt;
&lt;/ul&gt;

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

</description>
    </item>
    <item>
      <title>Arranca QA IA Weekly: lo que vas a encontrar aquí</title>
      <dc:creator>abarragancosto</dc:creator>
      <pubDate>Mon, 12 May 2025 08:00:00 +0000</pubDate>
      <link>https://dev.to/abarragancosto/arranca-qa-ia-weekly-lo-que-vas-a-encontrar-aqui-1ahh</link>
      <guid>https://dev.to/abarragancosto/arranca-qa-ia-weekly-lo-que-vas-a-encontrar-aqui-1ahh</guid>
      <description>&lt;h2&gt;
  
  
  1. ¿Quién soy?
&lt;/h2&gt;

&lt;p&gt;¡Hola! Soy &lt;strong&gt;Alberto Barragán&lt;/strong&gt;, ingeniero informático con una década en calidad de software:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;2011-2016 — doble grado en Ingeniería Informática e Ingeniería de Computadores.
&lt;/li&gt;
&lt;li&gt;2015-2024 — QA Automation en proyectos fintech y sanitario: Java + Selenium/Appium, Javascript + WebdriverIO, Karate, Reporting...&lt;/li&gt;
&lt;li&gt;2024 — Máster en Inteligencia Artificial: investigación en OCR multimodal + traducción EN→ES.
&lt;/li&gt;
&lt;li&gt;Experimentos recurrentes con &lt;strong&gt;chatbots&lt;/strong&gt; (WhatsApp + Google Calendar, Skill de Alexa...).&lt;/li&gt;
&lt;li&gt;En la búsqueda constante sobre cómo los LLMs pueden ayudar en cualquier fase del testing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mi motivación: &lt;strong&gt;hacer que la calidad impulse al producto&lt;/strong&gt;, no que lo retrase ( y si puede ser ayudados por la IA, mejor)&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Por qué nace &lt;em&gt;QA × IA Weekly&lt;/em&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Falta de recursos en español&lt;/strong&gt; donde se junten automatización, patrones QA modernos y LLMs.
&lt;/li&gt;
&lt;li&gt;Compartir en público me obliga a poner las ideas en orden (y el feedback de la comunidad creo que me ayudará mucho).
&lt;/li&gt;
&lt;li&gt;Cada vez que cuento un PoC a un compañero, aparece alguien que dice:
&amp;gt; “¡Ojalá hubiera un paso-a-paso para probar eso en mi proyecto!”
Quiero convertir este blog en ese paso-a-paso.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  3. ¿Qué voy a publicar exactamente?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Elemento semanal&lt;/th&gt;
&lt;th&gt;Contenido&lt;/th&gt;
&lt;th&gt;Por qué te interesa&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🛠 &lt;strong&gt;PoC runnable&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Script, repo o docker que arranca en &amp;lt; 5 min.&lt;/td&gt;
&lt;td&gt;Puedes copiarlo sin tener que picar código.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;👀 &lt;strong&gt;GIF / diagrama&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Demo visual rápida: “antes → después”.&lt;/td&gt;
&lt;td&gt;Entiendes su función sin compilar nada.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📖 &lt;strong&gt;Explicación detallada&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Qué problema resolvemos, diseño de la solución y límites.&lt;/td&gt;
&lt;td&gt;Ahorra horas de prueba-error.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Nota:&lt;/strong&gt; si en algún PoC dispongo de datos duros (tiempo ahorrado, failure-rate, etc.) también los compartiré.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  4. Roadmap trimestre 1
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Semana&lt;/th&gt;
&lt;th&gt;Tema&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Presentación &amp;amp; declaración de intenciones&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;De documentación + mock-ups → casos de uso con Llama 3 + LLaVA&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Generador de datos sintéticos para tests parametrizados&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Casos de uso → código Selenium con ayuda de un LLM&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Visual regression con AShot + GPT-Vision&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;(El orden puede variar según preguntas que reciba o noticias del sector.)&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Qué &lt;strong&gt;no&lt;/strong&gt; encontrarás
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Post motivacionales vacíos: todo vendrá con código o disección técnica. Excepto en los que hable de mi o de mi opinión personal, que siempre los intentaré acompañar de datos reales y técnicos. &lt;/li&gt;
&lt;li&gt;Críticas a frameworks sin experimentos que las respalden.&lt;/li&gt;
&lt;li&gt;Cómo hacer una IA que resuelva todos los problemas de la automatización de pruebas&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  6. Cómo participar
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Comenta&lt;/strong&gt; qué te ha parecido el post. Me ayudarás a saber si voy en la dirección correcta o no. Me gustaría saber tu opinión sobre el tema y sobre cómo lo he contado ( si te ha parecido fácil, difícil, entendible... ), además del reto QA × IA que más te duele; priorizaré los temas más comentados.
&lt;/li&gt;
&lt;li&gt;⭐️ Dale &lt;em&gt;star&lt;/em&gt; al repo si un PoC te resulta útil: es la forma más clara de feedback.
&lt;/li&gt;
&lt;li&gt;Comparte los posts con tu equipo si crees que pueden ahorrarles tiempo.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Nos vemos la próxima semana con el PoC #1. Espero que sea de tu agrado ¡Gracias por leer!&lt;/p&gt;

</description>
      <category>qa</category>
      <category>testing</category>
      <category>automation</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
