ОБ ОСОБЕННОСТЯХ ОРГАНИЗАЦИИ ДИСТАНЦИОННОГО ТЕСТИРОВАНИЯ ОБУЧАЮЩИХСЯ С ПОМОЩЬЮ ЧАТ–БОТОВ
Вынужденный переход всех образовательных структур к дистанционной форме обучения выявил ряд проблем в системе российского образования, а именно: неподготовленность большинства педагогов к удалённой работе, проблемы технического характера, возникшие как на стороне образовательных учреждений, так и на стороне обучающихся, и что самое главное – отсутствие единой технологической платформы онлайн образования [3]. Это привело к неразберихе, связанной с выбором наиболее простых, удобных и эффективных программных средств, способных организовать и реализовать дистанционный формат обучения.
По мнению автора, комфортными эффективным программным средством онлайн-образования можно считать сервис, который:
1) способен в удобном формате хранить и предоставлять всю необходимую информацию по каждому конкретному предмету; 
2) имеет возможность систематизировать результаты обучения, т.е. производить тестирование и обрабатывать его результаты в простой и наглядной форме; 
3) погружает обучающихся в более привычную (именно для них) среду. 
Последний пункт особенно важен, т. к. онлайн-формат обучения уже знаком современным обучающимся. Школьники и студенты проводят большое количество времени в Интернете, социальных сетях и мессенджерах, которые вполне могут стать комфортной средой, как для обучения, так и для организации и проведения контроля знаний с помощью дистанционного тестирования [4].
В настоящее время крупные компании (например, Сбербанк [6]) активно используют чат-боты в социальных сетях и мессенджерах для взаимодействия и обслуживания клиентов. Поэтому актуальным в настоящее время является вопрос об использовании информационных ботов и в образовательном процессе.
Чат-бот в социальной сети (мессенджере) – это некоторая программа, которая использует для взаимодействия с пользователем специально созданный аккаунт в той или иной соцсети или мессенджере.
Чат-боты бывают двух видов [1]: 1. Примитивные, имеющие заранее заданный жёсткий набор правил 
реагирования на действия пользователя. 
2. Продвинутые, обладающие искусственным интеллектом. 
Даже примитивные чат-боты могут значительно повлиять на процесс обучения: преподаватели и обучающиеся могут использовать боты для получения уведомлений, менеджмента методических материалов, в новостных и информационных целях, и, что более важно, автоматизации проведения и оценки результатов тестирования [5].
Программные чат-боты имеют ряд существенных преимуществ. Их создание с технической точки зрения гораздо быстрее и проще, чем создание сайта или мобильного приложения, что также является и экономически выгодным. Боты легко внедрять, настраивать и использовать, они не потребляют ресурсы устройств пользователей (лишь интернет-трафик и то довольно в малом объеме, по сравнению с веб-сайтами) и их легче распространять. Однако главным фактором успешного использования чат-ботов является повсеместное распространение социальных сетей и мессенджеров [1]. Указанные продукты имеются на смартфонах практически любого современного человека, как и подключение к Сети интернет. В качестве площадки для создания бота дистанционного тестирования студентов института математики, естествознания и техники ЕГУ им. И.А. Бунина автором и студентом группы ИиВТу-32 Мельниковым Максимом была выбрана социальная сеть ВКонтакте.
ВКонтакте – это самая популярная в России платформа подобного рода и, например, в отличие от того же WhatsApp, API сервиса для разработки ботов предоставляется бесплатно. API – это прослойка между средой и разработчиком, которая даёт набор готовых функций для взаимодействия с этой самой средой.
Приведем подробное описание создания чат-бота. Первоначально необходимо создать страницу сообщества, через которую будет происходить взаимодействие пользователей с программным ботом. На вкладке «Управления сообществом», в разделе «Работа с API» необходимо создать ключ (токен, acсess token). Это сгенерированная строка, которая передаётся на сервер вместе со всеми запросами. Ключ позволяет взаимодействовать с API ВКонтакте от имени сообщества и определить соответствующий набор прав доступа (привилегий). В нашем случае достаточно иметь следующие права: управление сообществом, сообщения сообщества, фотографии, документы (рисунок 1). Затем в разделе «Сообщения - Настройки», для того чтобы созданная страница могла взаимодействовать с ботом, необходимо включить опцию «Возможности ботов».
Рисунок 1. Создание access token сообщества ВКонтакте
ВКонтакте предоставляет два возможных инструмента для реализации взаимодействия чат-ботов с API ВКонтакте: LongPollAPI и CallbackAPI. Для бота дистанционного тестирования был выбран LongPollAPI. LongPolling является технологией, позволяющей получать информацию о событиях с помощью «длинных запросов». Сервер получает запрос, но отправляет ответ только тогда, когда произойдет какое-либо событие (например, поступление входящего сообщения). Чтобы задействовать выбранный инструмент в разделе «LongPoll API - Настройки» выбираем пункт «Включено». Во вкладке «События» отмечаем те события, на которые будет реагировать бот (рисунок 2). 
Рисунок 2. События, обрабатываемые LongPoll API
Программная часть бота реализована с помощью языка программирования Python3 и специальной библиотеки, предназначенной для работы с API ВКонтакте–vk_api [2]. Список вопросов, которые будут предложены студентам в качестве теста, хранится в json-файле со следующей структурой: значением ключа «question» является сам вопрос, ключу «answers» соответствует список ответов, а «correct_answer» содержит правильный ответ (рисунок 3).
Сначала необходимо создать сессию для работы бота с помощью сгенерированного ранее ключа и подключиться к API ВКонтакте с помощью BotLongPoll API. Затем организуется основной цикл приложения.
Рисунок 3. Структура json-файла с тестами
Общий механизм работы чат-бота следующий.
1. Бот ожидает событие на сервере ВКонтакте. 
2. Сервер передаёт новое событие боту, если это событие «Новое сообщение» типа «Текст», то бот приступает к его обработке, другие же события игнорируются. 
3. Если сообщение пользователя – это команда «тест», то для него стартует тестирование. В противном случае бот сообщает пользователю, что команда некорректна. 
4. Для пользователя, начавшего тестирование, в специальном словаре создаётся ключ сегоid ВКонтакте. Его значением является ещё один словарь, в который записывается текущий вопрос, количество набранных баллов, список вопросов, на которые данный пользователь уже ответил, и другая необходимая информация. 
5. Вопрос формирует специальная функция, которая: 
- выбирает случайным образом один вопрос из json-файла; 
- если пользователь не отвечал на этот вопрос ранее, то создается inline-клавиатура, кнопки которой соответствуют вариантам ответов на поставленный вопрос. Варианты ответов же изначально перемешиваются и располагаются на клавиатуре случайным образом (рисунок 4); 
- если пользователь уже отвечал на это вопрос, случайным образом выбирается другой вопрос из файла.
Рисунок 4. Виртуальная клавиатура бота с вариантами ответов 
6. Пользователь нажимает на кнопку, соответствующую, по его мнению, правильному ответу. Этот вариант и отправляется боту. 
7. Происходит проверка ответа: если обучающийся ответил верно, то счётчик баллов увеличивается. Если вопросы в файле не закончились, то выбирается следующий вопрос (рисунок 5).
Рисунок 5. Ход тестирования 
8. Если пользователь ответил на все вопросы, то рассчитывается его оценка, и результат теста отправляется обучающемуся и дублируется в личное сообщение преподавателю (рисунок 6).
Рисунок 6. Получение результат тестирования
Таким образом, с помощью чат-ботов возможно проводить дистанционное тестирование в простой, удобной и доступной форме как для обучающихся, так и для преподавателей. Кроме того, рассмотренный в настоящей работе бот имеет огромное пространство для дальнейшего расширения функционала. К примеру, возможность добавления тестов на выбор из нескольких дисциплин, добавления веб-интерфеса для редактирования и обновления файлов с вопросами, возможность создавать вопросы с прикреплёнными картинками, аудио и видео файлами, использование таймера, ограничивающего время тестирования и многое другое. 