GDPR y Testing de QA
El Reglamento General de Protección de Datos (GDPR) es una regulación de la UE que gobierna cómo las organizaciones recolectan, procesan, almacenan y eliminan datos personales. Aunque es una ley de la UE, aplica a cualquier organización que procese datos de residentes de la UE.
Para ingenieros QA, GDPR crea requisitos específicos y verificables. A diferencia del testing de seguridad general, el testing GDPR se enfoca en derechos del usuario, gestión de consentimiento y verificación del ciclo de vida de datos.
Derechos Clave de GDPR a Probar
Derecho a la Información
- Política de privacidad accesible desde cada página
- Banner de consentimiento de cookies aparece en primera visita
- Lenguaje claro explica qué datos se recolectan y por qué
- Se divulga compartición de datos con terceros
Derecho de Acceso (DSAR)
- El usuario puede enviar solicitud de acceso a datos
- Respuesta incluye todos los datos personales en 30 días
- Datos en formato legible por máquina (JSON, CSV)
- Identidad del solicitante verificada antes de liberar datos
Derecho de Rectificación
- Usuarios pueden editar su información de perfil
- Los cambios se propagan a todos los sistemas
Derecho al Olvido
- Mecanismo de solicitud de eliminación existe
- Todos los datos personales eliminados del almacenamiento primario
- Datos eliminados de sistemas de terceros
- Datos anonimizados pueden retenerse
Derecho a Portabilidad de Datos
- Exportación disponible en JSON, CSV o formato similar
- Incluye todos los datos personales
- No incluye datos de otros usuarios
Testing de Consentimiento de Cookies
| Requisito | Prueba |
|---|---|
| Sin tracking antes del consentimiento | Verificar que no se establecen cookies antes de interactuar |
| Elección granular | Usuario puede aceptar/rechazar categorías |
| Prominencia igual | “Rechazar Todo” tan visible como “Aceptar Todo” |
| Sin casillas pre-marcadas | Categorías no esenciales desmarcadas por defecto |
| Consentimiento revocable | Usuario puede cambiar preferencias después |
| Sitio funciona sin consentimiento | Solo cookies esenciales |
Probando Consentimiento de Cookies
- Abre el sitio en ventana incógnito nueva
- Antes de interactuar, verifica cookies: DevTools > Application > Cookies
- Solo cookies esenciales deben estar presentes
- Click “Rechazar Todo” — verifica que no hay cookies de tracking
- Limpia cookies y recarga
- Click “Aceptar Todo” — verifica cookies de analytics/marketing
- Usa el link “Configuración de Cookies” para cambiar consentimiento
Ejercicio: Auditoría de Cumplimiento GDPR
Realiza una auditoría de cumplimiento GDPR de una aplicación web.
Parte 1: Consentimiento de Cookies
| Verificación | Pasa/Falla | Notas |
|---|---|---|
| Banner aparece en primera visita | ||
| Sin cookies de tracking antes del consentimiento | ||
| Opciones de consentimiento granular disponibles | ||
| “Rechazar Todo” igualmente prominente | ||
| Categorías no esenciales desmarcadas por defecto | ||
| Preferencias de cookies se pueden cambiar después | ||
| Sitio funciona después de rechazar cookies no esenciales |
Parte 2: Solicitud de Acceso a Datos
| Verificación | Pasa/Falla | Notas |
|---|---|---|
| Mecanismo DSAR existe | ||
| Verificación de identidad antes de liberar datos | ||
| Exportación incluye todas las categorías de datos | ||
| Formato legible por máquina | ||
| No incluye datos de otros usuarios |
Parte 3: Derecho al Olvido
| Verificación | Pasa/Falla | Notas |
|---|---|---|
| Mecanismo de eliminación de cuenta existe | ||
| Confirmación requerida para prevenir eliminación accidental | ||
| Período de gracia antes de eliminación permanente | ||
| Datos personales eliminados del perfil | ||
| Usuario no puede iniciar sesión después de eliminación | ||
| Datos del usuario ausentes de reportes de admin | ||
| Notificación enviada confirmando eliminación |
Solución: Bugs Comunes de Cumplimiento GDPR
Bug 1: Analytics tracking antes del consentimiento Script de Google Analytics cargado en el HTML head antes de mostrar el banner. Todos los visitantes rastreados independientemente del consentimiento. Corrección: Cargar analytics solo después del consentimiento.
Bug 2: “Rechazar Todo” oculto en configuración El banner tenía “Aceptar Todo” prominente pero requería clicks adicionales para rechazar. Esto es un dark pattern y no cumple. Corrección: Agregar “Rechazar Todo” al mismo nivel.
Bug 3: Eliminación de cuenta dejó datos en analytics Datos de actividad permanecieron en Google Analytics con IDs identificables. Corrección: Anonimizar o eliminar identificadores de analytics de terceros.
Bug 4: Exportación DSAR sin datos de pago Exportación omitió historial de pagos almacenado en Stripe. Corrección: Incluir datos de todos los sistemas de terceros.
Bug 5: Usuario eliminado permanece en lista de marketing Después de eliminar cuenta, email permanecía en Mailchimp. Corrección: Activar eliminación en todos los sistemas integrados.
Bug 6: Consentimiento de cookies no persistido entre subdominios Usuario rechazó cookies en www pero se establecieron en blog. Corrección: Mecanismo de consentimiento compartido entre subdominios.
Testing GDPR en CI/CD
test('sin scripts de tracking antes del consentimiento', async ({ page, context }) => {
await context.clearCookies();
await page.goto('/');
const cookies = await context.cookies();
const trackingCookies = cookies.filter(c =>
c.name.startsWith('_ga') || c.name.startsWith('_fbp')
);
expect(trackingCookies).toHaveLength(0);
});
Puntos Clave
- GDPR crea requisitos específicos y verificables que QA debe verificar
- El consentimiento de cookies debe ofrecer elección genuina — sin tracking antes del consentimiento
- Las DSAR deben retornar todos los datos en 30 días en formato legible por máquina
- El Derecho al Olvido debe eliminar datos de todos los sistemas incluyendo terceros
- Prueba el ciclo de vida completo: recolección, almacenamiento, acceso, modificación, exportación y eliminación
- Automatiza verificaciones básicas en CI/CD para prevenir regresiones