Научная статья на тему 'Принципы построения и реализация системы автоматизированного тестирования решений задач по программированию'

Принципы построения и реализация системы автоматизированного тестирования решений задач по программированию Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
842
131
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ИНФОРМАЦИОННАЯ СИСТЕМА / АВТОМАТИЗИРОВАННАЯ СИСТЕМА ПРОВЕРКИ / ЭЛЕКТРОННЫЕ ОБРАЗОВАТЕЛЬНЫЕ РЕСУРСЫ / INFORMATION SYSTEM / AUTOMATIC CHECKOUT SYSTEM / ELECTRONIC EDUCATIONAL RESOURCES

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Привалов Александр Николаевич, Гладких Илья Юрьевич

Рассмотрены распространенные САП решения задач по программированию. Проведен анализ их сильных и слабых сторон, рассмотрены аспекты, влияющие на выбор той или иной системы. На основании анализа подходов к разработке САП были предложены принципы построения и разработан программный продукт система автоматизированного тестирования решений задач по программированию.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Привалов Александр Николаевич, Гладких Илья Юрьевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

PRINCIPLES OF CONSTRUCTION AND IMPLEMENTATION OF A SYSTEM OF AUTOMATED TESTING SOLUTION TO THE PROBLEM PROGRAMMING

The article describes the common system of automatic inspection solutions for programming problems. The analysis of their strengths and weaknesses are discussed aspects influencing the choice of one system or another. It has been proposed and developed principles of a software product based on the analysis of approaches to the development of SAP-computer-aidedtesting solutions for programming problems.

Текст научной работы на тему «Принципы построения и реализация системы автоматизированного тестирования решений задач по программированию»

Привалов Александр Николаевич, д-р техн. наук, проф., privalov.61@mail.ru, Россия, Тула, Тульский государственный педагогический университет им. Л.Н. Толстого,

Богатырева Юлия Игоревна, д-р пед. наук, доц., bogatirevadj@yandex.ru, Россия, Тула, Тульский государственный педагогический университет им. Л.Н. Толстого

ON THE HIKE TO THE MODELING OF PROCESSES IN EDUCATIONAL ENVIRONMENT UNIVERSITY OF AGGREGATE MODELS

A.N. Privalov, Y.I. Bogatyrevа

The application of aggregative models for modeling of information processes in the information-educational environment of high school, designed on the basis of systems with distributed processing. Results of the experiment are given.

Key words: aggregative model, queuing network, information processes.

Privalov Aleksandr Nicolaevich, doctor of technical science, professor, privalov. 61@mail.ru, Russia, Tula, Tula State Pedagogical University named after L.N. Tolstoy,

Bogatyreva Yulia Igorevna, doctor of pedagogical science, professor, bogatire-vadj@yandex. ru, Russia, Tula, Tula State Pedagogical University named after L.N. Tolstoy

УДК 004.942

ПРИНЦИПЫ ПОСТРОЕНИЯ И РЕАЛИЗАЦИЯ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ РЕШЕНИЙ ЗАДАЧ ПО ПРОГРАММИРОВАНИЮ

А.Н. Привалов, И.Ю. Гладких

Рассмотрены распространенные САП решения задач по программированию. Проведен анализ их сильных и слабых сторон, рассмотрены аспекты, влияющие на выбор той или иной системы. На основании анализа подходов к разработке САП были предложены принципы построения и разработан программный продукт - система автоматизированного тестирования решений задач по программированию.

Ключевые слова: информационная система, автоматизированная система проверки, электронные образовательные ресурсы.

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

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

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

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

Рассмотрим известные и распространённые в мире системы автоматизированной проверки.

Ejudge - система автоматической проверки работ по программированию, созданная и поддерживаемая российскими разработчиками. Данная система предполагает создание отдельного web-ресурса для доступа к САП. Не существует специально созданного для общественного доступа или доступа на платной основе сервера для любого желающего воспользоваться услугами САП на данной системе. Однако Ejudge ориентирована на использование отдельного сервера в той организации, где есть необходимость в автоматической проверке консольных приложений.

Из-за того, что данная система не имеет собственного отдельного сервиса для общего использования, необходимо выделить отдельный сервер (или выделить часть ресурсов уже использующихся) для установки Ejudge. Стоит также отметить, что данная система в первую очередь предназначена для взаимодействия с пользователем через программу интернет браузера и в стандартный пакет установки включены компоненты web-сервера, обеспечивающего доступ к системе. Кроме того существенным недостатком к уже упомянутому является отсутствие (на момент написания статьи) плагина или модуля для интеграции в распространённые системы дистанционного обучения (СДО) такие как moodle, ILIAS или docebo.

Ejudge для установки полностью поддерживает только ОС на основе Linux. И хотя начиная с версии 2.3.15 данная САП поддерживает тестирование программ (и установку тестирующих приложений) на платформе Windows, серверная часть все рано поддерживает лишь Linux. Кроме того, как заявляют сами разработчики этой САП, использование данной системы в связке с Win-платформой крайне уязвимо со стороны безопасности сервера.

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

Так же к положительным аспектам данной системы относятся интегрированные системы изолированного запуска приложений и контроля над ними, в дальнейшем такие системы будем просто называть «песочницами».

Система Соп1ев1егтакже является отечественной разработкой, отсутствует отдельный общедоступный сервер для проверки программных продуктов, доступ к системе САП ориентирован через отдельную web-оболочку.

Кроме того в пакете установки данной САП отсутствуют специально подготовленные блоки или плагины для интеграции в СДО, а среди общедоступных дополнений или расширений СДО не предусмотрено использование Contester.

Contester предназначена для интеграции в действующий web-сервер отдельным сетевым ресурсом. Хотя у данной системы нет отдельного общедоступного сервера и для использования необходимо использовать действующий web-сервер. Однако Contester предполагается использовать на уже задействованном и в достаточной мере используемом сервере, а не выделении отдельной машины для САП.

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

Значительным преимуществом данной системы является первоначально мультиплатформенная ориентированность САП Contester. Не считая интерфейса, версии для Linux и Win имеют одинаковый функционал.

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

Другой продукт отечественных разработчиков - TimusOnlineJudge, существенным ограничением которого является то, что данная система разрабатывалась на использование ее, в первую очередь, для нужд кон-

кретной организации - Уральского федерального университета, ввиду чего, по сути, остальные пользователи используют лишь часть функционала. Данная САП обладает отдельным общедоступным сервером для тестирования программ, доступ к которому осуществляется через отдельный web-ресурс. Система обладает функционалом идентификации программных решений в соответствии с ID пользователя без авторизации. Отсутствует возможность какого-либо администрирования или управления средой за исключением самих разработчиков. Набор задач также четко задан заранее и недоступен для редактирования лицам, не являющимся разработчиками проекта. Для организации собственного мероприятия или турнира, а также размещения новых задач в данной среде необходимо установить связь с поддержкой проекта.

Большим преимуществом данного САП является большой архив задач по программированию, включающий не только описание задач, но и наборы эталонных пар входных и выходных данных (которое скрыты от пользователей), т.е. банк задач, на которых можно провести тестирование программ. Не случайно сами разработчики проекта позиционируют свою систему как «крупнейший в России архив задач по программированию с автоматической проверяющей системой» [3,4].

Также среди положительных сторон проекта можно отметить проработанную справочную систему пользователя.

Следующий продукт - PC (ProgrammingContestControl) - САП, разработанный университетом штата Калифорния. У данного проекта нет общедоступного сервера для тестирования программ, вся деятельность с данным проектом предполагает использование отдельного выделенного организацией сервера. PC представляет из себя программный комплекс по организации САП и доступа к ней, причем и приложения сервера (администрирования), и клиента используют технологию Java, таким образом, формируется мультиплатформенность системы, однако для успешной работы с данным проектом необходимо позаботиться о наличии установленной достаточной версии Java на машине клиента - пользователей системы.

Для установки и использования САП необходима предварительная установка java.

Установка приложений САП не представлена с помощью мастера и требует как ручные настройки системы в сфере частных опций PC (выбор директории установки, настройка типа запуска - с графической оболочкой или без нее - и т.п.), так и общие настройки системы: безопасность сетевого доступа, контроль приложений, контроль доступа к данным и т.д.

Графический интерфейс PC2 представлен в двух версиях: полном -для администратора и доступен на машине, выполняющей роль сервера САП, и простом - интерфейс пользователя. Кроме того, для работы сервера предусмотрен режим запуска без графического интерфейса, через консоль управления.

В качестве положительного момента можно выделить встроенную технологию виртуальных машин уже в Java, настройка и администрирование запуска приложений в виртуальной машине САП можно ограничиться лишь настройками по использованию языков программирования.

Для добавления доступных языков программирования в PC2 необходимо внести настройки вручную. В данной САП возможно использование любого компилятора, поддерживающего обращение к нему через консоль. Иначе обстоит с интерпретаторами языков программирования, официально PC2 поддерживает строго определенный список интерпретаторов языков программирования. На момент написания статьи PC поддерживало следующие языки интерпретации PERL, PHP, Ruby, Python, и shell(ksh, csh, bash, etc).

Следующий продукт - Ideone.com - web-ресурс предоставляющий возможность синтаксической проверки программных кодов и запуска программ на их основе в виртуальной среде на общедоступном сервере

Ideone.com изначально позиционировался как система для проверки программных кодов - разработчики в первую очередь стремились расширить перечень поддерживаемых языков программирования, на момент написания статьи эта САП поддерживала более б0 различных компиляторов и интерпретаторов языков программирования, перечислим наиболее распространенные и востребованные: Assembler (gcc-4.8.1), Bash (bash 4.0.35), C (gcc-4.8.1), C# (mono-2.8), Fortran (gfortran-4.8), Go (1.0.3), Haskell (ghc-7.6.3), Java (sun-jdk-1.7.0_25), JavaScript (rhino), Pascal (fpc), Perl (perl 5.16.2), PHP (php 5.4.4), Prolog (gnu), Python 3 (python-3.2.3), Ruby (ruby-1.9.3), SQL (sqlite3-3.7.3). Администрация проекта готова расширять перечень поддерживаемых языков программирования по просьбам пользователей.

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

Использование ресурсов Ideone.com бесплатно и требует лишь идентификации пользователя. Документация проекта невелика, но достаточна.

Таким образом, ресурс Ideone.com нельзя отнести к полноценным системам автоматизированной проверки студенческих работ по программированию. Однако в качестве online-среды программирования данная система себя вполне оправдывает.

Однако данный ресурс представляет интерес в связке с системой электронного обучения moodle. Дело в то, что для moodle существует дополнение onlinejedge, позволяющий, дополнить СДО функционалом САП по программированию.

Onlinejudge - это плагин для системы moodle, дополняющий стандартный набор доступных видов заданий заданиями по программированию с ответом в виде программного кода. Onlinejudge обладает полным функционалом при работе на платформе Linux и ограниченном для Win-платформ - отсутствует возможность локального тестирования приложений. В качестве внешнего общедоступного сервера используется ресурс Ideone.com, в случае его использования, от локального сервера к внешнему будет генерироваться текстовое сообщение содержащие текст программы и исходные данные, а обратно приниматься будет результат программы. Сверка эталонного ответа и полученного результата будет, происходит уже на локальном сервере.

В случае, если используются ресурсы лишь локального сервера, для создания и тестирования программ необходимо создать «песочницы» и настроить их использование. Значительным недостатком данной системы является неинтуитивный процесс расширения доступных языков программирования. Значительным преимуществом данной связки Onlinejudge + Ideone.com является простота в использовании конечным пользователем, простота интеграции в moodle.

DOMjudge - проект САП, разрабатываемый и поддерживаемый еще с 2004 года Исследовательской Ассоциацией A-Eskwadraat Утрехтского университета (Нидерланды).

Проект примечателен тем, что он не только обладает web-интерфейсом и возможностью использования ресурсов локального сервера для САП, но и предоставляет возможность создания некого отдельного, внешнего сервера, не имеющего какого-либо прямого интерфейса с конечными пользователями, но производящим тестирования программ. Т.о., между пользователем и средой выполнения приложений появляется еще одно звено, обеспечивающее дополнительную безопасность и работоспособность системы.

DOMjudge разрабатывался под Unix-системы и способен функционировать на любой системе поддерживающей POSIX, но в первую очердьOС Debian. Поставляемый дистрибутив системы включает в себя скрипты как по установки самой САП, так и настройки всех необходимых составляющих среды сервера. Управление САП DOMjudge возможно как через редактирование конфигурационных файлов и командную строку, так и через уже функционирующий web-интерфейс.

Положительным аспектом данной системы является возможность добавления компиляторов/интерпретаторов языков программирования как автоматически, так и в ручную. По умолчанию система поддерживает C, C++, Java (GNU), Java (Oracle), Haskell и Pascal.

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

На основании анализа подходов к разработке САП был разработан программный продукт - система автоматизированного тестирования (САТ) решений задач по программированию, включающая в себя два набора интерфейсов с пользователями: клиентский и административный.

Клиентский интерфейс обеспечивает ввод следующих входных данных:

программный код - исходный текст компьютерной программы, консольного приложения являющимися решением представленной задачи;

описание языка программирования - язык программирования, включая версию и описание компилятора, включая его настройки, и выходных данных:

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

результаты тестирования программы - данный параметр отражает успешность прохождения каждого отдельного теста и/или всего комплекса тестов;

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

комментарии - сообщения системы генерируемые системой или предписанные администратором не относящиеся к предыдущим категориям.

Административный интерфейс обеспечивает ввод следующих входных данных:

список языков программирования - описания доступных языков программирования, их компиляторов, включая параметры запуска и исполнения;

условия тестирования - список технических ограничений тестируемой программы по использованию ресурсов системы;

условия оценивания - определение правил оценивания тестируемой программы по результатам проведенных тестов;

программа генерации тестов - программа или исходный код программы, генерирующий множество пар выходных-выходных данных для тестирования;

множество тестов - множество пар входных-выходных данных для тестируемой программы, представленных в виде текста или файлов, и выходных данных:

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

результаты тестирования; оценка программы.

Общий алгоритм процесса тестирования консольных приложений представлен на рис. 1, 2.

Начало

Рис. 1. Общий алгоритм тестирования приложений в САТ

Рис. 2. Тестирование приложения в «песочнице»

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

выходные эталонные данные соответствующие входным данным, могут быть представлены текстом или файлом;

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

Процесс формирования тестовых данных в разрабатываемой САТ возможен двумя различными способами:

с помощью программы динамического генерирования тестовых данных, в таком случае за тестовые данные отвечает заранее подготовленная администратором программа, создающая для каждого тестирования новые наборы тестовых данных по некоторому описанному в ней алгоритму, который соответствует условиям конкретной задачи;

с помощью предварительно подготовленных множеств тестовых данных и условий их использования.

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

массив и перемешиваются случайным образом. Процесс формирования тестовых данных из подготовленных множеств данных и условий их использования представлен на рис. 3.

т

Случайная выборка г^ различных записей

т / 1

т

Случайная выборка п2 различных записей

— —

Случайная выборка пт различных записей

Объединение записей из т массивов в один массивов в случайном порядке

Множество тестов

Рис. 3. Процесс формирования тестовых данных из подготовленных множеств данных и условий их использования

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

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

Абсолютная оценка

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

Относительная оценка

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

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

Список литературы

1. Gerhart S.L., Goodenough J.B. Toward a Theory of Test Data Selection // IEEE Transactions on Software Engineering. 1975 №6. С. 26-37.

2. Майерс Г. Искусство тестирования программ под ред. Б.А. Пози-на. М.: Финансы и статистика, 1982. 272 с.

3. Корнеев Г.А. Автоматизированная система тестирования программ // Материалы VIII Международной конференции "Современные технологии обучения <<СТО-2002>>. Т. 2. СПб.: СПбГЭТУ, 2002. С. 327329.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

4. Лисков Б., Гатэг Дж. Использование абстракций и спецификаций при разработке программ М.: Мир, 1989. 424 с.

Привалов Александр Николаевич, д-р техн. наук, проф., privalov.61@,mail.ru, Россия, Тула, Тульский государственный педагогический университет им. Л.Н. Толстого,

Гладких Илья Юрьевич, асп., gladkihiu@mail.ru, Россия, Тула, Тульский государственный педагогический университет им. Л.Н. Толстого

PRINCIPLES OF CONSTRUCTION AND IMPLEMENTATION OF A SYSTEM OF

AUTOMATED TESTING SOLUTION TO THE PROBLEM PROGRAMMING

A.N. Privalov, I.J. Gladkih

The article describes the common system of automatic inspection solutions for programming problems. The analysis of their strengths and weaknesses are discussed aspects influencing the choice of one system or another. It has been proposed and developed principles of a software product based on the analysis of approaches to the development of SAP-computer-aidedtesting solutions for programming problems.

Key words: information system, automatic checkout system, electronic educational resources.

Privalov Aleksandr Nicolaevich, doctor of technical sciences, professor, priva-lov. 61@,mail.ru, Russia, Tula, Tula State Pedagogical University named after L.N. Tolstoy,

Gladkih Ilya Yurievich, postgraduate, gladkihiu@,mail. ru, Russia, Tula, Tula State Pedagogical University named after L.N. Tolstoy

УДК 519.252

АНАЛИЗ ФАКТОРОВ, ВЛИЯЮЩИХ НА ТОЧНОСТЬ РЕЗУЛЬТАТОВ МАТЕРИНСКОГО БИОХИМИЧЕСКОГО

СКРИНИНГА

Н.С. Просоедова, А.Г. Трошина

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

Ключевые слова: материнский скрининг, пренатальный скрининг, биохимический скрининг, расчетная модель, статистический анализ.

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

Ультразвуковой скрининг - ультразвуковое исследование (УЗИ) плода в течении беременности.

Биохимический скрининг - это определения в крови некоторых специфических веществ («маркеров»), которые изменяются при определенных патологиях [1].

Биохимический скрининг по анализу крови беременных на сывороточные маркеры служит средством формирования группы риска по хромосомной патологии плода. Фетоплацентарный комплекс, состоящий из плода и плодных оболочек (хорион, преобразующийся в плаценту, водная оболочка - амнион) вырабатывает специфические белки, проникающие в кровь беременной. Изменения состояния фетоплацентарного комплекса, происходящие по различным, том числе и генетическим, причинам, отражается на уровне специфических белков (сывороточных маркеров). В настоящее время биохимический скрининг проводится в два этапа - скрининг I триместра (10-14 недель) и скрининг II триместра (16-20 недель) [2].

227

i Надоели баннеры? Вы всегда можете отключить рекламу.