Volver a Learning
🤖
Handbook 45 min lectura Claude Code Recursos Gratuitos

Claude Code para Testers
Guía Completa y Recursos Gratuitos

Claude Code no es un chatbot. Es un agente de software autónomo que razona, planifica y ejecuta tareas de ingeniería directamente desde tu terminal. Esta guía explica qué es, dónde aprender gratis y cómo transformar tu práctica de testing con IA.

Claude CodeTestingAILLMQA AutomationPerformanceMCPSkillsGratis
Por Rodrigo Campos · 2026-03-09
Tabla de contenidos

0. ¿Qué es un LLM?

Antes de hablar de Claude Code, necesitás entender qué hay debajo. Un LLM (Large Language Model) es un modelo de inteligencia artificial entrenado con enormes cantidades de texto — código, documentación, libros, artículos, conversaciones — para predecir cuál es la respuesta más útil dado un input en lenguaje natural.

No "piensa" como una persona, pero sí reconoce patrones, entiende contexto y genera respuestas coherentes. Claude (Anthropic), GPT-4 (OpenAI) y Gemini (Google) son todos LLMs. Claude Code es una interfaz especializada que usa Claude como motor.

Cómo funciona un LLM

📝

Tu prompt

"Mejorá esta HU, está incompleta"

🧠

LLM (Claude)

Analiza contexto + genera respuesta basada en patrones aprendidos

Output

HU mejorada con criterios de aceptación claros

✅ LO QUE UN LLM SÍ HACE BIEN

  • • Entender texto en lenguaje natural (HUs, tickets, docs)
  • • Generar código siguiendo instrucciones claras
  • • Identificar ambigüedades y casos borde en requisitos
  • • Transformar y formatear datos estructurados
  • • Resumir y explicar reportes de testing complejos
  • • Generar variaciones de datos de prueba

⚠️ LO QUE UN LLM NO HACE BIEN

  • • Garantizar que el código generado sea 100% correcto
  • • Acceder a información en tiempo real (sin herramientas)
  • • Recordar conversaciones anteriores sin contexto
  • • Tomar decisiones de negocio (eso es tuyo)
  • • Reemplazar el criterio del tester experimentado
  • • Ejecutar tests por sí mismo (necesita Claude Code)

LLM vs ChatGPT vs Claude Code — ¿cuál es la diferencia?

Término Qué es Analogía
LLM El motor de IA (Claude, GPT-4, Gemini) El motor de un auto
ChatGPT / Claude.ai Interfaz web para conversar con el LLM El volante y tablero del auto
Claude Code Agente CLI que usa Claude para tareas de ingeniería desde tu terminal Un auto autónomo con GPS, herramientas y acceso a tu garaje

1. ¿Qué es Claude Code?

Claude Code es el CLI oficial de Anthropic — la empresa detrás de Claude — que convierte el modelo de IA en un agente de ingeniería de software que opera directamente desde tu terminal. No es autocompletado, no es solo un chat: es un agente que puede leer archivos, escribir código, ejecutar comandos, navegar repositorios y completar tareas complejas de forma autónoma.

Fue lanzado en 2025 y desde entonces ha ganado adopción masiva en equipos de ingeniería por su capacidad de trabajar con contexto completo del codebase, no solo con snippets aislados.

Arquitectura de Claude Code

CLAUDE CODE Agente CLI Autónomo claude-sonnet / claude-opus Tu Terminal Instrucciones en lenguaje natural Tu Codebase Archivos, tests, configs, git Skills / CLAUDE.md Instrucciones especializadas Test Scripts Playwright, Gatling, k6, JMeter Análisis e Informes Resultados, bugs, reportes Acciones Autónomas git, npm, ejecución de tests ENTRADAS SALIDAS
🔍

Lectura de contexto completo

Lee todo tu repositorio — no solo el archivo abierto. Entiende la arquitectura, patrones de test existentes, configuraciones y dependencias.

⚙️

Ejecución de comandos

Ejecuta tests, lee reportes de error, corrige el código y vuelve a ejecutar — todo en un solo flujo sin salir de la terminal.

🧠

Razonamiento multi-paso

No genera código de forma ciega. Planifica, verifica sus supuestos, detecta errores y corrige antes de dar la tarea por terminada.

🎯

Skills especializados

Instala skills de dominio (performance testing, QA, etc.) que se activan automáticamente según el contexto de tu petición.

Instalación (requiere Node.js 18+)

npm install -g @anthropic-ai/claude-code

# Verificar instalación
claude --version

# Iniciar en tu proyecto de testing
cd mi-proyecto-tests
claude

2. Claude Code vs otras herramientas IA

Hay múltiples herramientas de IA para desarrollo. Entender la diferencia es crítico para usarlas correctamente en testing.

Herramienta Tipo Contexto de codebase Ejecuta comandos Ideal para testing
Claude Code Agente CLI Completo Scripts, análisis, refactor
GitHub Copilot Autocompletado IDE Parcial (archivo abierto) No Completar código de tests
ChatGPT / Claude.ai Chat web Solo lo que pegas No Ideas, consultas puntuales
Cursor / Windsurf IDE con IA Completo Limitado Edición con contexto
Gemini Code Assist IDE Plugin Parcial No Sugerencias en IDE

La ventaja clave para testers

Claude Code puede leer tus reportes de error, entender el contexto del test que falló, escribir el fix, ejecutarlo y verificar que pasa — todo en un ciclo autónomo. Ningun otro tool hace esto completo desde la terminal.

3. El ecosistema: Skills, Agentes, MCP y Plugins

Cuando empezás a usar Claude Code, escuchás términos que pueden confundir: skill, agente, MCP, plugin. No son sinónimos — cada uno tiene un rol distinto. Acá te explico cada uno con ejemplos concretos de testing.

Skill

Instrucciones especializadas en Markdown

Un archivo SKILL.md que le dice a Claude cómo comportarse en ciertos contextos. Lo instalás una vez en .claude/skills/ y lo invocás con /nombre-skill.

Ejemplo QA:

/generate-test-cases — skill que siempre genera casos con Given/When/Then, cubre happy path + edge cases + negativos con el mismo formato

🤖

Agente

Proceso autónomo que ejecuta tareas encadenadas

Claude Code es un agente. Puede leer archivos, ejecutar comandos, analizar resultados y tomar decisiones sin que vos intervengas en cada paso. Le dás un objetivo y lo resuelve solo.

Ejemplo QA:

"Lee todos los tests fallidos del último run, agrupalos por módulo y generá un bug report por cada grupo" — Claude lo hace sin que vos guíes cada paso

🔌

MCP (Model Context Protocol)

Conector con herramientas externas

Protocolo que permite a Claude conectarse con herramientas externas: Jira, Confluence, bases de datos, APIs, el navegador. Con MCP, Claude puede leer tickets directamente desde Jira en lugar de que vos los copies a mano.

Ejemplo QA:

MCP Jira → "Leé la HU-234 y generá los casos de prueba" — Claude la lee directo de Jira sin que vos copies nada

🧩

Plugin / Extensión IDE

Claude integrado en tu editor de código

Extensiones para VS Code, JetBrains o Cursor que llevan Claude directamente al editor. Pedís sugerencias sin salir del archivo donde estás escribiendo el test.

Ejemplo QA:

Cursor o GitHub Copilot — escribís el nombre del test y Claude/Copilot completa el código automáticamente mientras tipeas

Comparación rápida para testers

Concepto ¿Quién lo activa? ¿Dónde vive? Caso de uso QA típico
Skill Tú, con /comando .claude/skills/ Generar test cases siempre con el mismo formato
Agente Tú, con instrucción en chat Claude Code (es el agente) Analizar 50 tests fallidos y generar reporte automático
MCP Automático al conectar Servidor externo configurado Leer tickets de Jira o Confluence directamente
Plugin Automático en el editor VS Code / JetBrains / Cursor Autocomplete de tests mientras escribís

💡 ¿Por dónde empezar si sos nuevo?

Empezá solo con Claude Code + prompts manuales. No necesitás Skills ni MCP para ganar valor el primer día. Agregás Skills cuando tengas tareas que repetís mucho. MCP cuando quieras conectar con Jira, Confluence o tu base de datos de test data.

3. Cursos gratuitos disponibles

El ecosistema de aprendizaje para Claude Code y IA en testing está creciendo rápido. Aquí los recursos gratuitos más valiosos organizados por tipo.

Ruta de aprendizaje recomendada

1 Fundamentos Docs oficiales Anthropic.com ~2 horas 2 Prompt Engineering DeepLearning.AI Coursera (audit gratis) ~4 horas 3 Claude Code CLI Docs claude.ai/code YouTube Anthropic ~3 horas 4 Testing con Claude Skills + Práctica Este handbook 🎯 ¡Estás aquí!
📚

Documentación Oficial — Claude Code

Gratis 2-3 horas

La fuente primaria. Cubre instalación, comandos, configuración de CLAUDE.md, hooks, permisos y casos de uso. Incluye ejemplos prácticos.

docs.anthropic.com/claude-code → Plataforma: Web

🎓

Prompt Engineering for Developers — Anthropic + DeepLearning.AI

Gratis 4 horas

Curso corto pero muy denso. Enseña los principios de prompt engineering con la API de Anthropic. Base esencial para sacarle partido a Claude en cualquier contexto, incluido testing.

deeplearning.ai → Plataforma: Web (100% gratis)

🎯

Generative AI for Everyone — Coursera

Audit gratis 6 horas

Curso de Andrew Ng sobre IA generativa. La opción "audit" es completamente gratuita — sin certificado pero con acceso total al contenido. Excelente para entender las capacidades y limitaciones reales de los LLMs.

coursera.org → Plataforma: Web (audit = gratis)

▶️

Canal oficial de Anthropic en YouTube

Gratis

Demos reales de Claude Code, walkthroughs de features nuevos y casos de uso avanzados. Recomendado: la serie de demos de Claude Code mostrando flujos completos de desarrollo.

youtube.com/@Anthropic → Buscar: "Claude Code"

anthropics/claude-code — Repositorio oficial

Gratis

Repositorio oficial con ejemplos, CLAUDE.md templates, hooks de ejemplo y contribuciones de la comunidad. El lugar más actualizado para patterns y buenas prácticas.

github.com/anthropics/claude-code → Issues y Discussions

🌐

Comunidad y blogs técnicos

Gratis

Dev.to, Medium y Reddit (r/ClaudeAI, r/QualityAssurance) tienen artículos y casos reales de uso en testing. La comunidad comparte patterns, CLAUDE.md templates y flujos completos de automatización.

dev.to, medium.com, reddit.com/r/ClaudeAI

Resumen de recursos por nivel

Principiante

  • ✓ Docs oficiales Claude Code
  • ✓ YouTube Anthropic (demos)
  • ✓ Generative AI for Everyone

Intermedio

  • ✓ Prompt Engineering for Devs
  • ✓ GitHub anthropics/claude-code
  • ✓ Skills especializados

Avanzado

  • ✓ Construir tus propios skills
  • ✓ CLAUDE.md avanzado
  • ✓ Integración CI/CD con IA

4. Casos de uso en testing

Claude Code tiene aplicaciones concretas en todas las fases del ciclo de testing. Aquí el mapa completo de dónde y cómo usarlo.

Áreas de testing donde Claude Code agrega valor

CLAUDE
CODE

Generación de Test Cases

Desde requirements, BDD, edge cases

Tests Unitarios e Integración

Jest, Pytest, JUnit, coverage

E2E / UI Testing

Playwright, Cypress, Selenium + Page Objects

API Testing

REST, GraphQL, contratos, Postman collections

Performance Testing

Gatling, k6, JMeter scripts + análisis de reportes

Análisis y Reportes

Interpretación de fallos, bug reports automáticos

📝

Generación de test cases

Análisis de requirements

Ejemplo de prompt: "Genera casos de prueba para este endpoint de login, incluye edge cases y escenarios negativos"

🤖

Automatización E2E

Playwright / Cypress

Ejemplo de prompt: "Crea un test de Playwright para el flujo de checkout, basándote en la estructura de componentes existente"

Scripts de carga

Gatling / k6 / JMeter

Ejemplo de prompt: "Convierte este JMeter test a Gatling con 500 usuarios, ramp 5 min, y threshold de p95 < 800ms"

🔍

Análisis de fallos

Debug automático

Ejemplo de prompt: "Aquí está el stack trace del test que falló. Identifica la causa raíz y sugiere el fix"

📊

Interpretación de reportes

Performance analysis

Ejemplo de prompt: "Lee este reporte de Gatling y dime si hay regresiones respecto a los SLAs del CLAUDE.md"

🧪

Generación de test data

Data generation

Ejemplo de prompt: "Genera 1000 registros de usuarios con datos realistas en español para pruebas de carga"

6. Pirámide del testing con IA

La pirámide del testing define cuántos tests de cada tipo debería tener tu suite. Claude Code puede ayudarte en todos los niveles, pero el tipo de ayuda varía. Entender esto te dice qué pedirle según la tarea que tenés.

Pirámide del testing — dónde agrega valor la IA

🔺 E2E / UI Tests — pocos

Playwright · Cypress · Selenium

IA: genera Page Objects, flujos completos, data-testid selectors

🔶 API / Integration Tests — moderados

Postman · RestAssured · Supertest · Pact

IA: genera colecciones, contract tests, validaciones de schema, datos de prueba

⚡ Performance Tests — transversal

k6 · Gatling · JMeter · Locust · Artillery

IA: escribe scripts de carga, configura thresholds, interpreta resultados y genera reportes

🟩 Unit Tests — la base, la mayoría

Jest · JUnit · Pytest · NUnit · Vitest

IA: mayor impacto — genera, refactoriza y aumenta cobertura rápidamente dado el volumen

Prompts por nivel de la pirámide

Unit Tests — Jest, JUnit, Pytest
Tengo esta función en TypeScript:

[pegá el código de la función aquí]

Generá tests unitarios con Jest que cubran:
- Happy path con valores válidos
- Valores límite (mínimo, máximo, exacto)
- Casos de error esperados
- Inputs nulos, undefined y string vacío
Usá describe/it, nombres en español y mocks donde corresponda.
API / Integration Tests — Postman, RestAssured, Supertest
Tengo este endpoint REST:
POST /api/users
Body: literal email, name, role literal
Respuesta exitosa: 201 + literal id, email, name, createdAt literal

Generá tests con Supertest que validen:
- 201 con datos válidos
- 400 con email inválido o formato incorrecto
- 409 si el email ya está registrado
- 422 si faltan campos requeridos
- 401 sin token de autenticación
Incluí assertions sobre el body y los headers de respuesta.
E2E / UI Tests — Playwright, Cypress
Tengo este flujo de usuario:
1. Usuario va a /checkout
2. Completa formulario de envío
3. Ingresa tarjeta de crédito
4. Confirma la compra
5. Ve pantalla de confirmación con número de orden

Generá un test E2E con Playwright que:
- Use Page Object Model (una clase por página)
- Tenga datos de prueba en un archivo fixtures/checkout.json
- Valide mensajes de éxito y número de orden
- Use selectores data-testid (no clases CSS)
- Incluya screenshot en caso de fallo
Performance Tests — k6, Gatling, JMeter
Necesito un script de k6 para el endpoint:
GET /api/products?category=electronics

Configurar:
- Ramp-up de 2 minutos hasta 100 usuarios virtuales
- Steady state de 5 minutos a 100 VUs
- Ramp-down de 1 minuto
- Thresholds: p95 menor a 500ms, error rate menor a 1%

Incluir:
- Métricas personalizadas (custom trends)
- Checks para status code y tiempo de respuesta
- Datos de categoría parametrizados

7. Leer HUs y generar datos de prueba

Dos tareas que los testers hacen todos los días y que la IA puede acelerar drásticamente: analizar Historias de Usuario para encontrar ambigüedades antes de escribir una línea de código, y generar datos de prueba variados y realistas.

7.1 Leer y mejorar Historias de Usuario

Una HU mal escrita produce tests incorrectos y bugs en producción. Claude puede detectar criterios de aceptación ambiguos, casos borde no contemplados y preguntas que deberías hacerle al PO antes de empezar.

Prompt 1 — Detectar ambigüedades

Analizá esta Historia de Usuario como un QA Senior:

[pegá la HU completa]

Identificá:
1. Criterios de aceptación incompletos o ambiguos
2. Casos borde no mencionados
3. Flujos alternativos que faltan
4. Preguntas que debería responder el PO antes de desarrollar
5. Dependencias técnicas que podrían afectar el testing

Formateá la respuesta como una lista de observaciones ordenadas por prioridad.

Prompt 2 — Mejorar criterios de aceptación

Tengo esta HU con criterios de aceptación vagos:

[pegá la HU]

Reescribí los criterios de aceptación usando el formato:
DADO [contexto inicial]
CUANDO [acción del usuario]
ENTONCES [resultado esperado]

Agregá también criterios para:
- El caso donde algo falla
- Validaciones de campos
- Estados de carga y error en la UI

Prompt 3 — Generar casos de prueba desde HU

Con base en esta HU:

[pegá la HU]

Generá una tabla de casos de prueba con estas columnas:
| ID | Nombre | Precondición | Pasos | Resultado esperado | Prioridad |

Incluí casos para:
- Happy path (flujo principal exitoso)
- Validaciones de formulario (campos vacíos, formato inválido)
- Límites (máximo de caracteres, valores extremos)
- Permisos (usuario sin acceso, sesión expirada)
- Concurrencia si aplica

7.2 Generar datos de prueba

Los datos de prueba malos generan falsos positivos. Claude puede generar conjuntos de datos variados, realistas y que cubran casos borde que vos no pensarías en el momento.

Prompt 1 — Dataset completo para formulario

Tengo un formulario de registro con estos campos:
- Nombre completo (texto, requerido, 2-100 caracteres)
- Email (formato válido, requerido, único)
- Teléfono (formato argentino, opcional)
- Fecha de nacimiento (mayor de 18 años, requerido)
- Contraseña (mínimo 8 chars, 1 mayúscula, 1 número)

Generá un dataset de 20 registros que incluya:
- 5 casos válidos variados (nombres con acentos, apellidos compuestos)
- 5 casos con email inválido (formatos distintos)
- 3 casos con teléfono en diferentes formatos
- 3 casos con fecha de nacimiento límite (exactamente 18 años)
- 4 casos con contraseña inválida (distintas reglas violadas)

Formateá como JSON array.

Prompt 2 — Datos de prueba para API REST

Necesito datos de prueba para testear una API de e-commerce.

Endpoint: POST /api/orders
Schema: { userId, items: [{productId, qty, price}], shippingAddress, paymentMethod }

Generá:
1. 3 órdenes válidas con distintas combinaciones de items
2. Órdenes con valores límite (1 item, 50 items, qty = 0, qty = 999)
3. Órdenes con campos faltantes (cada campo faltante en un caso separado)
4. Órdenes con tipos de dato incorrectos (string donde va number, etc.)
5. 2 casos con direcciones de envío en distintos países

Formato: JSON con un comentario por caso indicando qué valida.

Prompt 3 — Datos de carga para performance

Necesito un archivo CSV con datos de usuarios para un test de carga con k6.

Campos necesarios: username, password, email, region
Requisitos:
- 1000 registros únicos
- Usernames sin caracteres especiales
- Passwords que cumplan: 8+ chars, 1 mayúscula, 1 número
- Emails con dominios variados (gmail, hotmail, empresa.com)
- Regiones: distribución realista (40% LATAM, 30% USA, 30% Europa)

Generá los primeros 20 como ejemplo y dame el script de Node.js
para generar los 1000 completos.

💡 Tip: guardá tus mejores prompts

Una vez que encontrás un prompt que te da buenos resultados, guardalo en un archivo prompts/qa-prompts.md en tu proyecto. Podés pedirle a Claude que lea ese archivo antes de ejecutar una tarea: "Leé prompts/qa-prompts.md y usá el formato de test cases que describe".

5. Generación de test cases con IA

Una de las tareas más tediosas en testing es derivar test cases exhaustivos de un requisito. Claude Code puede hacerlo en segundos, con cobertura de happy paths, edge cases, escenarios negativos y condiciones de frontera.

PROMPT Petición al agente
Lee el archivo src/auth/login.service.ts y genera:
1. Feature file BDD en Gherkin para login
2. Incluye: happy path, contraseña incorrecta,
   usuario no existe, cuenta bloqueada, rate limiting
3. Formato Cucumber compatible con nuestro setup
OUTPUT Resultado generado
Feature: User Authentication - Login
  As a registered user
  I want to log in to the platform
  So that I can access my account

  Background:
    Given the application is running
    And the database is seeded with test users

  Scenario: Successful login with valid credentials
    Given I am on the login page
    When I enter valid email "user@test.com"
    And I enter valid password "SecurePass123!"
    And I click the login button
    Then I should be redirected to the dashboard
    And I should see a welcome message

  Scenario: Failed login with incorrect password
    Given I am on the login page
    When I enter valid email "user@test.com"
    And I enter incorrect password "WrongPass"
    And I click the login button
    Then I should see error "Invalid credentials"
    And I should remain on the login page
    And the failed attempt should be logged

  Scenario: Failed login with non-existent user
    Given I am on the login page
    When I enter non-existent email "ghost@test.com"
    And I enter any password "AnyPass123"
    And I click the login button
    Then I should see error "Invalid credentials"
    And the response time should be similar to valid user (anti-enumeration)

  Scenario: Login blocked after 5 failed attempts
    Given I am on the login page
    And I have failed login 4 times with email "user@test.com"
    When I fail a 5th login attempt
    Then I should see error "Account temporarily locked"
    And I should not be able to attempt login for 15 minutes

  Scenario Outline: Rate limiting on login endpoint
    Given I am on the login page
    When I make <attempts> login attempts in <seconds> seconds
    Then I should receive a 429 Too Many Requests response
    Examples:
      | attempts | seconds |
      | 10       | 60      |
      | 5        | 10      |

Tips para mejores resultados

  • ✓ Apunta al archivo fuente: Lee src/auth/login.service.ts y genera...
  • ✓ Especifica el formato de salida: Gherkin / Jest / Pytest
  • ✓ Menciona el contexto de negocio: reglas de validación, SLAs esperados
  • ✓ Pide edge cases explícitamente: incluye SQL injection, XSS, valores null

6. Automatización de scripts de testing

Claude Code puede generar, depurar y refactorizar scripts de automatización — Playwright, Cypress, Selenium — con conocimiento completo de tu proyecto: configuración, helpers existentes, Page Objects, variables de entorno.

Ejemplo: Playwright E2E desde cero

Tenemos un flujo de checkout en React. Lee los componentes
en src/pages/checkout/ y genera un test Playwright E2E que:
- Navegue al carrito con 2 productos
- Complete el formulario de envío
- Ingrese datos de tarjeta de prueba (Stripe test mode)
- Verifique confirmación y número de orden
Usa los helpers que ya existen en tests/helpers/
import { test, expect } from '@playwright/test';
import { CartHelper, CheckoutHelper } from '../helpers';
import { TEST_CARDS } from '../fixtures/payment';

test.describe('Checkout Flow - E2E', () => {
  test.beforeEach(async ({ page }) => {
    await page.goto('/');
    await CartHelper.addProducts(page, [
      { sku: 'PROD-001', qty: 1 },
      { sku: 'PROD-002', qty: 2 }
    ]);
  });

  test('complete checkout with Stripe test card', async ({ page }) => {
    // Navigate to checkout
    await page.goto('/checkout');
    await expect(page.getByTestId('checkout-title')).toBeVisible();
    await expect(page.getByTestId('order-items')).toContainText('3 productos');

    // Fill shipping form
    await CheckoutHelper.fillShipping(page, {
      name: 'Test User',
      address: 'Calle Test 123',
      city: 'Buenos Aires',
      zip: '1000',
      country: 'AR'
    });

    // Payment with Stripe test card
    const stripeFrame = page.frameLocator('[name="stripe-card-element"]');
    await stripeFrame.locator('[placeholder="Número de tarjeta"]').fill(TEST_CARDS.visa);
    await stripeFrame.locator('[placeholder="MM / AA"]').fill('12/27');
    await stripeFrame.locator('[placeholder="CVC"]').fill('123');

    // Place order
    await page.getByRole('button', { name: 'Confirmar pedido' }).click();

    // Verify confirmation
    await expect(page).toHaveURL(/\/orders\/\d+\/confirmation/);
    const orderNumber = await page.getByTestId('order-number').textContent();
    expect(orderNumber).toMatch(/^ORD-\d{8}$/);
    await expect(page.getByTestId('success-message')).toBeVisible();
  });
});

Playwright

TypeScript / Python / Java

E2E, cross-browser

Cypress

JavaScript / TypeScript

E2E, component tests

Selenium

Java / Python / C#

Legacy, cross-browser

Jest / Vitest

JavaScript / TypeScript

Unit, integration

7. Performance testing con Claude Code

El performance testing es donde Claude Code brilla especialmente porque los scripts son complejos, la sintaxis varía por herramienta y los patrones de carga (ramp-up, steady state, spike) requieren razonamiento estructurado.

Flujo de performance testing con Claude Code

Definir escenario

Usuarios, ramp, thresholds

Generar script

Gatling / k6 / JMeter

Ejecutar test

Claude corre el comando

Analizar reporte

Leer HTML / JSON

Fix & iterar

Ajustar y repetir

● Todo autónomo

Ejemplo: script k6 generado

Genera un test de k6 para la API /api/search:
- 0 → 100 VU en 2 min (ramp-up)
- Steady state: 100 VU por 5 min
- Ramp-down: 100 → 0 en 1 min
- Threshold: p95 < 500ms, error rate < 1%
- Headers de autenticación JWT del .env
import http from 'k6/http';
import { check, sleep } from 'k6';
import { Trend, Rate } from 'k6/metrics';

const searchDuration = new Trend('search_duration');
const errorRate = new Rate('error_rate');

export const options = {
  stages: [
    { duration: '2m', target: 100 },  // ramp-up
    { duration: '5m', target: 100 },  // steady state
    { duration: '1m', target: 0 },    // ramp-down
  ],
  thresholds: {
    'search_duration': ['p(95)<500'],
    'error_rate': ['rate<0.01'],
    'http_req_duration': ['p(95)<500'],
  },
};

const BASE_URL = __ENV.API_BASE_URL || 'https://api.example.com';
const JWT_TOKEN = __ENV.JWT_TOKEN;

const searchTerms = ['laptop', 'smartphone', 'tablet', 'headphones'];

export default function () {
  const term = searchTerms[Math.floor(Math.random() * searchTerms.length)];

  const res = http.get(`${BASE_URL}/api/search?q=${term}&limit=20`, {
    headers: {
      'Authorization': `Bearer ${JWT_TOKEN}`,
      'Content-Type': 'application/json',
    },
  });

  const success = check(res, {
    'status is 200': (r) => r.status === 200,
    'has results': (r) => JSON.parse(r.body).results?.length > 0,
    'response time OK': (r) => r.timings.duration < 500,
  });

  searchDuration.add(res.timings.duration);
  errorRate.add(!success);

  sleep(1);
}

¿Usas Gatling? Tenemos un skill dedicado

El skill performance-testing-skills se instala localmente y se activa automáticamente cuando describes tareas de load testing con Gatling. Cubre Java, Kotlin, Scala, TypeScript y JavaScript.

Ver Performance Testing Skills →

8. Análisis de resultados con Claude Code

Los reportes de testing (Gatling HTML, JUnit XML, JSON de k6, logs de Playwright) contienen información valiosa pero difícil de interpretar rápidamente. Claude Code puede leerlos, identificar patrones y generar resúmenes ejecutivos.

1

Leer el reporte de Gatling

Lee el archivo target/gatling/simulation-20260309/simulation.log
y dime:
1. ¿Cuáles requests superaron el SLA de 800ms p95?
2. ¿Hay errores > 1% en algún endpoint?
3. ¿En qué minuto se observó el pico de latencia?
2

Comparar dos ejecuciones

Tengo dos reportes: baseline.json y after-deploy.json
Compara p50, p95, p99 y error rate entre ambos.
¿Hay regresión de performance en el deploy?
Genera tabla comparativa y recomendación.
3

Generar bug report automático

Este es el stack trace del test que falló en CI.
Lee también el código en src/services/payment.service.ts
Genera un bug report Markdown listo para Jira con:
- Descripción, pasos para reproducir, logs relevantes

Ejemplo de análisis generado

🔴

SLA violation detectado

POST /api/checkout → p95: 1.247ms (SLA: 800ms) | Error rate: 2.3% (SLA: 1%)

🟡

Pico detectado en minuto 7

Coincide con el ramp-up máximo. Posible saturación del connection pool en la DB.

🟢

Endpoints dentro de SLA

GET /api/products, GET /api/search, GET /api/user — todos bajo 300ms p95

9. Skills para testing

Los Claude Code Skills son archivos Markdown que instalas una vez en ~/.claude/skills/ o en .claude/skills/ del proyecto. Contienen instrucciones especializadas que el agente aplica automáticamente cuando el contexto lo requiere.

Estructura de un skill

# Instalar skill desde GitHub
git clone https://github.com/rcampos09/performance-testing-skills
cp performance-testing-skills/.claude/skills/* ~/.claude/skills/

# O crear tu propio skill
mkdir -p ~/.claude/skills
cat > ~/.claude/skills/qa-testing.md << 'EOF'
# QA Testing Expert
Trigger: cuando el usuario mencione "test", "QA", "testing", "automatización"
...instrucciones especializadas...
EOF

performance-testing-skills

Skill especializado en Gatling para Java, Kotlin, Scala, TypeScript y JavaScript. Patrón de 5 bloques, 7 errores críticos a evitar, templates listos.

GatlingLoad TestingMITOpen Source
Ver documentación →
🧪

Crea tus propios skills de QA

Puedes crear skills propios para tu stack: Playwright + TypeScript, Cypress + React, API testing con Pactflow, etc. Solo requiere un archivo Markdown con instrucciones.

PlaywrightCypressPactRestAssured

Template CLAUDE.md para proyectos de testing

# CLAUDE.md — Proyecto de Testing

## Stack de testing
- Framework: Playwright + TypeScript
- Unit tests: Jest + Testing Library
- Performance: Gatling (Java DSL)
- Reports: Allure + HTML reports en /reports/

## Convenciones
- Page Objects en tests/pages/
- Fixtures en tests/fixtures/
- Helpers en tests/helpers/
- Nunca generar datos hardcodeados, usar faker

## SLAs de performance
- p95 < 500ms para APIs
- p95 < 2000ms para flujos E2E
- Error rate < 0.5%

## Comandos
- npm test → Jest unit tests
- npm run e2e → Playwright
- mvn gatling:test → Performance tests

10. Workflow práctico diario

Así luce un día típico de un tester que integra Claude Code en su workflow. El objetivo no es reemplazar criterio profesional — es eliminar el trabajo mecánico y enfocarse en lo que realmente importa.

🌅
Mañana

Review de nuevas features en desarrollo

  1. 1. claude → "Lee los PRs merged ayer y genera test cases para los endpoints nuevos"
  2. 2. Claude lee el diff, entiende los cambios y genera test cases en Gherkin o directamente en tu framework
  3. 3. Revisas y ajustas los casos críticos de negocio
💻
Trabajo

Implementación de tests automatizados

  1. 1. claude → "Implementa los test cases en Playwright para el módulo de pagos"
  2. 2. Claude crea los Page Objects, fixtures y scripts completos
  3. 3. Ejecuta los tests, lee los errores y los corrige automáticamente
🔄
CI/CD

Análisis de fallos en pipeline

  1. 1. claude → "El test de checkout falló en CI. Lee los logs y el código afectado"
  2. 2. Claude analiza el stack trace, identifica la causa raíz y propone el fix
  3. 3. Genera el bug report para Jira si el fallo es del código productivo
📊
Cierre

Análisis de resultados del día

  1. 1. claude → "Resume los resultados de testing del día y genera el reporte para el equipo"
  2. 2. Claude consolida coverage, tests pasados/fallados, nuevos bugs encontrados
  3. 3. Exporta resumen ejecutivo listo para compartir en Slack o correo

Impacto estimado en tiempo por tarea

Sin Claude Code
Con Claude Code

Generar test cases (10 req.)

3 h
15 min

Script load testing Gatling

2 h
10 min

Análisis reporte performance

60 min
5 min

Script Playwright E2E

90 min
12 min

Bug report documentado

30 min
3 min

Estimaciones aproximadas basadas en experiencia real. Los tiempos varían según complejidad del proyecto.

11. Biblioteca de prompts para testers

Los prompts que realmente funcionan — probados en proyectos reales

La diferencia entre un tester que "prueba" Claude Code y uno que lo integra como herramienta profesional está en la calidad del prompt. Aquí los patrones que producen resultados de alta calidad, organizados por contexto. Cópialos, adáptalos a tu stack.

La regla de oro del prompting para testing

Un buen prompt de testing siempre responde tres preguntas: ¿Qué archivo o contexto leer?¿Qué producir exactamente?¿Con qué restricciones/convenciones?. Sin estas tres partes, el output es genérico e inútil.

Análisis de requisitos
De historia de usuario a test cases Prompt
Lee el archivo docs/stories/US-142-checkout.md.
Genera test cases en Gherkin cubriendo:
- Happy path completo
- Validaciones de formulario (campos vacíos, formatos inválidos)
- Casos de borde (carrito vacío, stock insuficiente, producto discontinuado)
- Escenarios de error de red y timeout
Formato: un Feature file por módulo funcional.
Idioma: español.

Por qué funciona: Especificar el archivo fuente + los tipos de escenarios + formato/idioma elimina la ambigüedad y produce output directamente usable.

Análisis de cobertura de tests existentes Prompt
Lee todos los archivos en tests/e2e/ y tests/unit/.
Compara contra los requisitos en docs/requirements.md.
Genera un reporte de coverage cualitativo que identifique:
1. Funcionalidades no cubiertas o parcialmente cubiertas
2. Test cases redundantes (mismo escenario en varios tests)
3. Prioridad de qué implementar primero según riesgo de negocio

Por qué funciona: Pedir análisis cualitativo de coverage va más allá de las métricas de cobertura de código — identifica gaps reales de negocio.

Automatización E2E
Page Object desde componente React
Lee el componente src/pages/LoginPage.tsx.
Crea un Page Object para Playwright en TypeScript siguiendo el patrón
de los Page Objects existentes en tests/pages/.
Incluye métodos para:
- navigate(), fillEmail(), fillPassword(), submit(), getErrorMessage()
- waitForNavigation() post-login exitoso
No uses selectores CSS frágiles; prioriza data-testid > role > text.

Por qué funciona: Apuntar a los POs existentes hace que Claude siga TUS convenciones, no las suyas. El resultado es coherente con el proyecto.

Test E2E completo con fixtures
Usando el Page Object en tests/pages/CheckoutPage.ts,
genera un test Playwright completo para el flujo de compra.
Usa los fixtures de usuario en tests/fixtures/users.json.
El test debe:
- Ser independiente (no depender de estado previo)
- Limpiar datos después de ejecutarse
- Tener assertions en cada paso crítico
- Seguir el patrón AAA (Arrange, Act, Assert)

Por qué funciona: Mencionar independencia, cleanup y AAA produce tests de verdad mantenibles, no scripts frágiles de happy-path.

Debug de test flaky
Este test falla intermitentemente en CI pero pasa en local.
Aquí el log de la última falla: [pega el log]
Aquí el test: [pega el código]
Analiza causas posibles de flakiness:
- Race conditions / timing issues
- Dependencias de estado externo
- Selectores no estables
Propone el fix y explica el trade-off de cada opción.

Por qué funciona: Pedir análisis de causas + trade-offs obliga a Claude a razonar, no solo aplicar un parche superficial.

Performance Testing
Script de carga desde OpenAPI spec
Lee el archivo docs/api/openapi.yaml.
Genera un test de Gatling en Java DSL para los endpoints del módulo /api/orders.
Patrón de carga: ramp 0→200 VU en 3 min, steady 5 min, ramp-down 2 min.
Thresholds definidos en CLAUDE.md.
Incluye:
- Feeders con datos de prueba realistas (CSV)
- Checks de status code y tiempo de respuesta
- Autenticación JWT usando variable de entorno PERF_TOKEN

Por qué funciona: Leer el OpenAPI spec garantiza que los endpoints, parámetros y payloads son correctos — sin adivinanzas.

Análisis de regresión de performance
Tengo dos archivos JSON de resultados de k6:
- baseline.json (antes del deploy)
- current.json (después del deploy)
Compara p50, p95, p99 y error rate para cada endpoint.
Genera:
1. Tabla comparativa Markdown
2. Lista de endpoints con regresión > 20%
3. Recomendación: ¿bloquear el deploy o permitirlo con monitoreo?
Basa la recomendación en los SLAs de CLAUDE.md

Por qué funciona: Pedir una recomendación accionable (bloquear/permitir) fuerza a Claude a interpretar los datos en contexto de negocio.

API Testing
Contrato de API con validación de esquema
Lee el archivo src/api/routes/payments.ts.
Genera tests de contrato usando Pact (consumer-driven) para el endpoint POST /api/payments.
Incluye:
- Casos de pago exitoso, fondos insuficientes, tarjeta inválida
- Validación de esquema JSON de respuesta
- Headers requeridos (Content-Type, X-Request-ID)
Guarda el contrato en tests/contracts/payments.pact.json

Por qué funciona: Contract testing con Claude Code es extremadamente potente porque lee el código fuente real del endpoint, no la documentación desactualizada.

Generación de colección Postman
Lee el OpenAPI spec en docs/api/openapi.yaml.
Genera una colección Postman v2.1 con:
- Variables de entorno para baseUrl, token, userId
- Pre-request scripts para generar tokens JWT de prueba
- Tests de validación en cada request (status, schema, tiempo)
- Orden lógico de ejecución para el flujo completo de órdenes
Exporta como orders-collection.json en docs/postman/

Por qué funciona: Especificar el formato de exportación y el orden de ejecución produce una colección lista para CI/CD, no solo documentación.

Test Data
Generar datos de prueba realistas
Lee el schema de base de datos en src/db/schema.sql,
específicamente las tablas users, orders y products.
Genera un script SQL de seed con:
- 500 usuarios con datos demográficos realistas para Argentina
- 2000 órdenes distribuidas en los últimos 6 meses
- Incluir casos edge: usuarios sin órdenes, órdenes sin items, estados en conflicto
- Respetar todas las constraints de FK del schema
Guarda en tests/fixtures/seed-perf.sql

Por qué funciona: Leer el schema real previene violaciones de FK y genera datos coherentes con la estructura real de la base de datos.

12. Errores comunes al usar Claude Code en testing

Los anti-patrones que arruinan la calidad de los tests generados

Después de usar Claude Code en proyectos reales de testing, estos son los errores que se repiten. No son fallas de la IA — son fallas en la forma de usarla. Identificarlos temprano te ahorra horas de deuda técnica de tests.

ERROR 01

Tests que siempre pasan (assertions débiles)

Lo que pasa

Claude genera tests con assertions demasiado amplias que nunca pueden fallar:

// ❌ Assertion inútil
expect(response.status).toBeDefined();
expect(response.body).not.toBeNull();
expect(data.length).toBeGreaterThan(-1);

Cómo evitarlo

Pide assertions específicas sobre el dominio:

// ✅ Assertions con valor
expect(response.status).toBe(201);
expect(data.orderId).toMatch(/^ORD-\d{8}$/);
expect(data.total).toBe(199.99);
expect(data.items).toHaveLength(2);

Agrega en tu prompt: "Las assertions deben validar valores concretos, no solo existencia o tipos."

ERROR 02

Tests con dependencias ocultas entre sí

Sin instrucción explícita, Claude puede generar una suite de tests donde el test 3 depende del estado que dejó el test 1. Pasan en orden pero fallan en paralelo o en orden aleatorio.

# Señales de alerta

• Tests que usan variables globales compartidas

• beforeAll que crea datos que múltiples tests consumen

• Tests que funcionan "solo si se ejecutan juntos"

Fix en el prompt: "Cada test debe ser completamente independiente. Usar beforeEach para setup y afterEach para cleanup. No compartir estado entre tests."

ERROR 03

Selectores CSS frágiles en tests de UI

Frágil — rompe con cualquier refactor de CSS

// ❌ Selector frágil
await page.click('.btn.btn-primary.checkout');
await page.fill('input:nth-child(3)', email);
await page.click('#app > div > main > form > button');

Robusto — sobrevive a cambios de UI

// ✅ Selector robusto
await page.getByTestId('checkout-btn').click();
await page.getByLabel('Email').fill(email);
await page.getByRole('button', { name: 'Pagar' }).click();

Fix en el prompt: "Priorizar selectores en este orden: data-testid > aria-role > aria-label > texto visible. Nunca usar selectores CSS con clases de estilos."

ERROR 04

Scripts de performance sin thresholds explícitos

Claude genera scripts de k6 o Gatling funcionales pero sin thresholds que causen falla del pipeline. Un test de performance que nunca falla aunque p95 sea 10 segundos no aporta valor.

Fix: Define los SLAs en tu CLAUDE.md y referencialos: "Los thresholds deben fallar el test si p95 > 500ms o error rate > 1%, como está definido en CLAUDE.md"

ERROR 05

Confiar en coverage de código como proxy de calidad

Claude puede generar tests que alcancen 95% de coverage de código pero que no testean los casos de negocio críticos. El coverage de código mide líneas ejecutadas, no comportamiento verificado.

Regla práctica

Al evaluar tests generados, pregunta: "Si este test pasa, ¿puedo confiar en desplegar a producción esta funcionalidad?". Si la respuesta es "no del todo", el test tiene coverage pero no valor real.

ERROR 06

No verificar el código generado antes de commitear

Claude Code es un agente autónomo que toma decisiones. A veces toma decisiones incorrectas: importa una librería que no existe en el proyecto, usa una API que fue deprecada, o genera un helper que ya existe con otro nombre.

# Checklist mínimo antes de commitear tests generados

□ El test compila/parsea sin errores de TypeScript

□ Ejecutar el test al menos una vez (debe poder pasar Y fallar)

□ Las importaciones existen en el proyecto

□ Los selectores/endpoints coinciden con el código real

□ Las assertions tienen valores específicos (no solo existencia)

13. Buenas prácticas

Hacer

  • Apuntar a archivos concretos: Lee src/auth/login.ts y genera...
  • Incluir el CLAUDE.md con convenciones del proyecto, stack y SLAs
  • Revisar el código generado antes de commitear — Claude Code no es infalible
  • Pedir explicaciones cuando algo no sea claro: ¿Por qué usaste esta estructura?
  • Iterar sobre los resultados: el primer output raramente es el final

Evitar

  • Prompts vagos: "genera tests" sin contexto produce código genérico e inútil
  • Commitear código generado sin ejecutarlo — verifica siempre que funciona
  • Compartir credenciales, tokens o secrets en el prompt
  • Esperar perfección al primer intento en sistemas complejos
  • Usar para sustituir criterio de testing — la IA no conoce el negocio como tú
🧠

Claude Code amplifica, no reemplaza

El criterio de un tester senior — saber qué testear, cuándo un bug es crítico, cómo diseñar una estrategia de testing alineada al negocio — no puede automatizarse. Claude Code elimina el trabajo mecánico (escribir scripts repetitivos, formatear reportes, generar datos de prueba) para que el tester se enfoque en análisis de riesgo, exploración y estrategia.

14. Recursos y referencias

Documentación oficial

  • Claude Code — Docs oficiales docs.anthropic.com/claude-code
  • Anthropic — Model docs docs.anthropic.com
  • Claude Code — GitHub Issues github.com/anthropics/claude-code

Cursos gratuitos

  • Prompt Engineering for Devs deeplearning.ai
  • Generative AI for Everyone (Coursera) coursera.org
  • YouTube — Canal Anthropic youtube.com/@Anthropic

Testing & herramientas

  • Playwright — playwright.dev playwright.dev
  • k6 — k6.io/docs k6.io/docs
  • Gatling — gatling.io/docs gatling.io/docs

🚀

¿Listo para aplicar Claude Code en tus tests?

Empieza con la documentación oficial, instala el skill de performance testing y abre tu proyecto de tests. En menos de una hora verás el impacto real.