# Описание доработок системы тестирования ## Введение в часть доработок эти доработки нужны для того чтобы обеспечить возможность более полного тестирования кода, который присасывается студентами ## Общий сценарий работы с системой по ролям предполагается что в системе будет несколько различных ролей И в частности это будут администраторы те кто может добавить тест и студенты которые этот тест будут проходить поэтому общественной работы с системой представлен по ролям ### Роль администратор под администратором понимается администратор системы то есть этот человек который может добавлять новые организации новых пользователей и новых студентов а также проходить сами теста если это потребуется когда администратор заходит на сайт он видит форму авторизации после авторизации он видит меню, в котором находится пункты организация я или организации и и группы тестов при нажатии на пункт Меню организации администратор может добавлять удалять или редактировать доступ у определенных организаций на данный момент у нас будет одна организация в рамках которой мы это и разрабатываем также администратор может зайти на вторую вкладку которая будет у негов меню сверху группы тестов при нажатии на эту вкладку администратор увидит все существующие группы тестов для каждая организация, которая есть в системе дальше администратор может создать или удалить или редактировать какие-либо группы тестов этот функционал схож с функционалом следующих ролей и будет рассмотрен там подробнее ### Роль администратор тенанта эта роль может добавлять преподавателей и студентов в конкретную организацию для того чтобы преподаватели могли создавать тесты и группы тестов а студенты могли эти тесты проходить также администратор Tinto должен иметь доступ к созданию тестов и группы тестов ### Роль преподаватель преподаватель Это последняя роль, которая может создавать ть сценарий тестирования общество Мария работы преподавателя системный будет такой преподаватель авторизуется в системе и видит в верхнем меню 1 пункт группы правил преподаватель заходит в этот пункт и видят существующей группы правил для своей организации дальше преподаватель может ьт создать новую группу нажав на кнопку добавить в группу при этом он заполняет описание группы то есть название группы тестов Затем он указывает язык приложение которое нужно тестировать а затем ставят галочку консоль это или не консоль после этого есть поле для тегов которые мы можем записать в данную группу ку ниже после описания самой группы идёт конструктор тестов в конструкторе тестов мы можем создавать уровни тестирования уровни тестирования делятся на на несколько категорий Первое это проверка правил 2 Это проверка на синтаксическом анализаторе которой есть для данного языка в системе, если он есть 3 это компиляция программы и выдачи результатов студенту. когда преподаватель добавил все уровни тестирования в группу тестирования он нажимает кнопку создать или сохранить в зависимости от того создаём группу или редактируем И после этого переходит на страницу со списком всех групп в списки групп мы можем нажать на каждую группу и увидеть Из каких уровней Она состоит ьт если есть уровень тестирования правила тогда мы можем сразу же из этого интерфейса добавить неограниченное количество правил к данному уровню тестирования если у нас есть уровень тестирования синтаксический анализатор то мы можем выбрать конкретную программу или конкретный метод тестирования которые соответствуют этому уровни тестирования Таким образом у нас не будет отдельный вкладки с правилами правила будут открываться только При редактировании группы. соответственно при добавлении правил группы будет проставляться автоматически и не нужно будет её выбирать в списки групп в поле добавления правила ### Роль студент студент, Когда авторизуется в системе видит набор своих прошедших тестов и список доступных ему групп при нажатии на конкретном группу или можно сделать кнопку рядом с названием группы написать на этой кнопке запустить тест при нажатии на эту кнопку открывается окно создание нового теста когда студент создает новый тест он указывает ссылку на репозиторий это может быть ссылка на гитхаб либо это может быть ссылка на repl.it в таком случае нужно добавить внизу выбор типа репозитория, чтобы программу могла определять откуда конкретно набрать код соответственно при добавлении теста студент добавил ссылку на свой код указал откуда нужно брать свой код с какого сайта И после этого нажимает кнопку создать тест или запустить тестирование наверное лучше назвать эту кнопку запустить тестирование после этого программы берёт скачивает его кот и проверяет на все необходимые правила которые должны быть проверены в рамках этой группы после того как тест пройден и были пройдены все уровни тестирования студентов должен отобразиться отчет о проведении теста где должно быть показано что конкретно не сработала и на каком этапе то есть нужно сделать табличку в которой будет отображаться название этапа То есть это уровень тестирования ишак из этого уровня и справа будет отображаться результат пройдено или не пройдена можно галочкой картиночка можно словами как сейчас а дальше еще более правом столбике то есть уже в третьем столбике будет отображаться рекомендация что конкретно можно улучшить в зависимости от того пройден тест или не пройден соответственно пока что такие правила у нас настроены только для уровня правила но я придумаю что-нибудь и для двух других уровней которые также у нас будут тестировать в системе ## Сценарий добавления групп более детально процесс добавления групп с картинками Напишу позже ![](https://i.imgur.com/xszBr0Q.jpg) ## Сценарий проведения тестирования более детальный процесс проведения тестирования Напишу позже Вместе с картинками ## Минимальные требования для начального этапа внедрения на начальном этапе как можно быстрее, Нам нужно реализовать следующие функции системы нужно, чтобы был администратор системы или преподаватель, который может задавать непосредственно сами вот эти правила для проверки и также нужно, чтобы бы тест состоял не только изпроверки на правило как сейчас это естЬ но ещё и из синтаксической проверки а также дальнейшей компиляции программы и выдачи пользователю сообщения об успешности того или иного шага точнее того и другого шага а также какого-то результаты выполнения может быть это просто скриншот будет или что-то в этом духе