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

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

CC BY
479
119
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КОМПЬЮТЕРНАЯ ТЕСТИРУЮЩАЯ СИСТЕМА / ОПТИМИЗАЦИЯ ПРОЦЕССА ОБУЧЕНИЯ / МЕТОДЫ ТЕСТИРОВАНИЯ ПРОГРАММ / ДИНАМИЧЕСКОЕ ТЕСТИРОВАНИЕ / ТЕХНОЛОГИЯ ТЕСТИРОВАНИЯ / COMPUTER TESTING SYSTEM / OPTIMIZING THE LEARNING PROCESS / METHODS OF TESTING PROGRAMS / DYNAMIC TESTING / TESTING TECHNOLOGY

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Михеев И. В., Кондратов Д. В., Виштак О. В.

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Михеев И. В., Кондратов Д. В., Виштак О. В.

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

SOFTWARE IMPLEMENTATION UNIT COMPLEX DYNAMIC TESTING TESTED APPRENTICESHIP PROGRAMS

The construction of complex computer testing to verify assignments in the disciplines of a programming course. We consider methods for dynamic testing. Testing stage. A scheme for the module testing operation example data stream. The choice of the test method.

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

УДК 004.94:004.85

И.В. Михеев, Д.В. Кондратов, О.В. Виштак

ПРОГРАММНАЯ РЕАЛИЗАЦИЯ МОДУЛЯ ДИНАМИЧЕСКОГО ТЕСТИРОВАНИЯ

УЧЕБНЫХ ПРОГРАММ

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

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

I.V. Mikheyev, D.V. Kondratov, O.V. Vishtak

SOFTWARE IMPLEMENTATION UNIT COMPLEX DYNAMIC TESTING TESTED APPRENTICESHIP PROGRAMS

The construction of complex computer testing to verify assignments in the disciplines of a programming course. We consider methods for dynamic testing. Testing stage. A scheme for the module testing operation example data stream. The choice of the test method.

Computer testing system, optimizing the learning process, methods of testing programs, dynamic testing, testing technology

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

Изучение IT-технологий имеет явно выраженную специфику: наличие не одного, а нескольких отличающихся друг от друга объектов изучения: информация и информационные процессы, устройство компьютеров, способы построения алгоритмов, информационные модели, информационные технологии и информационные системы; компьютер при изучении информационных дисциплин является объектом изучения и в то же время средством обучения и инструментом решения задач; усвоение существенного объема знаний происходит за счет активного использования компьютера, что существенно изменяет функции преподавателя и студента и смещает акценты в учебной деятельности с совместной (аудиторной) на самостоятельную; темпы развития всех направлений информатики и информационных технологий очень велики. Стремительное развитие программного, аппаратного обеспечения приводит к тому, что программные продукты быстро устаревают. В связи с этим в обучении программированию требуется сбалансированное сочетание изучения общих принципов назначения и построения программных средств с конкретными особенностями данного продукта [1, с. 44].

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

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

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

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

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

Для корректного функционирования модуля были выделены и должны соблюдаться следующие ограничения: [2].

— весь исходный код программы должен храниться в одном файла с расширением .срр;

— все части программы должны быть функционально законченными;

— программа должна иметь только одну точку входа, которой является функция шат();

— алгоритм программы не должен каким-либо образом модифицировать непосредственно входные параметры программы;

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

— выходные данные могут быть сформированы только в формате строки. При необходимости вывода нескольких параметром может быть использован спецсимвол;

— количество входных параметров может быть не ограниченным.

Предваряя практическую реализацию модулей автоматизированной системы, нами был проведён анализ методов и средств тестирования программ. На основании этого анализа в разрабатываемом программном обеспечении использовали один из самых надёжных методов контроля качества и правильности функционирования разработанных программ - тестирование [8]. Использование этого метода предопределило особенность разрабатываемой тестирующей системы: при определении правильности функционирования разработанных учебных программ применяется совокупность методов, а именно статический и динамический, причём статический метод используется по заранее определённому алгоритму, а динамический метод предполагает некоторый случайный характер, потому что используется набор входных данных на основе псевдослучайной генерации. Также применение динамического метода обусловило использование эталонной программы. Тем самым выполняется не только процесс тестирования, но и формируются рекомендации по оптимизации тестируемой учебной программы, что позволяет реализовывать оценочные процедуры знаний и умений обучающихся по разработке программы.

Рассмотрим функционирование модуля динамического тестирования. На рис. 1 представлен алгоритм функционирования данного модуля.

Работу модуля динамического тестирования условно можно разбить на три основных этапа:

— этап последовательного запуска эталонной и студенческой программ;

— этап передачи выполняемым программам исходных входных параметров;

— этап сравнительного анализа выходных данных программ и выдача результата.

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

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

— сгенерировать ноль;

— сгенерировать положительное целое число;

— сгенерировать отрицательное целое число;

— сгенерировать положительное вещественное число;

— сгенерировать отрицательное вещественное число;

— сгенерировать целое число в диапазоне от минус до плюс бесконечности;

— сгенерировать вещественное число в диапазоне от минус бесконечности до плюс бесконечности.

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

Рис. 1. Алгоритм функционирования модуля динамического тестирования

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

— «#ШЕ00» - бесконечность;

— «-#ШЕ00» - минус бесконечность;

— «ШБ00» - неопределённость;

— «ШБ00» - отрицательная неопределённость.

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

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

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

На рис. 2 представлена методология графического структурного анализа, описывающая внешние по отношению к системе сущности и потоки данных.

Диаграмма потоков данных (data flow diagram, DFD) является одним из самых мощных инструментов структурного анализ и проектирования. Представленная диаграмма потоков данных позволяет наглядно отобразить протекающие в системе процессы.

На диаграмме имеется два компонента отображающие накопители данных:

— D1 - хранилище исходных кодов и исполняемых файлов эталонных программ;

— D2 - внешнее удалённое хранилище данных, предназначенное, в частности, для сохранения результатов и рекомендаций по протестированным программам.

На диаграмме имеется одна внешняя сущность - «Студент», которая передает в модуль исходный код реализованной им программы.

Также на диаграмме представлены три процесса:

— «Генерация входных параметров»;

— «Запуск эталонной и студенческой программ»;

— «Сравнение выходных данных».

Стрелками на диаграмме отображены направления движения потоков данных.

Рис. 2. Диаграмма потоков данных DFD

Разработанный модуль динамического тестирования учебных программ является отличительной особенностью предлагаемой автоматизированной системы в сравнении с аналогичными системами [5-7 и др.], поскольку имеет расширенную функциональность за счёт подсчёта статистики использования аппаратных ресурсов целевой платформы в процессе выполнения учебных программ, таких как: процессорное время и оперативная память, ресурсы, которые необходимы для запуска и корректного выполнения программ. В настоящее время это очень актуально: такого рода ограничения часто предусмотрены при решении олимпиадных заданий; динамичное развитие мобильных платформ требует оптимального использования аппаратных ресурсов; дополнительные ограничения способствуют формированию у обучающихся разработке не тривиальных алгоритмов при решении задач.

ЛИТЕРАТУРА

1. Виштак О.В. Дидактические основы построения информационных комплексов для самостоятельной учебной деятельности студентов, изучающих информатику: дис.... д-ра пед. наук / О.В. Виштак. М., 2005.

2. Алексеев Ю.Е. Автоматизация тестирования студенческих программ / Ю.Е. Алексеев, А.В. Куров // Инженерный журнал: наука и инновации. 2013. вып. 6. URL: http ://engj ournal .ru/catalog/it/hidden/768 .html.

3. Михеев И.В. Критерии оценки качества компьютерных обучающих систем / И.В. Михеев // Инновационные информационные технологии 2014: сб. тр. III Междунар. науч.-практ. конф. Прага: HSE, 2014. C. 373-376.

4. Михеев И.В. Применение компьютерных обучающих систем в учебном процессе высшей школы / И.В. Михеев // SWorld: сб. тр. по материалам науч.-практ. интернет-конф. «Современные направления теоретических и прикладных исследований '2013». Т. 4. Одесса: КУПРИЕНКО С.В., 2014. С. 65-68.

5. Веретенников М.В. Автоматизация проверки знаний и навыков студентов в области прикладной математики и информатики: дис. ... канд. техн. наук / М.В. Веретенников. Томск, 2004.

6. Угаров В.В. Компьютерные модели и программные комплексы в проектно-ориентированном

обучении: канд. техн. наук / В.В. Угаров. Ульяновск, 2005.

7. Вергазов Р.И. Система компьютерного тестирования знаний: дис. ... канд. техн. наук / Р.И. Вер-газов .Пенза, 2006.

8. Синицын С. Верификация программного обеспечения / С. Синицын, Н. Налютин. СПб.: Бином. Лаборатория знаний, 2008. 368 с.

9. Виштак О.В. Комплексный подход создания электронных образовательных ресурсов / О.В. Виштак, Д.В. Кондратов // Universum: Психология и образование. 2014. № 2 (3). C. 7.

10. Виштак О.В. Направления программной реализации электронных образовательных ресурсов / О.В. Виштак // Sworld: сб. науч. тр. 2013. Т. 5. № 2. С. 36-39.

Михеев Иван Васильевич -

аспирант Поволжского института управления имени П.А. Столыпина

Кондратов Дмитрий Вячеславович -

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

Виштак Ольга Васильевна -

доктор педагогических наук, доцент, заведующая кафедрой «Информационные системы и технологии» Балаковского института техники технологии и управления (филиал) Саратовского государственного технического университета имени Гагарина Ю.А.

Ivan V. Mikheyev -

Postgraduate,

Institute of Management Volga P.A. Stolypin

Dmitri V. Kondratov -

Dr Sc,

Department of Applied Informatics and Information Technology in Management Stolypin Volga Region Institute

Olga V. Vishtak -

Dr. Sc.,

Department of Information Systems and Technologies

Balakovo Institute of Engineering Technology

and Management (branch)

of Yuri Gagarin State Technical University of Saratov

Статья поступила в редакцию 25.12.14, принята к опубликованию 11.05.15

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