Тест кейсы - gogafefe/StAlGoLM GitHub Wiki
Ниже приведены проверки по текущему коду и протоколу. Это план ручного тестирования; фактическое выполнение пока не зафиксировано. Автоматические проверки генераторов описаны на странице Юнит-тесты.
Запустить сервер и клиент, подключиться к localhost:33333. Использовать отдельную тестовую базу и новые логины, например wiki_user_01. Для команд, отсутствующих в оконном клиенте, использовать TCP-клиент с разделителем 0x01 после каждой команды. Перед проверкой изменения счётчика записать начальное значение через mystats.
| ID | Проверка и условия | Шаги / данные | Ожидаемый результат |
|---|---|---|---|
| TC-01 | Регистрация нового аккаунта | reg wiki_user_01 pass123 [email protected] |
reg+; создаются пользователь и строки статистики |
| TC-02 | Повторная регистрация | Повторить TC-01 с тем же логином |
error: user exists; второй аккаунт не создаётся |
| TC-03 | Успешный вход |
auth wiki_user_01 pass123, затем whoami
|
auth+ user; профиль содержит логин, email и роль |
| TC-04 | Неверный пароль; новая сессия | auth wiki_user_01 wrong |
auth-; вход не выполнен |
| TC-05 | Задание без входа; новая сессия | task2 1 |
error: login required to use tasks |
| TC-06 | Границы номеров; пользователь вошёл | По очереди task2 0, task2 11, task3 0, task3 11
|
error: task number must be 1-10 |
| TC-07 | Генерация Task2 | Запросить task2 N для N от 1 до 10 |
Условие метода Ньютона, четыре варианта x1 |
| TC-08 | Генерация Task3 | Запросить task3 N для N от 1 до 10 |
Функция, отрезок, epsilon и четыре варианта корня |
| TC-09 | Верный ответ Task2 | Получить task2 1, вычислить x1 по формуле Ньютона, отправить индекс соответствующего варианта; mystats 2
|
Ответ «Верно!»; счётчик шаблона 1 увеличивается на 1 |
| TC-10 | Неверный ответ Task2 | Получить новое task2 1, выбрать другой индекс; mystats 2
|
Ответ «Неверно!», показан правильный ответ; счётчик уменьшается на 1 |
| TC-11 | Верный ответ Task3 | Получить task3 3, независимо вычислить корень с указанной точностью, отправить индекс; mystats 3
|
Ответ «Верно!»; счётчик шаблона 3 увеличивается на 1 |
| TC-12 | Неверный ответ Task3 | Получить новое task3 3, выбрать другой индекс; mystats 3
|
Ответ «Неверно!»; счётчик уменьшается на 1 |
| TC-13 | Повторный ответ после завершения | После TC-09 или TC-11 отправить ещё одно число | Статистика повторно не изменяется: активное задание уже сброшено |
| TC-14 | Личная статистика |
mystats, mystats 2, mystats 3
|
Все четыре раздела либо выбранный раздел; для Task2/3 по 10 ячеек |
| TC-15 | Выход |
logout, whoami, task3 1
|
logout+; профиль сообщает отсутствие входа; запрос задания отклонён |
| TC-16 | Ограничения обычного пользователя | Войти с ролью user; users, stats, role wiki_user_01 admin
|
Список и статистика требуют moderator/admin; изменение роли требует admin |
| TC-17 | Возможности модератора | Войти тестовым moderator; users, stats; попытаться изменить роль |
Список и статистика доступны, изменение роли отклонено |
| TC-18 | Возможности администратора | Войти тестовым admin; создать отдельный аккаунт, изменить ему роль, удалить его |
role+, затем del+ <login>; изменения видны в списке пользователей |
| TC-19 | Изоляция двух сессий | Два разных пользователя получают разные задания и отвечают каждый в своей сессии | Проверяется ответ своего задания; изменяется только статистика соответствующего пользователя |
| TC-20 | Сохранение статистики | Записать счётчики, перезапустить сервер с той же тестовой БД, снова войти и вызвать mystats
|
Счётчики сохраняются |
Для TC-17/18 подготовить роли в тестовой среде. Текущая команда reg принимает необязательную роль; это особенность реализации, описанная на странице UseCase.
Таблицы перенесены из каталога таблицы без изменения содержимого.
Для каждого запуска записывать ID, версию проекта, дату, входные данные, фактический результат и статус PASS / FAIL / BLOCKED. При ошибке сохранять условие случайно сгенерированного задания и ответ сервера. Все ручные кейсы выше имеют статус не выполнялись при этом обновлении Wiki.