align="justify"> Завдання випускної роботи:
. Проаналізувати предметну область тестування знань.
. Розробити вимоги до розроблюваної системі і виділити завдання, які вирішуватиме система.
. Провести декомпозицію задач автоматизованої системи тестування знань.
. Розробити алгоритм рішення декомпозіровано завдань.
. Розробити автоматизовану систему тестування знань.
. Провести тестування системи.
У даній роботі необхідно розробити автоматизовану систему тестування знань учнів програмуванню.
Автоматизована підсистема тестування знань учнів програмуванню повинна вирішувати такі завдання:
- максимальна автоматизація формування списку тестових завдань з дисципліни;
- збереження списку тестових завдань з дисципліни в файл;
- генерація квитка і відправлення його студенту;
- безпосередньо сам процес тестування;
- аналіз результатів;
- збереження результатів у базі даних.
Програмна система підтримує наступні типи завдань:
- написати програму - студенту буде необхідно написати програму, яка відповідає вимоги завдання, описаним викладачем;
- проаналізувати висновок програми - студенту буде необхідно проаналізувати текст програми і ввести у відповідь те значення, яке, на його думку, виведе програма;
- обчислити генеруються вираження з операціями - тестируемому буде виведено на екран вираз з декількома операціями і йому буде необхідно обчислити значення цього виразу;
- визначити результат роботи генерованого вираження ініціалізації - тестируемому буде запропоновано вираз для ініціалізації переменной і йому буде необхідно визначити, що буде присвоєно цієї змінної.
Внаслідок цього було вирішено розбити програмну систему на 2 незалежні програмні одиниці: програму - сервер і програму - клієнт. Далі необхідно провести тестування системи і виправити знайдені помилки.
2. Деталізація завдання автоматизації
Завданням даної роботи є автоматизація тестування знань для підвищення якості тестування і скорочення його термінів і витрат. У зв'язку з цим є необхідним розробити програмну систему для тестування знань.
На даному етапі необхідно описати базові поняття, які будуть застосовуватися в роботі: тест, тема, квиток (тестовий квиток), питання.
Питання - це базове поняття для даної роботи - деяка структура, яка зберігає безпосередньо питання, відповідь і варіанти відповіді, якщо це закрита форма питання.
Тема - структура даних, яка зберігає деякий набір питань по одному напрямку деякої дисципліни.
Тест - структура даних, яка зберігає деякий набір тим по одній дисципліні, а також налаштування тестування.
Квиток - структура даних, яка зберігає деяку кількість (вказане в налаштуваннях тесту) питань з тем одного тесту.
2.1 Аналіз першого рівня деталізації
На першому рівні деталізації (рисунок 2.1) систему тестування буде логічно представити у вигляді деякого чорного ящика, який має вхідні дані, на який мають вплив викладач і тестований і на виході у неї буде певний результат. Опис вхідних даних, формат їх подання описаний нижче в таблиці 2.1.
Рисунок 2.1 - Перший рівень деталізації
Таблиця 2.1 - Опис вхідних даних
Призначення вхідного данногоФорматОграніченіяКем предоставляетсяФІО студентаСтрока100 сімволовТестіруемийГруппа студентаСтрока10 сімволовТестіруемийКолічество питань у тестовому білетецелое чісло1..100 ПреподавательВремя для тіста, мінутцелое число 1..100Преподаватель
Вхідними даними також буде деякий набір тестів, який надає викладач. У кожному тесті будуть питання чотирьох типів описаних вище. Далі представлені опису вхідних даних тестів і завдань, їх формат та обмеження.
Таблиця 2.2 - Опис даних тесту
Призначення вхідного данногоФорматОграніченіяНазваніе тестаСтрока100 сімволовТіп питання - обчислити вираз з оператораміКолічество вхідних параметровцелое чісло2..20Тіп питання - написати программуКолічество вхідних параметровцелое чісло0..10Колічество вихідних параметровцелое чісло0..10Колічество тестів написаної программицелое чісло1..10Тіп питання - описати висновок программиКолічество вхідних параметровцелое чісло1..10Тіп питання - визначити результат роботи инициализиру...