Мини-проект “Разработка системы тестирования” Auto Testing Project

advertisement
Мини-проект “Разработка системы тестирования”
Auto Testing Project
Участники:
Бышева Татьяна
Ильичев Андрей
Комин Александр
Лапшин Андрей
Новиков Егор
Синицын Артем
Руководители:
Коваленко Александр
Сиднев Алексей
Актуальность проблемы
Проверка корректности ПО это неотъемлемая часть
его разработки.
Минусы проверки корректности работы ПО вручную:
1) скучно…
2) долго…
3) ограниченность проверки…
Актуальность проблемы
Выход есть!
СИСТЕМА АВТОМАТИЧЕСКОГО ТЕСТИРОВАНИЯ
Актуальность проблемы
Область применения
от
проверки домашних работ по программированию
до
проверки олимпиадных работ по программированию различных масштабов
Существующие решения
• Система on-line тестирования ejudge
• Система для самотестирования Olympiads.ru
Система on-line тестирования
ejudge
Назначение
•
•
Предназначена для проведения студенческих
командных олимпиад по программированию
Используется для поддержки некоторых учебных
курсов на ВМиК МГУ
Особенность
•
Система работает на платформе Linux
Система on-line тестирования
ejudge
Достоинства
• Широкая функциональность
• Удобство в использовании
Недостатки
• Нужно приложить видимые усилия для внедрения
системы в Linux
• Мало документации по работе с системой,
её настройкой
Система для самотестирования
Olympiads.ru
Назначение
• Проверка собственных решений задач, в основном
во время учебного процесса.
Особенности
• Система работает на платформе Windows
• Позволяет работать только локально
Система для самотестирования
Olympiads.ru
Достоинства
• Простота установки и использования
• Минимальные системные требования
Недостатки
• В системе практически не уделяется внимание
вопросам безопасности и устойчивости
(предназначена для проверки собственных решений
задач)
• Низкая функциональность
Постановка задачи
Необходимо разработать систему для автоматической проверки
корректности и оценки эффективности программ. Для проверки и
оценки эффективности предоставляются бинарные исполняемые
модули.
1.exe
БД
Рабочая станция 1
Описание задач
Логи
Веб-сервер
Рабочая станция N
Пользователи системы
Школьники/студенты, обучающиеся программированию.
M.exe
Постановка задачи
Требования к системе(1/2)
Система должна иметь веб-интерфейс и позволять:
• выполнять авторизацию пользователей
• обеспечивать контроль времени выполнения задания
• предоставлять пользователю описание и постановку задачи
• осуществлять выбор исполняемого бинарного файла
(с последующим запуском)
• выдавать результат проверки каждому пользователю
(время выполнения и количество пройденных тестов)
• выдавать итоговый результат проверки для всех
пользователей
Информация о задачах и логи выполнения задач должны храниться в БД.
Постановка задачи
Требования к системе(2/2)
Каждая проверяемая программа должна принимать входные
данные через аргументы командной строки. Выходные данные
программа должна выводить на консоль.
Для каждой задачи должны быть подготовлены:
• описание задачи с примером входных и выходных данных
• один из вариантов проверки программ:
- тестовые наборы и правильные выходные данные программ
- тестовые наборы и программа,
выдающая правильные выходные данные по этим наборам
- программа для генерации тестовых наборов и программа,
выдающая правильные выходные данные по этим наборам
Общая модель решения
Клиент
Сервер
База-данных
Инструменты и языки
программирования
Среда разработки
Язык программирования
Библиотека для работы с базой
Система ведения логов
Веб-сервер
C#
System.Data.SQLite
Архитектура системы
Браузер
Silverlight апплет
IIS сервер
WCF сервис
Менеджер
пользователей
Менеджер
групп
Менеджер
задач и сессий
Менеджер доступа к БД
Кэш менеджер
Базы-данных
Пример использования системы
Вход в систему
Авторизация пользователя.
Для того, чтобы начать использование системы, необходимо ввести
логин и пароль.
Пример использования системы
Создание задачи
Добавление задачи.
Для добавления задачи необходимо ввести все данные в
соответствующие поля.
Пример использования системы
Создание задачи
Добавление тестов для задачи.
Для того, чтобы добавить тесты для созданной задачи, необходимо
выбрать способ получения данных для тестирования, а также ввести их
или выбрать файл, которых их сгенерирует/получит правильное решение.
Пример использования системы
Создание/редактирование сессии
Выбор действия.
Для создания новой сессии, необходимо нажать соответствующую
кнопку. (Для редактирования сессии необходимо кликнуть на ее название
в списке.)
Пример использования системы
Создание/редактирование сессии
Шаг 1.
Сначала требуется ввести название сессии и ее временные рамки.
Пример использования системы
Создание/редактирование сессии
Шаг 2.
Для того, чтобы назначить участников сессии и соотнести с ними задачи
для выполнения, необходимо:
• выбрать группу, в которую входят предполагаемые участники
• добавить участников из этой группы в сессию
• выбрать нужные задачи
• выбрать количество задач, которое будет назначено каждому из
участников
Пример использования системы
Создание/редактирование сессии
Шаг 3.
Для более точной настройки сессии по отношению к каждому
участнику, можно добавить дополнительные задачи и удалить ненужные.
Пример использования системы
Прохождение тестирования
Выбор сессии.
Для того, чтобы начать тестирование, необходимо выбрать, в рамках
какой из доступных сессий оно будет проходить.
Пример использования системы
Прохождение тестирования
Начало тестирования.
Для начала прохождения тестирования необходимо нажать
соответствующую кнопку. (На этой странице так же можно посмотреть
список задач, назначенных на выбранную сессию.)
Пример использования системы
Прохождение тестирования
Решение задачи.
По клику на название в списке можно перейти к выполнению
соответствующей задачи.
Пример использования системы
Прохождение тестирования
Завершение тестирования.
После проверки загруженных файлов-решений можно завершить
тестирование. (Если закончится время, отведенное сессии, то тестирование
завершится принудительно.)
Пример использования системы
Прохождение тестирования
Просмотр результатов.
При завершении тестирования можно посмотреть результаты текущей
сессии.
Апробирование системы
Система прошла тестирование на студентах группы 81-02
Результаты работы (1/3)
Разработана система, решающая
поставленные задачи
 Разработан веб-интерфейс
 Реализована авторизация пользователей
 Система обслуживает 3 вида пользователей:
o Администратор
o Учитель
o Студент
 Студенту предоставляется описание и постановка
задачи
 Реализована поддержка сессий
Результаты работы (2/3)
 Осуществляется выбор исполняемого файла с
последующей проверкой
 Обеспечен контроль времени выполнения
задания
 Каждому пользователю выдается результат
тестирования:
o Время выполнения
o Количество пройденных тестов
Результаты работы (3/3)
Практическое использование системы
 Испытание системы на студентах 1 курса
Профессиональные навыки





Опыт работы в команде
Опыт работы с MS Visual Studio 2010
Использование технологии MS Silverlight
Использование БД SQLite
Опыт работы с системой контроля версий (SVN)
Планы на будущее
Доработка системы
 Внедрение системы в использование в университете и
вне его
 Поддерживается возможность просмотра
результатов всех пользователей со стороны
преподавателя
Вопросы
Download