Автоматизация тестирования студенческих программ - page 2

Ю.Е. Алексеев
,
А.В. Куров
2
учебных заданиях (что должно найти отражение и в программах) яв-
но или по умолчанию при изучении определенной темы выдвигаются
требования к использованию вполне определенных средств програм-
мирования и методов решения задач.
Суть предлагаемой технологии тестирования студенческих про-
грамм состоит в том, чтобы организовать работу программы в двух
режимах: в обычном, без тестирования, и с тестированием (в этой
статье будет рассмотрено тестирование только частей программы,
обрабатывающих данные, но не ввод/вывод). Для достижения этой
цели на структуру программы накладываются следующие основные
ограничения:
– части программы должны быть функционально законченными;
– иметь только одну точку входа и одну точку выхода;
– вычислительные части программы не должны каким-либо обра-
зом менять входные данные;
– должны иметь вычисленные значения в точке выхода;
– не должны каким-либо образом, кроме как путем преобразова-
ния, менять переменные, являющиеся и входными и выходными.
Перечисленные ограничения отвечают принципам структурного
программирования [3], и их применение облегчает, наряду с тестиро-
ванием, отладку программ с использованием других методов.
Кроме того, имена всех переменных, используемых на входе и
выходе в тестируемых частях программы, должны по написанию с
учетом регистра, по типу и назначению совпадать с указанными в
задании. Более того, допускается их описание, в том числе с началь-
ными значениями, в шаблонах (о них речь пойдет ниже), подготавли-
ваемом для разработки программ по учебным заданиям.
При создании нового проекта в консольном режиме VS C++ ос-
новная программа — файл с именем проекта и расширением .cpp из-
начально содержит стандартный шаблон, а разработка программы
состоит в добавлении в стандартный шаблон операторов, объявле-
ний, директив и т. д.
В предлагаемой технологии для автоматизации тестирования
требуется заменить стандартный шаблон новым, специально разра-
ботанным для каждого задания. В новом шаблоне в минимальной ре-
ализации должны присутствовать:
– директива #define,
– одна или несколько директив #include,
– директивы условной компиляции,
– комментарии, сопровождающие эти директивы или имеющие
иное назначение.
Для нового шаблона, как и для стандартного, запрещается редак-
тировать, удалять и изменять положение директив и комментариев и
других частей шаблона. Исключением является директива #define,
1 3,4,5,6
Powered by FlippingBook