GDPR и QA-Тестирование
Общий регламент защиты данных (GDPR) — регламент ЕС, регулирующий сбор, обработку, хранение и удаление персональных данных. Хотя GDPR — закон ЕС, он применяется к любой организации, обрабатывающей данные резидентов ЕС.
Для QA-инженеров GDPR создаёт конкретные тестируемые требования, сфокусированные на правах пользователей, управлении согласием и проверке жизненного цикла данных.
Ключевые Права GDPR для Тестирования
Право на Информацию
- Политика конфиденциальности доступна с каждой страницы
- Баннер согласия на cookies появляется при первом визите
- Понятный язык объясняет, какие данные собираются и зачем
- Передача данных третьим лицам раскрыта
Право на Доступ (DSAR)
- Пользователь может отправить запрос на доступ к данным
- Ответ включает все персональные данные в течение 30 дней
- Данные в машиночитаемом формате (JSON, CSV)
- Личность запрашивающего верифицирована перед выдачей
Право на Исправление
- Пользователи могут редактировать информацию профиля
- Изменения распространяются на все системы
Право на Удаление
- Механизм запроса удаления существует
- Все персональные данные удалены из основного хранилища
- Данные удалены из систем третьих сторон
- Анонимизированные данные могут быть сохранены
Право на Переносимость Данных
- Экспорт доступен в JSON, CSV или аналогичном формате
- Включает все персональные данные
- Не включает данные других пользователей
Тестирование Согласия на Cookies
| Требование | Проверка |
|---|---|
| Нет отслеживания до согласия | Нет cookies до взаимодействия с баннером |
| Гранулярный выбор | Принятие/отклонение по категориям |
| Равная заметность | «Отклонить всё» так же заметно, как «Принять всё» |
| Без предвыбранных чекбоксов | Неосновные категории отмечены по умолчанию |
| Отзываемое согласие | Можно изменить настройки позже |
| Сайт работает без согласия | Только essential cookies |
Проверка Согласия на Cookies
- Откройте сайт в чистом инкогнито-окне
- До взаимодействия с баннером проверьте cookies: DevTools > Application > Cookies
- Должны быть только essential cookies
- Нажмите «Отклонить всё» — проверьте отсутствие tracking cookies
- Очистите cookies и перезагрузите
- Нажмите «Принять всё» — проверьте наличие 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 для предотвращения регрессий