Читайте также: |
|
Задача для автоматизированной системы тестирования оформляется в виде отдельного каталога, содержащего как информацию для отображения условия задачи через Web-интерфейс, так и средства для тестирования правильности решения, а именно: наборы тестов и правильных ответов, генератор тестов, эталонное решение и программу проверки.
Генератор тестов, эталонное решение и программа проверки включаются в задачу в виде исходных текстов на одном из языков программирования, поддерживаемых системой тестирования. В настоящее время это ANSI C, C++ и Go. Язык, на котором написана та или иная программа, определяется расширением файла: «c» для ANSI C, «cpp» для C++ и «go» для языка Go.
Условие задачи находится в файле «text.html». Оно представлено в формате HTML и должно содержать три раздела: текст задачи, формат входных данных и формат результата выполнения программы. При этом название задачи в условии не указывается, а находится в отдельном файле «caption.txt».
Каждая задача должна сопровождаться хотя бы одним примером входных и выходных данных. Примеры располагаются в подкаталоге «samples» в виде файлов «01», «01.a», «02», «02.a» и т.д. Каждая пара файлов «xx», «xx. a» содержит входные данные и правильный результат работы решения задачи, соответственно.
Задача должна содержать либо набор тестов, либо генератор тестов, либо и то, и другое одновременно.
Наборы тестов и правильных ответов располагаются в подкаталоге «tests» в виде файлов «01», «01.a», «02», «02.a» и т.д. При этом правильные ответы могут отсутствовать, если задача включает эталонное решение.
Генератор тестов представляет собой исходный код программы, порождающей набор тестов и правильных ответов в виде файлов «01», «01.a», «02», «02.a» и т.д. Генератор располагается в файле с именем «generator. xxx», где расширение «xxx» указывает язык программирования, на котором он написан. Генератор может не порождать правильные ответы, если задача включает эталонное решение.
Исходный код эталонного решения располагается в файле с именем «etalon. xxx», где расширение «xxx» указывает язык программирования, на котором оно написано. Эталонное решение необязательно, если набор тестов в подкаталоге «tests» и набор тестов, порождаемый генератором, содержат правильные ответы.
Сервер тестирования имеет пять встроенных стратегий проверки правильности результата выполнения решения: стратегия побитового сравнения, стратегия сравнения текста, стратегия сравнения лексем, стратегия сравнения целых чисел и стратегия сравнения чисел с плавающей точкой.
Стратегия побитового сравнения включается, если задача содержит пустой файл с именем «BINARY». В этом случае результат выполнения решения должен побитно совпадать с правильным ответом.
Стратегия сравнения текста включается, если задача содержит пустой файл с именем «TEXT». В этом случае результат выполнения решения должен совпадать с правильным ответом с точностью до маркеров перевода строки.
Стратегия сравнения лексем включается, если задача содержит пустой файл с именем «SCAN». Сравнение осуществляется в два этапа. Сначала файл результата выполнения решения и файл с правильным ответом разбиваются на фрагменты, разделённые произвольным количеством пробельных символов (пробелы, символы табуляции и перевода строки). Затем, если количество фрагментов в обоих файлах совпадает, осуществляется побитовое сравнение соответствующих фрагментов из обоих файлов.
Стратегия сравнения целых чисел является развитием стратегии сравнения лексем. Фрагменты, на которые разбиваются результат выполнения решения и правильный ответ, дополнительно переводятся в целые числа произвольной разрядности. В случае успешного перевода происходит сравнение полученных целых чисел. Стратегия включается, если задача содержит файл с именем «INTEGER», в котором в текстовом виде записано основание системы счисления от 2 до 36.
Стратегия сравнения чисел с плавающей точкой аналогична стратегии сравнения целых чисел. Она включается, если задача содержит файл с именем «FLOAT», в котором в текстовом виде записано количество значащих десятичных разрядов. При сравнении используются 64-разрядные числа с плавающей точкой.
Если встроенные стратегии не подходят для проверки правильности результата выполнения решения, то задача должна содержать отдельную программу проверки. Исходный код программы проверки располагается в файле с именем «checker. xxx», где расширение «xxx» указывает язык программирования, на котором она написана. Программа проверки должна считывать результат выполнения решения и правильный ответ из файлов «output» и «answer», выполнять сравнение и возвращать 0 в случае, если результат удовлетворяет правильному ответу, и 1 в противном случае.
Дата добавления: 2015-08-21; просмотров: 68 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Архитектура системы | | | Взаимодействие Web-сервера и сервера тестирования |