Тест кейсы - 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.

⚠️ **GitHub.com Fallback** ⚠️