Библиографическое описание:

Устинова Л. В., Адекенова А. Н., Нургалиева С. А. Разработка клиент серверного приложения “TEST-DRIVE” [Текст] // Проблемы и перспективы развития образования: материалы VI междунар. науч. конф. (г. Пермь, апрель 2015 г.). — Пермь: Меркурий, 2015. — С. 296-298.

В учебном процессе преподаватели часто сталкиваются с необходимостью контроля знаний учащихся. Для достижения цели проводятся контрольные срезы, формативные оценивания, проверяется самостоятельная работа учащихся. Контроль и оценивание вышеперечисленных работ занимает большое количество времени, что предполагает автоматизацию процесса. Без автоматизации процесса испытания программы провести ее тестирование в полном объеме практически невозможно.

Используя командные файлы для сборки программ учащихся в текущий каталог и тестируя их по очереди можно автоматизировать контроль проверки выполнения заданий. Другим направлением в автоматизации тестирования является использование современные сетевые средств передачи файлов и пересылки результатов их проверки непосредственно учащимся.

К средствам автоматического тестирования относится программа, которая пересылает данные очередного теста во входной файл, записывает выходные данные в файл и запускает программу проверки правильности выходного файла, по истечении отведенного на ее работу времени прерывает выполнение программы. При этом создается протокол проверки программы на полном наборе тестов. Такую программу называют тестовым драйвером [1, 2].

Данный драйвер был разработан под операционную систему Windows с использованием интегрированной среды Delphi 7.0. В Delphi удачно сочетаются средства визуального проектирования приложений и оптимизирующий компилятор. Данный компилятор экономно использует ресурсы компьютера и одновременно обладает высокой производительностью. Кроме того, в Delphi встроена поддержка формата DLL и других выполняемых файлов Windows; возможность многоуровневой разработки приложений; использование сокетов, протоколов и WinInetApi.

Тестовый драйвер создан как клиент-серверное приложение. Это предполагает наличие выделенного сервера и клиентских программ. Для реализации специализированного клиент-серверного приложения, используем библиотек Internet Direct (Indy) компании Nevrona Designs. Данная библиотека, разработанная специально для Borland Delphi. Набор компонентов разделен на три группы: клиентские (Indy Client), серверные (Indy Servers) и вспомогательные (Indy Misc).

Indy Clients и Indy Servers — большинство компонентов Indy Client и Indy Servers представляют собой пары, соответствующие клиентским и серверным частям протоколов и служб, и позволяют использовать такие протоколы, как TCP/IP, UDP, NNTP, SMTP, FTP, http, а также службы ECHO, FINGER, WHOIS и т. д.

Данная программа создает исчерпывающий протокол тестирования, что позволяет использовать ее и при проверке учебных задач. Для того чтобы тестовый драйвер проверял решение какой-либо задачи, создается конфигурационный файл. Минимальная информация, которую должен содержать файл конфигурации [3]: количество и названия задач (например: 1, 2,3..10 или SRSP1, SRSP2); указывается имена входного и выходного файлов согласно условию задачи; количество тестов, если количество тестов не задано или 0, то осуществляется проверка программы на всех тестах, находящихся в текущем каталоге; шаблон для имен тестовых входных файлов (input1_*.tst); шаблон для имен файлов правильных ответов; программа (checker.exe) для проверки правильности полученного ответа; время работы проверяемой программы в секундах или миллисекундах на одном тесте.

Сама программа TEST-DRIVE состоит из двух подпрограмм, содержащихся в приложении Г: Серверная программа — устанавливается в компьютере преподавателя. Клиентская программа — устанавливается в клиентских компьютерах.

Клиентская часть представлена реализацией возможности участников задавать вопросы преподавателю и получать за них ответы. Рассмотрим элементы интерфейса серверной программы. Разработанный интерфейс тестового драйвера содержит 4 основные формы:

1.                  Форма с индикатором поиска компьютеров подключенных к сети.

2.                  Главная форма содержит список имен локальных компьютеров, раздел отправки заданий и получения результатов, настройки тестовых заданий, проверку задач, просмотр результатов. Предполагает возможность проведения тестов как индивидуально, так и для группы пользователей. Выбор производится выделением имен компьютеров из списка. Необходимо отметить, что при добавлении пользователей, список имен локальных компьютеров изменяется динамически.

Для того чтобы определить список участников тестирования производится поиск компьютеров в рабочих группах. Список рабочих групп можно редактировать. После определения имен компьютеров в сети, необходимо определить его IP адрес.

Процедура SearchCompClick запускает процедуру FindAllComputers поиска компьютеров в рабочей группе Workgrup, и заносит их имена в массив Computer. Число компьютеров хранится в переменной ComputerCount.

Другим способом определения списка участников тестирования является определениие IP адреса и имени компьютера в локальной сети и пересылке данных серверу. С помощью команды ipconfig /all определяется IP адрес, имя компьютера. Данная информация записывается в текстовый файл, обрабатывается и используя структуру приложения клиент-сервер передается серверу. В дальнейшем IP адрес записывается в свойства Hint компонентов класса TcheckBox и используется для связи сервера с данным компьютером.

При выборе подпункта меню «Справка» открывается справочная система, в которой описывается интерфейс программы, и.т.д.

При выборе любой группы, в CheckListBox отображается имена компьютеров, принадлежащих к этой группе. С помощью кнопки можно одновременно всех выбрать или снимать у всех флажки. На панели «Настройка» можно определить количество задач, время выполнение в одном тесте (в секундах), количество тестов. По количеству задач динамически создается TspinEdit и TcomboBox

В TspinEdit выбирается сложность задачи, и соответственно с этой сложности в TcomboBox отображаются список задач. После этого выбранные задачи преподаватель сможет отправить участникам олимпиады с помощью кнопки «Отправить» в части «Файл». Файлы отправляются участникам в виде *.html файла, с гиперссылками на условие задач.

До отправления задачи преподаватель должен удалить все файлы и директории в папке «Олимпиада». Для этого достаточно нажать кнопку «Удалить». Для того чтобы забрать уже решенные задачи, можно нажать кнопку «Забрать». С помощью «Разговорника» преподаватель сможет информировать участников олимпиады или отвечать на их вопросы.

3.                  Форма выбора языка (рис. 1) предоставляет возможность выбора языка интерфейса программы. Имеется возможность при необходимости добавление английского языка.

Рис. 1. Окно выбора языка тестирования

 

4.                  Форма настройки параметров тестирования (рис. 2).

Рис. 2. Окно установки параметров тестирования

 

И наконец, самая последняя часть — это проверка олимпиадных задач. Для автоматического распределения участников по местам необходимо воспользоваться кнопкой «Проверить». После этого «Checker» сам проверяет олимпиадные задачи, а результаты можем увидеть во второй форме. Результаты олимпиады можно экспортировать в EXCEL используя команду меню «Экспорт в EXCEL».

5.                  Форма результатов тестирования содержит два списка. Список, находящийся слева заполняется фамилиями, баллами участников, справа располагается подробный отчет по каждому из участников: номер задачи и баллы за тесты.

Система тестирования может содержать несколько встроенных алгоритмов для проверки правильности полученных ответов. В нашем случае, программы, сравнивающие два файла на совпадение называется checker.exe. Возможны следующие варианты сравнения: в файлах содержится один и тот же набор чисел, причем в том же самом порядке; при сравнении текстовых файлов выполняется проверка на точное совпадение или с игнорированием пробелов в конце каждой строки и символов перевода строки в конце файла; возможно сравнение файлов без учета порядка расположения данных. Существуют задачи, имеющие не одно решение. В таких случаях проверка проводится с помощью подстановки.

Проверка результатов. Для проверки той или иной программы с помощью системы тестов, необходимо создать набор тестовых входных данных. Имена файлов для каждой из задач должны быть идентичными, например input__1.tst (1 тест), input__2.tst (2 тест), input__3.tst (3 тест) и т. д. Символы в имени файла после знака подчеркивания обозначают порядковый числовой номер в системе тестов. В правильно составленном наборе тестов их сложность с увеличением номеров должна возрастать

Если завершение программы прошло успешно создается out файл. Снятие задачи по истечении времени. Если при проверке задачи отсутствует откомпилированный фал, в протокол проверки в качестве типа ошибки будет занесено File Compilation Not Found. Если же исполняемый файл для проверяемой программы был создан, то тестовый драйвер последовательно запускает его на каждом из тестов для указанной задачи.

Если завершение программы прошло успешно, то запускается программа проверки выходных данных проверяемой программы. Если время тестирования превышает максимальное время для теста происходит снятие задачи, с занесением ошибки Time Out. В случае успешной проверки в файл протокола заносится ОК, в противном случае одна из ошибок.

Таким образом, разработанная программа выполняет функции автоматической проверки заданий практикумов по программированию, проведение олимпиад в режиме on-line и тестирование знаний учащихся.

Итоги этого эксперимента показали, что данная программа имеет хорошие перспективы для практического использования. Она решает ряд проблем накопившихся на уровне региональных олимпиад. Отмечая положительные моменты проведенного исследования, можно остановиться в заключение на перспективах его практического и теоретического использования. В дальнейшем эту программу можно дополнить, чтобы с ее помощью учитель смог проверять не только олимпиадные задачи, но и лабораторные задачи, а также выполнить распределение на несколько серверов. Применение данной программы в учебном процессе позволит повысить эффективность труда учителя.

 

Литература:

 

1.                  Дарахвелидзе, П. Г. Программирование в Delphi 7. СПб.: БХВ-Петербург, 2003. — 784 с.

2.                  Баженова, И. Ю. Разработка распределенных приложений [Текст] / И. Ю. Баженова. Издательство: КУДИЦ-Образ, 2003 г

3.                  Кэнту, Марко. Delphi 7: Для профессионалов [Текст]: [Пер. с англ.] / Марко Кэнту. — СПб.: Питер, 2004. — 1100 с.: ил. — ISBN 5–94723–593–5

Обсуждение

Социальные комментарии Cackle