🔍 QA-панель

Панель тестировщика SEOGen

Полный набор тест-кейсов, чек-листов и инструкций для ручного тестирования платформы SEOGen. Следуй чек-листу, отмечай пройденное, фиксируй баги.

📋 Инструкция для тестировщика

1️⃣

Подготовка

  • • Открой сайт seo2040.ru
  • • Подготовь DevTools (F12)
  • • Вкладки: Console, Network
  • • Эмулятор мобильных устройств
2️⃣

Тестирование

  • • Иди по чек-листу сверху вниз
  • • Каждый тест-кейс — отдельно
  • • Фиксируй скриншотами
  • • Отмечай пройденные ✅ или ❌
3️⃣

Баг-репорт

  • • ID тест-кейса
  • • Шаги воспроизведения
  • • Expected vs Actual
  • • Скриншот/видео
  • • Severity: P0-P3

✅ Быстрый чек-лист

🔐 Аутентификация

  • Регистрация — валидные данные
  • Регистрация — дубликат email
  • Регистрация — пустые поля
  • Регистрация — слабый пароль
  • Вход — корректные данные
  • Вход — неверный пароль
  • Вход — несуществующий email
  • Выход из системы
  • Защита роутов (dashboard, admin без авторизации)

✍️ Генерация статей

  • Генерация по ключевому слову (русский)
  • Пустое ключевое слово
  • XSS через ключевое слово
  • Очень длинное ключевое слово (200+)
  • Английское ключевое слово
  • Спецсимволы и эмодзи в ключевом слове
  • Одновременная генерация нескольких статей

📊 Дашборд

  • Список статей (сортировка)
  • Пустой дашборд (новый пользователь)
  • Счётчик лимитов
  • Удаление статьи
  • Просмотр статьи

💾 Экспорт

  • Копирование в буфер обмена
  • Скачивание HTML
  • Скачивание Markdown
  • Экспорт в WordPress (если доступен)

🔍 SEO-качество

  • Title: 50-70 символов, содержит ключ
  • Description: 120-160 символов, содержит ключ
  • Структура H1-H4 (1 H1, минимум 2 H2)
  • Внутренние ссылки
  • Alt-тексты изображений
  • meta robots в статьях

📱 UI/UX и адаптивность

  • Мобильная версия (320-767px)
  • Планшет (768-1024px)
  • Десктоп (1025px+)
  • Тёмная тема — контрастность
  • Состояния загрузки и ошибок
  • 404 страница
  • Кнопки не налезают друг на друга

🔒 Безопасность

  • CSRF-защита API
  • Изоляция данных пользователей
  • Нет утечки данных через API-ответы
  • Rate limiting на генерацию
  • CORS-заголовки

🚀 Производительность

  • Lighthouse: Performance ≥ 80
  • Lighthouse: Accessibility ≥ 85
  • Lighthouse: Best Practices ≥ 90
  • Lighthouse: SEO ≥ 90
  • Время генерации ≤ 30 сек
  • Время загрузки страниц ≤ 3 сек

🌐 SEO сайта

  • robots.txt
  • sitemap.xml
  • llms.txt
  • Open Graph meta-теги
  • Schema.org разметка
  • Канонические URL

📝 Тест-кейсы (44)

IDОбластьСценарийОжидаемый результатПриоритетСтатус
AUTH-01Аутентификация
Регистрация нового пользователя
1. Перейти на /register 2. Заполнить все поля валидными данными 3. Нажать «Зарегистрироваться»
Пользователь создан, редирект на /dashboard, приветственное сообщениеP0⬜ Не проверен
AUTH-02Аутентификация
Регистрация с уже существующим email
1. Перейти на /register 2. Ввести email уже зарегистрированного пользователя 3. Заполнить остальные поля 4. Нажать «Зарегистрироваться»
Ошибка «Email уже используется», форма не отправленаP1⬜ Не проверен
AUTH-03Аутентификация
Регистрация с пустыми полями
1. Перейти на /register 2. Оставить все поля пустыми 3. Нажать «Зарегистрироваться»
Валидационные ошибки под каждым обязательным полемP1⬜ Не проверен
AUTH-04Аутентификация
Регистрация со слабым паролем
1. Перейти на /register 2. Ввести пароль «123» 3. Нажать «Зарегистрироваться»
Ошибка «Пароль должен содержать минимум 6 символов»P2⬜ Не проверен
AUTH-05Аутентификация
Вход с корректными данными
1. Перейти на /login 2. Ввести email и пароль зарегистрированного пользователя 3. Нажать «Войти»
Успешный вход, редирект на /dashboardP0⬜ Не проверен
AUTH-06Аутентификация
Вход с неверным паролем
1. Перейти на /login 2. Ввести правильный email, но неверный пароль 3. Нажать «Войти»
Ошибка «Неверный email или пароль»P1⬜ Не проверен
AUTH-07Аутентификация
Вход с несуществующим email
1. Перейти на /login 2. Ввести несуществующий email 3. Нажать «Войти»
Ошибка «Неверный email или пароль» (без раскрытия что именно не так)P2⬜ Не проверен
AUTH-08Аутентификация
Выход из системы
1. Войти в систему 2. Нажать «Выйти»
Пользователь разлогинен, редирект на главнуюP1⬜ Не проверен
GEN-01Генерация статей
Генерация статьи по ключевому слову
1. Войти в систему 2. Перейти на /dashboard 3. Ввести ключевое слово (например «редиска») 4. Нажать «Сгенерировать»
Статья сгенерирована: H1, H2-H4 структура, мета-теги, 500+ слов, релевантный контентP0⬜ Не проверен
GEN-02Генерация статей
Генерация с пустым полем ключевого слова
1. Оставить поле ввода пустым 2. Нажать «Сгенерировать»
Валидационная ошибка «Введите ключевое слово»P1⬜ Не проверен
GEN-03Генерация статей
Генерация статьи со спецсимволами в ключе
1. Ввести ключ: «<script>alert(1)</script>» 2. Нажать «Сгенерировать»
Ключ санитизирован, XSS не выполняется, статья генерируется или graceful errorP0⬜ Не проверен
GEN-04Генерация статей
Генерация статьи на английском
1. Ввести ключ: «quantum computing» 2. Нажать «Сгенерировать»
Статья на английском языке или сообщение о поддержке только русскогоP2⬜ Не проверен
GEN-05Генерация статей
Генерация с очень длинным ключом (200+ символов)
1. Ввести ключ длиной 250 символов 2. Нажать «Сгенерировать»
Валидация ограничения длины или генерация с обрезанным ключомP3⬜ Не проверен
DASH-01Дашборд
Отображение сгенерированных статей
1. Войти, сгенерировать 2-3 статьи 2. Проверить /dashboard
Все статьи отображаются в списке, сортировка по дате (новые сверху)P0⬜ Не проверен
DASH-02Дашборд
Отображение пустого дашборда
1. Зарегистрировать нового пользователя 2. Сразу перейти на /dashboard
Заглушка «У вас пока нет статей» с кнопкой «Создать первую»P1⬜ Не проверен
DASH-03Дашборд
Счётчик использованных/доступных статей
1. Сгенерировать статью 2. Проверить счётчик на дашборде
Счётчик обновляется: «Использовано: 1 из 3 (Free)»P1⬜ Не проверен
LIMIT-01Лимиты
Бесплатный пользователь превышает лимит (3 статьи)
1. Зарегистрироваться (Free-план) 2. Сгенерировать 3 статьи 3. Попытаться сгенерировать 4-ю
Ошибка «Лимит бесплатного тарифа исчерпан», предложение обновитьсяP0⬜ Не проверен
LIMIT-02Лимиты
Проверка блокировки в обход API
1. Исчерпать лимит 2. Отправить прямой POST-запрос на /api/generate
Сервер возвращает 403/429 с ошибкой лимитаP1⬜ Не проверен
EXPORT-01Экспорт
Копирование статьи в буфер обмена
1. Сгенерировать статью 2. Нажать «Копировать»
Статья скопирована в буфер, toast-уведомление «Скопировано!»P1⬜ Не проверен
EXPORT-02Экспорт
Скачивание в HTML
1. Сгенерировать статью 2. Нажать «Скачать HTML»
Скачивается .html файл, открывается в браузере корректноP1⬜ Не проверен
EXPORT-03Экспорт
Скачивание в Markdown
1. Сгенерировать статью 2. Нажать «Скачать MD»
Скачивается .md файл с корректной структуройP2⬜ Не проверен
SEO-01SEO
Проверка мета-тегов статьи
1. Сгенерировать статью 2. Проверить title и description
Title 50-70 символов, Description 120-160 символов, содержат ключевое словоP1⬜ Не проверен
SEO-02SEO
Структура заголовков
1. Сгенерировать статью 2. Проверить HTML-структуру
Ровно 1 H1, минимум 2 H2, H3 по необходимости. Нет пропусков уровней.P1⬜ Не проверен
SEO-03SEO
Внутренние ссылки в статье
1. Сгенерировать статью 2. Проверить наличие внутренних ссылок
Минимум 1-2 внутренние ссылки на релевантные страницы сайтаP2⬜ Не проверен
DEMO-01Демо-генератор
Генерация на главной без регистрации
1. Перейти на главную / 2. Ввести ключевое слово в демо-форму 3. Нажать «Сгенерировать»
Статья генерируется и отображается на странице, кнопки экспорта активныP0⬜ Не проверен
DEMO-02Демо-генератор
Повторная генерация демо
1. Сгенерировать демо-статью 2. Ввести другое ключевое слово 3. Снова нажать «Сгенерировать»
Новая статья заменяет предыдущую, без перезагрузки страницыP1⬜ Не проверен
UI-01UI/UX
Адаптивность: мобильные устройства (320-767px)
1. Открыть все страницы на эмуляторе iPhone SE 2. Проверить все элементы
Всё читаемо, ничего не вылезает за экран, кнопки нажимаютсяP1⬜ Не проверен
UI-02UI/UX
Адаптивность: планшеты (768-1024px)
1. Открыть на iPad-эмуляторе 2. Проверить лейаут
Корректное отображение, нет горизонтального скроллаP2⬜ Не проверен
UI-03UI/UX
Тёмная тема
1. Проверить все страницы в тёмной теме
Контрастность текста достаточная (WCAG AA), нет белых блоков на тёмном фонеP2⬜ Не проверен
UI-04UI/UX
Состояния загрузки
1. Нажать «Сгенерировать» 2. Наблюдать за интерфейсом во время генерации
Показан индикатор загрузки (спиннер/скелетон), кнопка заблокирована от двойного кликаP1⬜ Не проверен
UI-05UI/UX
Ошибки сети
1. В DevTools перейти на вкладку Network 2. Включить Offline 3. Попытаться сгенерировать статью
Понятное сообщение об ошибке сети, кнопка «Повторить»P2⬜ Не проверен
SEC-01Безопасность
Доступ к /admin без авторизации
1. Разлогиниться 2. Перейти на /admin
Редирект на /login или 403 ForbiddenP0⬜ Не проверен
SEC-02Безопасность
Доступ к /dashboard без авторизации
1. Разлогиниться 2. Перейти на /dashboard
Редирект на /loginP0⬜ Не проверен
SEC-03Безопасность
CSRF-защита API
1. Отправить POST на /api/generate без куки/токена
401 UnauthorizedP1⬜ Не проверен
SEC-04Безопасность
Просмотр чужих статей через ID
1. Войти как user A, запомнить ID статьи 2. Войти как user B 3. Перейти на /article/[чужая статья]
404 или 403 — чужие статьи недоступныP0⬜ Не проверен
BLOG-01Блог
Отображение списка статей блога
1. Перейти на /blog
Список статей блога с пагинацией (если больше 10)P2⬜ Не проверен
BLOG-02Блог
Открытие отдельной статьи блога
1. Кликнуть на любую статью в /blog
Статья открывается, SEO-метатеги на месте, хлебные крошкиP2⬜ Не проверен
PRICE-01Тарифы
Отображение тарифов на /pricing
1. Перейти на /pricing
4 тарифа: Бесплатный, Базовый, Про, Агентство. Цены и фичи корректны.P1⬜ Не проверен
PRICE-02Тарифы
Клик по CTA на тарифе
1. На /pricing нажать кнопку тарифа
Редирект на /register с предвыбранным тарифом или якорьP1⬜ Не проверен
PERF-01Производительность
Lighthouse: главная страница
1. Запустить Lighthouse (Desktop) 2. Проверить метрики
Performance ≥ 80, Accessibility ≥ 85, Best Practices ≥ 90, SEO ≥ 90P1⬜ Не проверен
PERF-02Производительность
Время генерации статьи
1. Замерить время от нажатия «Сгенерировать» до появления статьи
≤ 30 секунд для большинства запросовP1⬜ Не проверен
SEO-SITE-01SEO сайта
Проверка robots.txt
1. Открыть /robots.txt
Файл существует, содержит Sitemap, нет запрета на главные страницыP2⬜ Не проверен
SEO-SITE-02SEO сайта
Проверка sitemap.xml
1. Открыть /sitemap.xml
Файл существует, содержит все основные страницы (главная, блог, pricing)P2⬜ Не проверен
SEO-SITE-03SEO сайта
Проверка llms.txt
1. Открыть /llms.txt
Файл существует, содержит описание проекта и ссылкиP3⬜ Не проверен

🐛 Шаблон баг-репорта

Скопируй этот шаблон для каждого найденного бага в Google-таблицу или Notion.

## Баг-репорт [ID тест-кейса] | [Краткое описание]

**Severity:** P0 / P1 / P2 / P3
**Окружение:** Браузер / ОС / Устройство
**Дата:** [дата]

### Шаги воспроизведения
1. 
2. 
3. 

### Expected (Ожидаемое поведение)
[что должно было произойти]

### Actual (Фактическое поведение)
[что произошло на самом деле]

### Дополнительно
- Скриншот/видео: [ссылка]
- Консоль/ошибки: [логи]

### Статус
⬜ Новый | ✅ Исправлен | 🔄 В работе | ❌ Отклонён