Система
Сценарии тестирования
Тестовые сценарии - Личный кабинет дилера
Дата: декабрь 2025
Цель: Выявление UX проблем и проверка функциональности
URL тестирования: https://lkstage.ncgroup-it.ru (stage)
Роли для тестирования
| Роль | group_id | Описание |
|---|---|---|
| Администратор | 1 | Полный доступ |
| Дилер | 2 | Создание заказов, просмотр своих данных |
| Менеджер | 3 | Управление своими дилерами |
| Производство | 4 | Просмотр заказов в производстве |
Сценарий 1: Авторизация
1.1 Успешный вход
- Открыть /login
- Ввести корректный email и пароль
- Нажать "Войти"
- Ожидаемый результат: Редирект на главную страницу (Dashboard)
1.2 Неверные учетные данные
- Открыть /login
- Ввести неверный email или пароль
- Нажать "Войти"
- Ожидаемый результат: Уведомление "Неверный логин или пароль"
1.3 Выход из системы
- Нажать на кнопку выхода
- Ожидаемый результат: Редирект на /login
Сценарий 2: Главная страница (Dashboard)
2.1 Отображение Dashboard для разных ролей
- Войти как администратор
- Проверить отображение виджетов/статистики
- Войти как дилер
- Проверить ограниченный набор данных
- Проверить: Адаптивность, скорость загрузки
Сценарий 3: Создание заказа (Дилер/Менеджер)
3.1 Шаг 1: Выбор товара
- Перейти в /order/add
- Выбрать основной товар из каталога
- Указать количество
- Настроить входы (110мм, 160мм)
- Указать наращивание горловины (мм)
- Добавить дополнительный основной товар (кнопка "Добавить основной товар")
- Проверить: Пересчет цен в реальном времени
- Проверить: Валидация (минимум 1 вход для продуктов с входами)
- Нажать "Далее"
3.2 Шаг 2: Дополнительные товары
- Выбрать компрессор
- Выбрать насос
- Выбрать кессон
- Проверить: Обновление итоговой стоимости
- Нажать "Далее"
3.3 Шаг 3: Данные получателя
- Заполнить ФИО получателя
- Заполнить телефон (формат +7(999) 999 99 99)
- Заполнить email
- Заполнить адрес доставки
- Выбрать способ доставки
- Выбрать способ оплаты
- Для менеджера/админа: Выбрать дилера
- Выбрать склад или производство
- Проверить: Валидация всех полей
- Нажать "Далее"
3.4 Шаг 4: Подтверждение
- Проверить сводку заказа
- Проверить итоговые цены (клиентская и дилерская)
- Нажать "Создать заказ"
- Ожидаемый результат: Заказ создан, редирект на список заказов
3.5 Проверка UX
- Навигация между шагами (назад/вперед)
- Сохранение данных при переходе между шагами
- Отображение ошибок валидации
- Адаптивность на мобильных устройствах
Сценарий 4: Список заказов
4.1 Просмотр списка
- Перейти в /orders
- Проверить: Отображение колонок (номер, товар, дилер, дата, сумма, статус)
- Проверить: Сортировка по колонкам
- Проверить: Пагинация
4.2 Фильтрация
- Фильтр по дилеру
- Фильтр по статусу
- Фильтр по дате создания (с/по)
- Проверить: Комбинированные фильтры
4.3 Поиск
- Поиск по номеру заказа
- Поиск по названию товара
- Проверить: Скорость поиска
4.4 Действия
- Скачать бланк заказа (для менеджера/админа)
- Загрузить спецификацию (для дилера)
- Удалить заказ (если есть права)
- Экспорт в Excel
4.5 Проверка прав
- Дилер: Видит только свои заказы
- Менеджер: Видит заказы своих дилеров
- Производство: Видит заказы своего производства/склада
- Админ: Видит все заказы
Сценарий 5: Редактирование заказа
5.1 Просмотр заказа
- Кликнуть на заказ в списке
- Проверить: Отображение всех данных заказа
- Проверить: Вкладки (Общая информация, Файлы, История, и т.д.)
5.2 Изменение статуса
- Выбрать доступный статус
- Проверить: Доступные переходы согласно правам
- Проверить: Отправка Telegram уведомления (если настроено)
5.3 Редактирование полей
- Изменить дату производства
- Изменить дату оплаты
- Загрузить файлы (спецификация, счет, платежка)
- Проверить: Сохранение изменений
5.4 Загрузка документов
- Загрузить спецификацию
- Загрузить счет
- Загрузить платежное поручение
- Скачать спецификацию (генерация Excel)
Сценарий 6: Каталог товаров
6.1 Просмотр каталога
- Перейти в /catalog
- Проверить: Отображение категорий
- Проверить: Отображение изображений категорий
6.2 Навигация по категориям
- Перейти в подкатегорию
- Перейти к списку товаров
- Вернуться назад (кнопка "Назад")
6.3 Просмотр товара
- Открыть карточку товара
- Проверить: Отображение названия, цены, изображений
- Проверить: Отображение характеристик
- Проверить: Отображение опций (входы, одиночные)
6.4 Редактирование товара (админ)
- Изменить название товара
- Изменить цены (клиентская, дилерская)
- Загрузить изображения
- Добавить/удалить опции
Сценарий 7: Управление дилерами (Менеджер/Админ)
7.1 Список дилеров
- Перейти в /dealers
- Проверить: Отображение списка дилеров
- Проверить: Фильтры и поиск
- Для менеджера: Видны только дилеры его компаний
7.2 Создание дилера
- Нажать "Создать"
- Заполнить ФИО, email, телефон
- Выбрать компанию
- Установить пароль
- Ожидаемый результат: Дилер создан
7.3 Редактирование дилера
- Открыть карточку дилера
- Изменить данные
- Активировать/деактивировать дилера
- Проверить: Сохранение изменений
7.4 Удаление дилера
- Удалить дилера (если есть права)
- Для менеджера: Можно удалить только "своих" дилеров
Сценарий 8: Управление компаниями
8.1 Список компаний
- Перейти в /companies
- Проверить: Отображение списка компаний
8.2 Создание компании
- Создать новую компанию
- Заполнить юр. данные (ИНН, ОГРН, адрес)
- Указать номер договора и дату
- Назначить менеджера
- Установить скидку
8.3 Скидки по категориям
- Открыть редактирование компании
- Настроить скидки по категориям товаров
- Проверить: Применение скидок при создании заказа
Сценарий 9: Календарь заказов
9.1 Просмотр календаря
- Перейти в /calendar/day
- Перейти в /calendar/week
- Перейти в /calendar/month
- Проверить: Отображение заказов на выбранные даты
9.2 Навигация
- Переключиться на предыдущий/следующий день
- Переключиться на предыдущую/следующую неделю
- Переключиться на предыдущий/следующий месяц
9.3 Взаимодействие
- Кликнуть на заказ в календаре
- Ожидаемый результат: Переход к редактированию заказа
Сценарий 10: Impersonation (Авторизация под другим пользователем)
10.1 Проверка доступности функции
- Войти как администратор
- Перейти в /managers
- Ожидаемый результат: Кнопка "Авторизоваться" видна у каждого менеджера
- Перейти в /dealers
- Ожидаемый результат: Кнопка "Авторизоваться" видна у каждого дилера
- Перейти в /productions
- Ожидаемый результат: Кнопка "Авторизоваться" видна у производства
10.2 Выполнение Impersonation
- В списке менеджеров нажать "Авторизоваться" у любого пользователя
- Ожидаемый результат: Редирект на главную, интерфейс под выбранным пользователем
- Проверить: В хедере отображается имя выбранного пользователя
- Проверить: Доступны только функции согласно роли выбранного пользователя
10.3 Возврат к администратору
- Нажать "Выйти" (кнопка выхода)
- Ожидаемый результат: Возврат к администратору (не logout!)
- Проверить: В хедере отображается имя администратора
- Проверить: Доступны все админские функции
10.4 Impersonation дилера
- Войти как дилер через Impersonation
- Проверить: Видны только заказы этого дилера
- Проверить: Недоступны админские разделы (компании, менеджеры и т.д.)
- Выйти → вернуться к администратору
10.5 Безопасность Impersonation
- Войти как менеджер (НЕ администратор)
- Перейти в /dealers
- Ожидаемый результат: Кнопка "Авторизоваться" НЕ видна (нет права)
- Попытаться перейти напрямую /managers/auth/[id]
- Ожидаемый результат: Ошибка 403 (Forbidden)
10.6 Права на Impersonation
Функция контролируется правами:
can_impersonate- общее право на функциюmanager_can_auth- авторизация под менеджеромdealer_can_auth- авторизация под дилеромproduction_can_auth- авторизация под производствомadmin_can_auth- авторизация под администратором
Сценарий 11: Telegram интеграция
11.1 Привязка Telegram
- Написать боту команду /start
- Отправить номер телефона
- Ожидаемый результат: Telegram ID сохранен в профиле пользователя
11.2 Получение уведомлений
- Создать заказ
- Изменить статус заказа
- Ожидаемый результат: Уведомление в Telegram
Сценарий 12: Настройки системы (Админ)
12.1 Статусы заказов
- Перейти в /statuses
- Создать новый статус
- Настроить переходы между статусами
- Настроить права на переходы
12.2 Политики доступа
- Перейти в /policies
- Изменить политики для групп пользователей
- Проверить: Применение политик
12.3 Склады и производства
- Управление складами (/stocks)
- Управление производствами (/manufactures)
Сценарий 13: Безопасность и изоляция данных
13.1 Тест изоляции дилера
- Войти как дилер
- Перейти в /orders
- Проверить: Видны только свои заказы
- Узнать ID чужого заказа (от другого дилера)
- Попытаться открыть напрямую /order/edit/[чужой_id]
- Ожидаемый результат: Ошибка 404 или 403
- Попытаться открыть /dealers, /companies, /managers
- Ожидаемый результат: Пустой список или недоступно
13.2 Тест изоляции менеджера
- Войти как менеджер
- Перейти в /dealers
- Проверить: Видны только дилеры своих компаний
- Узнать ID дилера из чужой компании
- Попытаться открыть /dealers/edit/[чужой_id]
- Ожидаемый результат: Недоступно или ошибка
- Перейти в /companies
- Проверить: Видны только свои компании
13.3 Тест изоляции производства
- Войти как производство
- Перейти в /orders
- Проверить: Видны только заказы своего производства/склада
- Попытаться открыть заказ с другого производства
- Ожидаемый результат: Недоступно
13.4 Тест статусных переходов
- Войти как дилер
- Открыть свой заказ
- Проверить: Доступны только разрешенные переходы статуса
- Проверить: Недоступные статусы заблокированы (disabled)
- Войти как менеджер
- Проверить: Доступны расширенные переходы
13.5 Тест эскалации привилегий (Privilege Escalation)
- Войти как дилер
- Попытаться открыть админские маршруты напрямую:
/admins→ должно быть недоступно/policies→ должно быть недоступно/statuses→ должно быть недоступно/groups→ должно быть недоступно
- Ожидаемый результат: Все возвращают 403 или редирект
13.6 Тест неавторизованного доступа
- Выйти из системы (logout)
- Попытаться открыть защищенные маршруты:
/orders→ редирект на /login/catalog→ редирект на /login/dealers→ редирект на /login
- Ожидаемый результат: Все редиректят на /login
13.7 Чек-лист аудита прав в БД
- Проверить что у администраторов
superadmin = true - Проверить что дилеры НЕ имеют
orders_can_view(видеть все) - Проверить что менеджеры имеют только
*_manager_can_*права - Проверить матрицу переходов статусов в /statuses
- Проверить что производство привязано к
manufacture_idилиstock_id
Сценарий 14: Проверка требований из ТЗ (docs/)
Источник: Документы из папки /docs, особенно "Список_проблем_и_задач_по_системе_ЛК_дилеров.docx"
14.1 Система статусов (проверка цепочки)
Ожидаемая цепочка из ТЗ:
Новая заявка → На утверждение руководителю → Готов к производству
→ На производстве → Готова к выдаче → На подпись менеджеру → Выполнено- Перейти в /statuses
- Проверить: Соответствуют ли статусы ожидаемой цепочке
- Проверить: Правильность переходов между статусами
- Зафиксировать расхождения
14.2 История изменений заказа
- Открыть любой заказ
- Найти раздел "История изменений" / "История действий"
- Проверить: Работает ли история?
- Изменить статус заказа
- Ожидаемый результат: Изменение зафиксировано в истории
- Изменить любое поле заказа
- Ожидаемый результат: Изменение зафиксировано в истории
⚠️ Клиент указал что история НЕ РАБОТАЕТ
14.3 Конфигуратор - входы 160мм
- Создать новый заказ
- Выбрать станцию
- Проверить: Можно ли добавить входы 160мм?
- Проверить: Цена входа 160мм = 2000₽ для дилера?
- Проверить: Максимум 3 входа (торец + лево + право)?
14.4 Конфигуратор - кессоны/погреба
- Создать заказ с кессоном/погребом
- Проверить: 4 базовых патрубка бесплатно?
- Проверить: 5-12 патрубок = 1500₽/шт?
14.5 Статичность данных в завершенных заказах
- Найти завершенный заказ
- Запомнить цены и данные
- Изменить цену товара в каталоге
- Изменить скидку дилера
- Вернуться к завершенному заказу
- Ожидаемый результат: Цены в заказе НЕ изменились
ВАЖНО: Завершенные заказы должны хранить снапшот цен на момент создания
14.6 Серийные номера станций
- Открыть заказ с несколькими станциями
- Проверить: Каждая станция имеет свой серийный номер?
- Как производство добавляет серийные номера?
14.7 Ограничения роли "Производство"
- Войти как производство
- Открыть заказ
- Проверить: Нельзя изменить конфигурацию станции
- Проверить: Можно только добавить серийный номер
- Проверить: Нельзя переписываться с дилером
14.8 Заказы для частных клиентов (без дилера)
- Войти как менеджер
- Проверить: Есть ли возможность создать заказ БЕЗ привязки к дилеру?
- Если есть - используется отдельный прайс?
⚠️ Вероятно НЕ реализовано
14.9 Нереализованные роли
Из ТЗ ожидаются роли:
- Руководитель - более расширенные права чем менеджер → ❓ Есть?
- Логист - управление датами отгрузки → ❓ Есть?
- Инженер - график выездов → ❓ Есть?
Сценарий 15: Генерация документов
15.1 Спецификация заказа
- Открыть заказ
- Скачать спецификацию (Excel)
- Проверить: Корректность данных в документе
- Проверить: Форматирование (цены, даты, названия)
15.2 Бланк заказа
- Скачать бланк из списка заказов
- Проверить: Корректность данных
Контрольный список UX проблем
После выполнения сценариев отметить выявленные проблемы:
Визуальные проблемы
- Битые изображения
- Проблемы с версткой
- Некорректное отображение на мобильных
- Проблемы с цветами/контрастом
Функциональные проблемы
- Неработающие кнопки
- Ошибки валидации
- Проблемы с сохранением данных
- Некорректные расчеты цен
Проблемы производительности
- Долгая загрузка страниц
- Зависания при действиях
- Большое количество запросов
Проблемы удобства
- Непонятные сообщения об ошибках
- Неочевидная навигация
- Отсутствие обратной связи при действиях
Приоритеты тестирования
- Высокий: Авторизация, создание заказа, изменение статусов, безопасность
- Средний: Каталог, управление дилерами, календарь, Impersonation
- Низкий: Настройки системы, генерация документов, Telegram
Учетные данные для тестирования
Заполнить перед тестированием:
| Роль | Пароль | |
|---|---|---|
| Администратор | ||
| Менеджер | ||
| Дилер | ||
| Производство |