Дипломная (вкр): Разработка системы онлайн-тестирования

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Пример LINQ-запроса, выполняемого для получения всех групп и тестируемых:

var audiences = db.Audiences

.Where(a => a.AccountId == account.AccountId)

.Include(a => a.TestTakers.Select(tt => tt.ContactInfo))

.ToList()

.Select(a => new JsonAudience

{= a.AudienceId,= a.Name,= a.TestTakers.ToDictionary(tt => tt.TestTakerId.ToString(), tt => new JsonAudienceTestTaker

{= tt.TestTakerId,= tt.EMail,= new JsonAudienceTestTakerContactInfo

{= tt.TestTakerId,= tt.ContactInfo.FirstName,= tt.ContactInfo.LastName,= tt.ContactInfo.Gender,= tt.ContactInfo.DateOfBirth.ToString("dd.MM.yy"),= tt.ContactInfo.CompanyName,= tt.ContactInfo.DepartmentName,= tt.ContactInfo.PositionName,= tt.ContactInfo.Location

}

})

});

Аналитическая система

В качестве хранилища данных аналитической системы выступает реляционная БД с типом схемы “снежинка”. Ее схема представлена на рис. 10.

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

Первое измерение DimTestTaker - данные о тестируемом. Второе измерение - цепочка от варианта ответа до теста (DimOption - DimQuestions - DimTest) хранит данные, соответственно, о варианте ответа, вопросе и тесте.

Рисунок 10 "Схема РХД"

Потоки данных из БД источника в РХД реализованы с использованием ПО MS SSIS. Порядок загрузки сущностей представлен на схеме потока управления пакета Integration Services (рис. 11).

Рисунок 11 "Схема потока управления пакета загрузки MS SSIS"

Сначала загружаются тестируемые (TestTakers) в три этапа (рис. 12):

•        Выгрузка данных из БД в нужном формате (SQL-запрос к источнику)

•        Проверка на уже существующие вхождения (уточняющий запрос к РХД)

•        Вставка новых строк (SQL-запрос к РХД)

Рисунок 12 "Схема загрузки данных об участниках теста"

Остальные сущности загружаются аналогичным образом.

В рамках преддипломной практики в компании была разработана система онлайн-тестирования и аналитическая система. Затем был разработан OLAP куб, который позже был заполнен данными из источника данных - реляционного хранилища данных. Схема куба представлена на рис. 13.

Рисунок 13 "Схема OLAP-куба"

Разработанный куб может быть использован для выполнения MDX-запросов. Например, такой запрос выведет результаты конкретного теста по каждому участнику и по каждой секции теста:

WITH[Measures].[Result] AS

* (1 - [Measures].[Is Wrong - Fact Question Result] / [Measures].[Число Fact Question Result])

non empty [Dim Test Taker].[Full Name].[Full Name] on rows,

([Dim Option].[Section Name].[Section Name], [Measures].[Result]) on columns[Test System DW][Dim Option].[Test Id].&[2]

Использовать результаты выполнения аналитических запросов можно программно из «бэкенд» с помощью библиотеки “ADOMD.NET”. Ее использование заключается в установлении соединения с удаленным OLAP-кубом, передачи запроса и получения результатов в виде специального объекта. Драйвер поддерживает только двумерные данные, поэтому в качестве языка запросов используются MDX.

Визуализация результатов аналитических запросов осуществляется с помощью различных клиентских JS-библиотек для отрисовки на веб-странице интерактивных графиков и диаграмм.

Тестирование системы

Для отладки системы был составлен тест на определение общей эрудиции из 20 вопросов, разделенных на пять различных секции по тематике вопросов:

·        Литература

·        Математика

·        Физика

·        География

·        Биология

В каждой из секций было по 5 вопросов различных типов - с единственным ответом и несколькими возможными вариантами ответа.

В систему были добавлены четыре группы тестируемых:

·        Одногруппники

·        Бывшие одноклассники

·        Товарищи по военной кафедре

·        Друзья

На тест было приглашено более 75 человек, из которых 55 прошли тест. Данные об ответах участников были загружены в хранилище данных. Для анализа результатов были использованы некоторые MDX-запросы.

Результат выполнения MDX-запроса для вывода процента правильных ответов по каждому участнику и по каждой секции теста представлен на рис. 14.

WITH[Measures].[Result] AS

* (1 - [Measures].[Is Wrong - Fact Question Result] / [Measures].[Число Fact Question Result])

non empty [Dim Test Taker].[Full Name].[Full Name] on rows,

([Dim Option].[Section Name].[Section Name], [Measures].[Result]) on columns[Test System DW][Dim Option].[Test Id].&[2]

Рисунок 14 “Результаты выполнения MDX-запроса в среде “MS SQL Server Management Studio”

Этот запрос можно модифицировать и получить статистику результативности в каждой из секций теста по каждой группе участников.

Рисунок 10 “Средние результаты по группам и предмету вопроса”

Следующий запрос выведет частоту ошибки в вопросах:

select non empty [Dim Option].[Question Text].[Question Text] on rows,

([Dim Test Taker].[Group Name].[All], [Measures].[Is Wrong - Fact Question Result]) on columns[Test System DW][Dim Option].[Test Id].&[2]

По результатам данного запроса можно получить рейтинг самых сложных вопросов. Лидеры этого рейтинга:

.        Невесомость - это состояние тела, при котором ... (89% ошибок)

.        Какими словами начинается письмо Онегина к Татьяне? (78% ошибок)

.        Какие из этих частиц не имеют заряда? (74% ошибок)

Место самого простого вопроса разделили 2 вопроса из разделов География и Биология с менее 11% доли ошибок:

.        Столица США - ...

.        Что такое цитоплазма?

Следующий MDX-запрос позволит выявить самые сложные секции теста по группам тестируемых:

select non empty [Dim Option].[Section Name].[Section Name] on rows,

([Dim Test Taker].[Group Name].[Group Name], [Measures].[Is Wrong - Fact Question Result]) on columns[Test System DW] where [Dim Option].[Test Id].&[2]

В качестве результата получается таблица с числом ошибок в зависимости от предмета вопроса (секции теста) и группы тестируемых:

Таблица 2 “Общее число сделанных ошибок в тесте по группам и секции теста”


11th grade mates

Friends

Group BI132

Military Department

Физика

25

14

43

29

Литература

20

12

31

22

География

15

3

24

11

Математика

19

4

16

10

Биология

12

3

17

15


Как видно, абсолютными лидерами по числу ошибок являются разделы “Физика” и “Литература”.

Спроектированная аналитическая система позволяет гибко использовать полученные в ходе тестирования данные для решения различных аналитических задач. При этом не играет роли выбор названий Секций теста, самого теста или групп участников - MDX-запросы с минимальными модификациями могут быть использованы для оценки других тестов - необходимо только заменить в запросе ID теста на необходимый.

Заключение


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

На основании проблем, связанных с проведением тестирования с использованием бумажных бланков, были выделены требования к разрабатываемой системе онлайн-тестирования. Во-первых, было принято решение о максимизации скорости работы пользовательского интерфейса для достижения преимущества перед существующими онлайн-системами. Во-вторых, для достижения цели работы (а именно для реализации аналитических возможностей) было решено использовать OLAP-подход для анализа результатов теста.

В работе был дан обоснованный выбор набора технологий, используемых для разработки веб-сайта и аналитической системы. Анализ двух фреймворков React и Angular позволил сделать выводы о том, что первый из них куда более удобен для разработки системы онлайн-тестирования. Он отличается скоростью за счет использования умного механизма по манипуляции DOM, а также широкими возможностями по работе с данными и расширению сторонними библиотеками. В роли аналитической системы выступил Microsoft SQL Server вместе с набором инструментов для аналитики BI Tools. Серверным языком программирования стал C#, так как он может быть интегрирован с аналитической системой. Доказано, что обе части программного обеспечения могут быть использованы в качестве технологической основы для проектируемой онлайновой системы тестирования.

Инновацией разрабатываемой системы является выбор быстрого JS-фреймворка для разработки пользовательского интерфейса и BI-подход для анализа результатов теста. Фронтенд системы представляет из себя одностраничное приложение, при навигации по которому веб-браузер не перезагружает страницу полностью.

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

В результате этого проекта создано онлайн-приложение, которое позволит его пользователям создавать тесты, подписываться на аудиторию и просматривать результаты тестов.

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

Проект, направленный на создание онлайн-системы тестирования знаний с аналитическими инструментами, реализован с использованием фреймворка React.JS и MS SQL Server на локальной машине под управлением Windows. Исходный код программы опубликован в репозитории GitHub по ссылке: https://github.com/NogaMan/testSystem

Список использованных источников

онлайн тестирование фреймворк

1.       Гектор Гарсиа-Молина, Джеффри Ульман, Дженнифер Уидом. Системы Баз данных. Полный курс. Издательство Вильямс, 2004г.

2.       Advanced Users FAQ. Pentaho Data Integration Documentation. Электронный ресурс. Дата посещения 24 февраля 2017г. http://wiki.pentaho.com/display/EAI/Advanced+Users+FAQ

3.       American Psychological Association, Assessment Centers Help Companies Identify Future Managers. Электронный ресурс. Дата посещения 27 апреля 2017г. http://www.apa.org/research/action/managers.aspx

4.       Architecture. Angular core documentation. Электронный ресурс. Дата посещения 27 апреля 2017г. https://angular.io/docs/ts/latest/guide/architecture.html

5.       Chua Yan Piaw. Replacing Paper-based Testing with Computer-based Testing in Assessment: Are we Doing Wrong? Электронный ресурс. Дата посещения 27 апреля 2017г. http://www.sciencedirect.com/science/article/pii/S1877042812050549

6.       Kyle Simpson. You Don’t Know JS. Серия книг. 2013-2017гг

.        Microsoft TechNet. SQL Server and ADO.NET. Электронный ресурс. Дата посещения 10 мая 2017г. https://msdn.microsoft.com/en-us/library/kb9s9ks0(v=vs.110).aspx

8.       Microsoft TechNet. Developing with ADOMD.NET. Электронный ресурс. Дата посещения 10 мая 2017г. https://technet.microsoft.com/en-us/library/ms123483(v=sql.110).aspx

9.       Mike Wasson. Enabling Cross-Origin Requests in ASP.NET Web API 2. Электронный ресурс. Дата посещения 7 мая 2017г. https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/enabling-cross-origin-requests-in-web-api

10.     Mondrian FAQ. Pentaho Mondrian Documentation. Электронный ресурс. Дата посещения 27 апреля 2017г. http://mondrian.pentaho.com/documentation/faq.php

11.     Optimizing Performance. React advanced guides. Электронный ресурс. Дата посещения 27 апреля 2017г. https://facebook.github.io/react/docs/optimizing-performance.html

12.     Paulraj Ponniah. Data warehousing fundamentals for IT professionals. Издательство John Wiley & Sons, Inc, 2011.

.        SQL Server 2012 Books Online. SQL Server 2012 Tutorials: Analysis Services - Multidimensional Modeling. 2012.

.        SQL Server 2016 Technical Documentation // MSDN. Электронный ресурс. Дата посещения 27 апреля 2017г. https://msdn.microsoft.com/en-us/library/ms141026.aspx

Источник: https://www.bibliofond.ru/detail.aspx?id=897224