Аннотация 2
ВВЕДЕНИЕ 6
1 Обзор по теме исследования 7
1.1 Платформа Яндекс Практикум 7
1.2 Плагин Code runner 10
1.3 Методы и подходы к тестированию 13
1.4 Формализация заданий лабораторных работ 14
2 Реализация системы для тестирования 21
2.1 Генерация тестов 21
2.2 Подключение тестируемой программы студента к системе 24
2.3 Блок-схема программы тестирования 26
3 Эксперименты с полученной системы 28
ЗАКЛЮЧЕНИЕ 32
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 33
ПРИЛОЖЕНИЕ A 34
ПРИЛОЖЕНИЕ B 34
ПРИЛОЖЕНИЕ C 37
В наше время программирование становится все более популярной областью интереса в научном сообществе. Навыки программирования можно приобрести как в учебных заведениях, так и самостоятельно через онлайн-курсы или литературу. Однако для освоения навыков правильного и эффективного написания программного кода необходима практика. Государственные учебные заведения предоставляют студентам лабораторные работы, предназначенные для закрепления теоретических знаний на практике. Обычно эти работы проверяются преподавателями, обладающими опытом выявления ошибок в программах студентов.
К сожалению, преподаватель не всегда в состоянии обнаружить все ошибки в коде, и проверка работ требует значительного времени. В связи с этим возникает необходимость в использовании системы тестирования для автоматизации процесса проверки. Тестирование представляет собой процесс выполнения программы с целью выявления ошибок. Обозначим, что ошибка - это несоответствие спецификации.
Даже опытный программист или отличный студент сталкиваются с трудностью генерации большого числа тестов для каждой программы. Целью данной научной работы является разработка инструмента для автоматизации проверки студенческих работ и генерации тестов.
В рамках решения вышеописанной проблемы будет создан инструмент, который позволит студентам написать свой код, а затем автоматически получить соответствующую оценку от системы. Преподаватель сможет видеть оценки студентов и, при необходимости, добавлять свои тесты для более глубокого тестирования.
Актуальность данной работы обусловлена недостатком систем для проверки кода обучающихся из-за их ограниченности. В данной работе будут рассмотрены проблемы существующих систем и проанализирован функционал плагина Code Runner для системы управления образовательными электронными курсами Moodle, так как эта структура используется нашим университетом, включая мой факультет.
В ходе выполнения данной выпускной квалификационной работы была успешно разработана и внедрена система автоматического тестирования кода для студентов, написанного на языке Си. Основная цель исследования — создание эффективного инструмента для автоматизации проверки студенческих программных реализаций — была достигнута. Путем поиска недостатков плагина Code runner для образовательной платформы Moodle и системы проверки кода от Яндекс Практикум, мы определили, что необходимо создать собственный инструмент для тестирования функций студентов на языке Си. Провели формализацию самих заданий в лабораторных работах у студентов. Рассмотрели процесс создания тестов с помощью методологии черного ящика и использования метод эквивалентного разбиения. Определили структуру содержания шаблона для функций из лабораторных работ. Также выбрали в качестве перекомпиляции студенческих представлений динамическую библиотеку. Реализовали Dll в созданной системе для проверки функций студентов. Привели блок-схему готовой программы на данный момент и провели эксперименты над двумя функциями из лабораторных работ. На данный момент в системе присутствует 8 функций для их тестирования.