- 01Abrir el catálogo▣✓
- 02Buscar “polo negro”▣✓
- 03Verificar que hay 12 resultados▣✓
- 04Abrir el primero y verificar el precio▣✓
Tus tests pasan.
¿Probaron algo?
Oráculo graba el flujo, lo corre por ti y te devuelve la prueba de cada paso.
- 01
Abrir /checkout con la sesión guardada0.9s - 02
Aplicar el cupón LATAM201.4s - 03
Pagar con la tarjeta terminada en 44170.7s - 04
Confirmar y esperar el número de ordenno estabilizó2.1s - 05
Verificar el correo de confirmación1.2s
Los dos dicen verde.
Solo uno probó algo.
- 01Abrir el catálogo▣✗
- 02Buscar “polo negro”▣✗
- 03Esperar 3 segundos▣✗
- 04Hacer clic en el primer resultado▣✗
El segundo nunca verificó nada: esperó tres segundos, hizo clic y terminó. Para cualquier herramienta es un verde. Para Oráculo es un verde marcado.
No te lo contamos.
Míralo funcionando.

- Navegaa /checkout
page.goto('/checkout') - Completael cupón
getByLabel('Cupón').fill('LATAM20') - Haz clicken «Aplicar»
getByRole('button', { name: 'Aplicar' }) - Verificael total
expect(getByText('S/ 336')).toBeVisible()
- 01Abrir /checkout
0.9s - 02Aplicar cupón LATAM20
1.4s - 03Pagar con tarjeta 4417
0.7s - 04Confirmar compra
2.1s






Grabas uno.
Prueba los que hagan falta.
La IA deriva variantes en siete categorías. Cuántas salgan de cada una depende de tu flujo: un formulario con doce campos da muchas más que un login.
- HAPPYEl camino feliz
El flujo tal como lo grabaste.
se espera que pasa - BOUNDARYValores al límite
Monto máximo, fecha extrema, campo al tope.
se espera que pasa - FORMATFormato inválido
Correo mal escrito, documento con largo incorrecto.
se espera que la app rechaza - EMPTYObligatorios vacíos
Envío del formulario sin completar lo requerido.
se espera que la app rechaza - SECURITYInyección y accesos ajenos
Payloads de inyección, IDs de otro usuario.
se espera que la app bloquea - COMBINATORIALCombinaciones
Cruces de campos que a mano nadie prueba.
se espera que pasa - RESILIENCEChaos: la infra falla
La red cae, la API responde 500 o tarda.
se espera que degrada con gracia
Esta variante falló y está bien: esperábamos que la app rechazara el correo y lo rechazó. Oráculo no mide si pasó o falló — mide si tu app hizo lo que debía. Cuando no coincide, es MISMATCH, y ahí está el bug.
Así se ve el reporte que vas a recibir
Un reporte de Nordia · tienda de demostración, con 6 flujos y 83% de aprobación. Es el mismo formato que recibe cualquier cliente: una fila por flujo, con su evidencia y su duración.
| Flujo | Resultado | Evidencia | Duración |
|---|---|---|---|
| Login con usuario válido | Pasó | 7 capturas | 21s |
| Búsqueda y filtros | Pasó | 11 capturas | 33s |
| Agregar al carrito | Pasó | 9 capturas | 29s |
| Checkout · correo inválidoEl formulario rechazó el correo, como se esperaba | Falló como se esperaba | 6 capturas | 18s |
| Checkout · pago con tarjeta | Pasó | 14 capturas | 53s |
| Historial de pedidos | Pasó | 8 capturas | 30s |
La cuarta fila es la que explica el producto: ese flujo falló y está bien. Era una variante que esperaba que el formulario rechazara un correo inválido, y lo rechazó. El veredicto es MATCH — la app hizo lo que debía.
La IA propone.
Tú firmas.
Cuando la interfaz cambia y un flujo se rompe, Oráculo analiza el fallo y propone el spec corregido como una versión pendiente. No lo aplica.
Ninguna IA pone un test en verde sola. Es una decisión de producto, no una limitación técnica.
await page.goto('/checkout');
-
await page.click('.btn-primary.submit-order');
+
await page.getByRole('button', { name: 'Confirmar compra' }).click();
await expect(page.getByText(/Orden #\d+/)).toBeVisible();
.btn-primary.submit-order dejó de existir tras el rediseño. El botón ahora se identifica por su rol accesible.Cuatro comandos.
Ningún archivo de test.
- 01GrabarGrabas
Abres el grabador desde el panel y haces el flujo sobre tu app, como lo haría un usuario. Sin instalar nada, sin escribir código.
- 02PublicarSe versiona
El flujo queda guardado como un spec de Playwright legible y editable. Puedes verlo y ajustarlo desde el mismo panel.
- 03EjecutarSe ejecuta
Lo lanzas con un clic, lo programas por cron, o se dispara solo con cada pull request.
- 04CompartirCompartes
Un enlace público de solo lectura con la evidencia paso a paso, o el reporte exportado a PDF y Word.
El resultado llega
donde ya trabajas.
Creado desde una corrida fallida. La evidencia se adjuntó automáticamente.
“Acabo de tocar el checkout. ¿Se rompió algo?”
Un agente de IA puede pedirle a Oráculo que pruebe lo que acaba de escribir, y leer la evidencia por sí solo.
- Azure DevOps
- BrowserStack
- Slack
Dónde ganamos.
Y dónde no.
| Oráculo | Playwright a mano | No-code clásico | |
|---|---|---|---|
| Escribir el test | Lo grabas | Código a mano | Lo grabas |
| Formato del test | Spec de Playwright | Spec de Playwright | Formato propietario |
| Evidencia por paso | Screenshot, trace y tiempos | La que programes | Variable |
| Detecta verdes sin evidencia | Sí, los marca | No | No |
| Casos borde y seguridad | IA, en 7 categorías | Uno por uno | Uno por uno |
| Cuando la UI cambia | Propone el fix, tú firmas | Lo arreglas tú | Auto-heal sin revisión |
| Control total del código | Sí, pero pasa por su pipeline | Total, es tu repo | No |
| Costo de arranque | Minutos | Semanas de setup | Minutos |
La penúltima fila es la que nadie pone en su comparativa: si lo que quieres es control absoluto del código, escribir Playwright a mano gana. Oráculo cambia parte de ese control por velocidad y evidencia.
Lo que todos preguntan
antes de probarlo.
¿Cómo automatizo pruebas E2E sin escribir código?
Grabas el flujo una vez sobre tu aplicación real, desde el grabador del navegador, en el propio panel. Oráculo lo convierte en un spec de Playwright versionado que puedes leer y editar, y lo ejecuta en un worker headless cada vez que lo necesites.
¿Qué es un falso verde en testing?
Un test que pasa sin haber probado nada: el selector no encontró el elemento, la aserción nunca se evaluó, o el paso siguió adelante tras un fallo silencioso. Oráculo marca los pasos que no alcanzaron un estado estable y expone cuántas aserciones reales tuvo la corrida.
¿Oráculo reemplaza a Playwright?
No: lo usa por debajo. Los flujos que genera son specs de Playwright estándar, así que no quedas atrapado en un formato propietario. Si mañana dejas Oráculo, tus tests siguen siendo tuyos y siguen corriendo.
¿La IA puede poner un test en verde sin que yo lo revise?
No, y es una decisión de producto. Cuando un flujo se rompe porque la interfaz cambió, la IA propone un spec corregido como una versión pendiente con su diff. Alguien tiene que aprobarlo. La IA propone; una persona firma.
¿Qué significa MATCH y MISMATCH en una variante?
Cada variante declara el resultado que se espera de ella. Si esperabas que el formulario rechazara un correo inválido y lo rechazó, el veredicto es MATCH aunque el test “falle”. MISMATCH significa que la app no hizo lo que debía: ahí está el bug.
¿Puedo correr las pruebas en dispositivos Android reales?
Sí. El worker ejecuta web con Playwright y Android con Appium, en emulador o en dispositivos reales a través de BrowserStack. iOS no está soportado.
¿Sirve si ya tengo una suite en Cypress o Selenium?
Sí. Oráculo importa specs existentes de Selenium, Cypress y Playwright, así que no empiezas de cero ni tiras el trabajo que ya hiciste.
¿Cómo evito que el pipeline pase en verde sin haber probado nada?
El gate de integración continua distingue “todo pasó” de “no había nada que correr”: si ningún flujo resultaba elegible para ese cambio, el pipeline no queda en verde por omisión.
Tu primer flujo grabado
en diez minutos.
Sin instalar nada. Sin escribir un test. Sin tarjeta.
- 1Creas tu proyecto y apuntas a tu app
- 2Abres el grabador y haces el flujo una vez
- 3Lo ejecutas y recibes la evidencia
Corre en tu navegador. El equipo entra con su cuenta, sin instalar nada.
3 de 41 flujos elegibles · afectados por este cambio
- checkout-completo · 9 pasos
- cupones-descuento · 6 pasos
- pago-tarjeta · 1 paso sin estabilizar
ver evidencia paso a paso →