5.18.3. Метод заглушек

Необходимо проверять правильность программ по мере их создания, а не по окончании этапа кодирования. Для этого применяется метод заглушек — подыгрывающих программ.

После того как модуль разработан, присваивают имена функциям, которые он вызывает, определяют некоторые спецификации для этих функций. Эти спецификации включают в тестовые процедуры, что позволяет тестировать модули верхнего уровня.

Простейшим типом заглушки является функция, которая печатает сообщение о том, что управление передано в заданную точку входа.

Иногда этого не достаточно, если вызывающий модуль ожидает некоторых действий со стороны заглушки. Тогда внутри заглушки присваивают определенные значения некоторым переменным.

В свою очередь, выдача одних и тех же значений может оказаться недостаточной проверкой программы, поэтому заглушка может использовать набор определенных значений для присваивания значения переменной из этого набора в зависимости от номера теста.

Например, внутри заглушки объявляется массив с набором значений и переменная со значением номера теста, которая увеличивается на единицу от вызова к вызову; возвращаемой переменной присваивается значение из массива с индексом, равным номеру теста.

Внутри заглушки может быть, например, проверка на правильность входного значения. Если определенное условие не выполняется, то печатается сообщение об ошибке.

После того как программа написана и протестирована, заглушка может быть или заменена, или доработана до программы, выполняющей требуемую функцию.

После разработки заглушек для правильного выбора тестовых данных необходимо руководствоваться следующим:

- сначала использовать простые тесты и постепенно переходить к более сложным;

- обращать внимание на граничные случаи, чтобы убедиться, что система работоспособна во всем диапазоне, для которого она проектировалась;

- вводить неправильные данные, исследуя затем полученные результаты;

Например, если величина переменной должна находиться в диапазоне от А до В, то следует проверить значения: А-1, А, А+1, В-1, В, В+1.

- использовать специальные значения, например константы 1 и 0, нулевая строка для символьных переменных;

- составлять тесты так, чтобы каждый оператор был выполнен;

- знать результаты работы теста до начала его выполнения. Нет пользы от случайных тестов, проверки программы с их помощью и многочасовых расчетов с карандашом и бумагой для выяснения правильности работы программы;

- всегда тестировать уровень, тесно связанный с тем уровнем, про который известно, что программа работает правильно.