Copilot genera estructura de Page Object, arrays de datos de test, interfaces de TypeScript y patrones de aserciones de Playwright mientras escribes, todas tareas donde el patrón es predecible y el output es fácil de revisar. No puede ver tu aplicación, así que los selectores siempre son suposiciones y casi siempre están mal. También produce tests que navegan flujos sin afirmar nada, que pasan por defecto y no testean nada.

Qué es Copilot

Copilot es una herramienta de completado de código que ve tu archivo actual (y opcionalmente las pestañas abiertas) y sugiere qué escribir a continuación. Está entrenado con código público de GitHub, así que ha visto muchos tests de Playwright, patrones de testing y código QA común.

Funciona dentro de tu editor: sin pestaña del navegador, sin copiar y pegar. A medida que escribes, sugiere completados que puedes aceptar con Tab.

También puedes usar Copilot Chat (la barra lateral de chat) para hacer preguntas, explicar código o pedirle que escriba algo específico.

Dónde Copilot es genuinamente útil para QA

1. Eliminar el código repetitivo

La ganancia más consistente: Copilot es excelente en la estructura repetitiva. Si estás escribiendo casos de prueba parametrizados:

const CASOS = [
  { input: 'valido@email.com', expected: true },
  // empezá a escribir acá...

Copilot a menudo sugiere las próximas 5 a 10 filas de tu tabla de datos de test. No siempre perfectamente, pero a menudo lo suficientemente bien como para aceptar con Tab y editar.

Lo mismo para el setup de tests:

test.beforeEach(async ({ page }) => {
  await page.goto('/');
  // Copilot sugiere: await page.waitForLoadState('networkidle');

2. Código base del Page Object

Si estás creando una clase de Page Object Model, Copilot es muy bueno con la estructura:

export class LoginPage {
  constructor(private page: Page) {}

  // Escribí "async login(" y Copilot completa:
  async login(email: string, password: string) {
    await this.page.fill('[data-testid="email"]', email);
    await this.page.fill('[data-testid="password"]', password);
    await this.page.click('[data-testid="submit"]');
  }

Los nombres de los selectores a menudo estarán mal (los adivina), pero la estructura y los patrones await page.fill/click/expect serán correctos.

3. Tipos e interfaces de TypeScript

Copilot maneja bien el código repetitivo de TypeScript. Si tus datos de test están tipados:

interface User {
  id: number;
  email: string;
  role: 'admin' | 'member' | 'viewer';
  // Copilot a menudo continúa: createdAt: string;

Conoce nombres de campos comunes y patrones de TypeScript.

4. Completado de aserciones de Playwright

Si escribes expect(page.locator(, Copilot conoce las aserciones comunes y sugiere:

await expect(page.locator('[data-testid="error"]')).toBeVisible();
await expect(page.locator('[data-testid="title"]')).toHaveText('Bienvenido');
await expect(page.locator('[data-testid="count"]')).toContainText('3 ítems');

No es revolucionario, pero es más rápido que recordar la API exacta de aserciones cada vez.

5. Escribir helpers y utilidades de tests

Si escribes un comentario como:

// Generar un email aleatorio para datos de test

Copilot a menudo produce:

function generateTestEmail(): string {
  const timestamp = Date.now();
  return `test_${timestamp}@example.com`;
}

Útil para utilidades rápidas que de otra forma buscarías en Stack Overflow.

6. Copilot Chat: explicar código desconocido

Cuando heredas una base de código de automatización:

"Explicá qué hace este hook beforeAll y por qué usa storageState."

Copilot Chat es bueno explicando código, sugiriendo por qué se hizo algo de cierta manera y dándote contexto sobre APIs desconocidas.

Dónde Copilot decepciona

Los selectores casi siempre están mal

Copilot no puede ver tu aplicación real. Adivina selectores basándose en patrones comunes ([data-testid="submit"], button.login-btn, #username). Casi nunca son tus selectores reales. Siempre vas a necesitar reemplazarlos.

No dejes que Copilot escriba los selectores: te va a ralentizar con sugerencias incorrectas que tienes que corregir.

Las decisiones de cobertura de tests son tuyas

Copilot puede escribir un test para el camino feliz. No te va a decir nada sobre el caso extremo donde un usuario aplica un código de descuento a un carrito que tiene un producto de una categoría restringida. No conoce tu producto.

Copilot es un acelerador de código, no una herramienta de diseño de tests. Las decisiones sobre qué testear son siempre tuyas.

Los tests generados a menudo carecen de aserciones

Copilot a veces escribe tests que navegan un flujo sin afirmar nada:

test('checkout del usuario', async ({ page }) => {
  await page.goto('/checkout');
  await page.fill('#card', '4242 4242 4242 4242');
  await page.click('#submit');
  // Sin aserción: ¿es un test o solo un script?
});

Siempre revisa el código generado para detectar llamadas expect() faltantes.

El contexto de múltiples archivos es limitado

Copilot funciona mejor en el archivo actual. Si tus fixtures están en un archivo separado, Copilot puede no conocerlos. A veces necesitas decírselo explícitamente:

"Usá el loginFixture importado desde ../fixtures/auth."

Flujo de trabajo práctico: cómo usar Copilot en Playwright

Usa Copilot para

  • Escribir el esqueleto de un nuevo archivo de tests
  • Generar arrays de datos de test repetitivos
  • Completar patrones conocidos de la API de Playwright
  • Escribir interfaces de TypeScript para datos de test
  • Escribir funciones de utilidad (generadores de datos aleatorios, helpers)
  • Entender código desconocido a través de Copilot Chat

No dependas de Copilot para

Copilot no es confiable para los selectores (siempre escríbelos tú mismo desde DevTools o Playwright Inspector), las decisiones de cobertura de tests (tu conocimiento del dominio, no el de la IA) ni para generar tests completos sin revisión (verifica las aserciones, la lógica, los casos extremos).

Tip de prompt para Copilot Chat

Cuando le pides a Copilot Chat que escriba un test, sé específico:

"Escribe un test de Playwright en TypeScript para el formulario de login en /es/login. Selectores: data-testid='email-input', data-testid='password-input', data-testid='submit-btn', data-testid='error-message'. Test: el login válido con test@example.com/ValidPass1 redirige a /dashboard. La contraseña inválida muestra el mensaje de error."

Contexto específico = output mucho mejor.

Copilot vs. ChatGPT para QA

| | Copilot | ChatGPT |

|-|---------|---------|

| Mejor para | Completado de código inline, sugerencias rápidas | Generación de código más larga, explicaciones, planificación de tests |

| Flujo de trabajo | Se queda en tu editor | Pestaña separada del navegador |

| Contexto | Ve el archivo actual | Ve lo que pegás |

| Velocidad | Instantáneo, mientras escribís | Tarda unos segundos |

| Diseño de tests | No es útil | Más útil con buenos prompts |

En la práctica, muchos ingenieros QA usan los dos: Copilot mientras escriben código, ChatGPT para diseñar qué escribir.

¿Vale la pena Copilot?

A 10 dólares por mes (o gratis con GitHub Education), sí, para los ingenieros de automatización QA que escriben tests regularmente. Recuperás la inversión solo con el tiempo ahorrado en el código repetitivo, especialmente al crear nuevos archivos de tests y clases POM.

Si solo escribes tests ocasionalmente, la ganancia de productividad es menor. Prueba el nivel gratuito primero.

→ See also: Ingeniería de Prompts para Ingenieros QA: Obtén Mejores Resultados de las Herramientas de IA | IA en QA 2026: Lo que Realmente es Útil y lo que es Solo Hype | Usar ChatGPT para Generar Casos de Prueba: Guía Práctica para QA | Playwright MCP Explicado: Deja que la IA Escriba tus Tests