GDPR и QA-Тестирование

Общий регламент защиты данных (GDPR) — регламент ЕС, регулирующий сбор, обработку, хранение и удаление персональных данных. Хотя GDPR — закон ЕС, он применяется к любой организации, обрабатывающей данные резидентов ЕС.

Для QA-инженеров GDPR создаёт конкретные тестируемые требования, сфокусированные на правах пользователей, управлении согласием и проверке жизненного цикла данных.

Ключевые Права GDPR для Тестирования

Право на Информацию

  • Политика конфиденциальности доступна с каждой страницы
  • Баннер согласия на cookies появляется при первом визите
  • Понятный язык объясняет, какие данные собираются и зачем
  • Передача данных третьим лицам раскрыта

Право на Доступ (DSAR)

  • Пользователь может отправить запрос на доступ к данным
  • Ответ включает все персональные данные в течение 30 дней
  • Данные в машиночитаемом формате (JSON, CSV)
  • Личность запрашивающего верифицирована перед выдачей

Право на Исправление

  • Пользователи могут редактировать информацию профиля
  • Изменения распространяются на все системы

Право на Удаление

  • Механизм запроса удаления существует
  • Все персональные данные удалены из основного хранилища
  • Данные удалены из систем третьих сторон
  • Анонимизированные данные могут быть сохранены

Право на Переносимость Данных

  • Экспорт доступен в JSON, CSV или аналогичном формате
  • Включает все персональные данные
  • Не включает данные других пользователей

Тестирование Согласия на Cookies

ТребованиеПроверка
Нет отслеживания до согласияНет cookies до взаимодействия с баннером
Гранулярный выборПринятие/отклонение по категориям
Равная заметность«Отклонить всё» так же заметно, как «Принять всё»
Без предвыбранных чекбоксовНеосновные категории отмечены по умолчанию
Отзываемое согласиеМожно изменить настройки позже
Сайт работает без согласияТолько essential cookies

Проверка Согласия на Cookies

  1. Откройте сайт в чистом инкогнито-окне
  2. До взаимодействия с баннером проверьте cookies: DevTools > Application > Cookies
  3. Должны быть только essential cookies
  4. Нажмите «Отклонить всё» — проверьте отсутствие tracking cookies
  5. Очистите cookies и перезагрузите
  6. Нажмите «Принять всё» — проверьте наличие cookies аналитики/маркетинга

Упражнение: Аудит Соответствия GDPR

Проведите аудит соответствия GDPR веб-приложения.

Часть 1: Согласие на Cookies

ПроверкаПройдено/НетПримечания
Баннер появляется при первом визите
Нет tracking cookies до согласия
Гранулярные опции согласия
«Отклонить всё» так же заметно
Неосновные категории не отмечены по умолчанию
Настройки cookies можно изменить позже
Сайт работает после отклонения неосновных cookies

Часть 2: Запрос на Доступ к Данным

ПроверкаПройдено/НетПримечания
Механизм DSAR существует
Верификация личности перед выдачей данных
Экспорт включает все категории данных
Машиночитаемый формат
Не включает данные других пользователей

Часть 3: Право на Удаление

ПроверкаПройдено/НетПримечания
Механизм удаления аккаунта существует
Подтверждение для предотвращения случайного удаления
Льготный период перед окончательным удалением
Персональные данные удалены из профиля
Пользователь не может войти после удаления
Данные отсутствуют в отчётах админа
Уведомление об удалении отправлено
Решение: Типичные Баги Соответствия GDPR

Баг 1: Трекинг аналитики до согласия Скрипт Google Analytics загружался в head до показа баннера. Все посетители отслеживались. Исправление: Загружать аналитику только после согласия.

Баг 2: «Отклонить всё» спрятана в настройках Баннер имел заметную «Принять всё», но для отклонения требовались дополнительные клики. Это тёмный паттерн. Исправление: «Отклонить всё» на том же уровне.

Баг 3: Удаление аккаунта оставило данные в аналитике Данные активности остались в Google Analytics с идентифицируемыми ID. Исправление: Анонимизировать или удалить идентификаторы из сторонней аналитики.

Баг 4: Экспорт DSAR без данных о платежах Экспорт не включал историю платежей из Stripe. Исправление: Включить данные из всех сторонних систем.

Баг 5: Удалённый пользователь остался в маркетинговой рассылке После удаления аккаунта email остался в Mailchimp. Исправление: Триггерить удаление во всех интегрированных системах.

Баг 6: Согласие на cookies не сохраняется между поддоменами Пользователь отклонил cookies на www, но они устанавливались на blog. Исправление: Общий механизм согласия между поддоменами.

Тестирование GDPR в CI/CD

test('нет трекинг-скриптов до согласия', 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);
});

Ключевые Выводы

  • GDPR создаёт конкретные, тестируемые требования для QA-инженеров
  • Согласие на cookies должно предлагать реальный выбор — без трекинга до согласия
  • DSAR должны возвращать все данные в течение 30 дней в машиночитаемом формате
  • Право на удаление должно удалять данные из всех систем, включая сторонние
  • Тестируйте полный жизненный цикл данных: сбор, хранение, доступ, изменение, экспорт и удаление
  • Автоматизируйте базовые проверки соответствия в CI/CD для предотвращения регрессий