Limitaciones de las Pruebas Automatizadas con Cypress
Proposito:
Este apartado describe las principales limitaciones técnicas y de alcance de Cypress dentro del sistema probado. Su objetivo es garantizar una comprensión clara de lo que sí puede y no puede verificarse mediante pruebas automatizadas E2E.
Alcanze General:
Cypress está optimizado para pruebas del lado del cliente (Front-End), enfocándose en la interacción del usuario dentro del navegador. No reemplaza las pruebas unitarias, de integración o de rendimiento.
| Tipo de prueba | ¿Cypress puede hacerlo? | Observaciones |
|---|---|---|
| Unitarias | Limitado | No recomendado para lógica de negocio compleja. |
| Integración | Limitado | Puede simular API, pero no prueba la integración real entre servicios. |
| E2E (Interfaz de usuario) | Sí | Es su mayor fortaleza: validar flujos completos desde el navegador. |
Importante:
Cypress no reemplaza un ecosistema completo de pruebas. Se recomienda integrarlo con herramientas de backend, rendimiento y visual testing para una cobertura total.
Dependencia del entorno gráfico
Cypress requiere un entorno de navegador real o emulado (Electron, Chrome, Edge). Esto implica que:
- Necesidad de un entorno con soporte GUI o headless configurado.
- No se pueden probar procesos sin interfaz gráfica, como servicios backend o workers.
Sugerencia: En entornos CI sin interfaz, usar el modo
--headless.
Dificultades con Autenticaciones Externas o SSO
Cypress tiene limitaciones con flujos de autenticación externos (por ejemplo, OAuth, Google, Microsoft, o SSO corporativos), debido a que estos procesos implican redirecciones fuera del dominio principal de prueba. Esto puede romper la sesión o impedir la validación del flujo completo de autenticación.
Limitaciones con descargas y archivos generados
Aunque Cypress puede verificar que una descarga fue iniciada, no puede abrir ni validar el contenido del archivo (por ejemplo, PDF, Excel o ZIP) sin librerías adicionales o validaciones indirectas. Esto limita su capacidad para comprobar la integridad o contenido de reportes generados por el sistema.
Limitaciones del Front-End
Cypress valida la interfaz del usuario y las interacciones en el navegador, pero no prueba los procesos del lado del servidor, como:
- Cálculos o lógica de negocio.
- Logica de base de datos.
- Servicios externos o integraciones API.
Nota: Para estos escenarios, se recomienda complementar con pruebas unitarias e integraciones backend.
Dependencia de selectores del DOM
Las pruebas dependen fuertemente de selectores HTML estables (id, data-*). Esto significa que:
- Cualquier cambio en el DOM puede romper múltiples pruebas.
- Se recomienda usar atributos dedicados como id, data-* o clases unicas para garantizar estabilidad.
Cobertura y Reportes
Cypress no genera cobertura de código backend, y los reportes (Mochawesome) requieren configuración manual.
Conclucion General.
Cypress es una herramienta potente y moderna para automatizar la experiencia del usuario, pero tiene limitaciones técnicas naturales que deben entenderse antes de definir su alcance dentro de un plan de QA.
Recomendación final: Complementar el uso de Cypress con otras herramientas según el tipo de prueba: