Система тестирования. Часть 1. Введение

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

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

Сами вопросы, и основные настройки теста будут храниться в xml файле, это обеспечит более менее удобный доступ к данным. Для того что бы тестируемый не мог отрыть файл и прочитать ответы xml файл будет шифроваться. В качестве среды разработки выберем Delphi.

Пример работы с программой

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

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

Требования к программе

На основании выше написанного можно сформировать следующие требования к программе, в общем:

  • Возможность задавать название теста и использовать заданное количество вопросов из всех доступных.
  • Удобное управление вопросами и вариантами ответа со стороны преподавателя.
  • Вариантов ответа может быть любое количество.
  • Вопросы перемешиваются в случайном порядке.
  • Файл с вопросами шифруется, что бы нельзя было его прочесть при помощи различных текстовых редакторов.
  • При прохождении теста имеется возможность вернуться к предыдущим вопросам.
  • Вопросы можно пометить как неактивные, и тогда они не будут использоваться в тесте.
  • Расчет и вывод результатов тестирования по 100 бальной школе.

Структура каталогов

Рассмотрим структуру каталогов программы:
/StTest – главный каталог системы
     /lib – общие файлы
     /Test – само приложение теста (система представления)
     /Create – приложение для создания и управления тестом (система администрирования)

В общем-то системы представления и администрирования будут никак не связаны между собой. Они могут без проблем работать друг без друга. Единственная связь между ними это xml файл вопросов, который создается системой администрирования, а используется уже в представлении.

Приведенная выше структура каталогов не является обязательной, но все же, так будет в некотором роде удобнее. Представление и администрирование это отдельные проекты Delphi, завернутые в одну группу (Project Group). В папке lib будут хранятся файлы, подключаемые и там и там. В частности, классы для работы с данными из xml и функции шифрования.

На этом введение можно закончить, в следующей части рассмотрим основные методы работы c данными из xml файла.

delphi, тест, xml

Комментарии (0)

Добавить комментарий

  • Допустимые html-теги:
    <b> </b> - жирный шрифт
    <em> </em> - наклонный
    <s> </s> - зачеркнутый
    <pre> </pre> - сохранение отступов (печать кода)
    [?]
Введите текст с картинки