Составители:
Рубрика:
66
вращает управление или выдает сообщение об ошибке без передачи в
класс А определенных осмысленных результатов, класс А работает не-
верно не вследствие ошибок в самом классе, а из-за несоответствия ему
заглушки. Более того, результат может оказаться неудовлетворительным,
если ответ заглушки не меняется в зависимости от условий теста. Напри-
мер
, допустим, что нужно написать заглушку, замещающую программу
вычисления квадратного корня, программу поиска в таблице или про-
грамму чтения соответствующей записи. Если заглушка всегда возвраща-
ет один и тот же фиксированный результат вместо конкретного значения,
предполагаемого вызывающим методом класса именно в этом вызове, то
вызывающий метод сработает как ошибочный (например, зациклится)
или выдаст неверное выходное значение. Следовательно, создание за-
глушек – задача нетривиальная.
При обсуждении метода нисходящего тестирования часто упускают
еще одно положение, а именно форму представления тестов в программе.
В нашем примере вопрос состоит в том, как тесты должны быть переданы
классу А? Ответ на этот вопрос не является совершенно очевидным, по
-
скольку верхний класс в типичной программе сам не получает входных
данных и не выполняет операций ввода-вывода. В верхний класс (в нашем
случае, А) данные передаются через одну или несколько заглушек. Для ил-
люстрации допустим, что классы В, С и D выполняют следующие функции:
В – получает сводку о вспомогательном файле;
С –
определяет, соответствует ли недельное положение дел установлен-
ному уровню;
D – формирует итоговый отчет за неделю.
В таком случае тестом для класса А является сводка о вспомогатель-
ном файле, получаемая от заглушки В. Заглушка D содержит операторы,
выдающие ее входные данные на печатающее устройство или дисплей,
чтобы сделать возможным анализ результатов прохождения каждого
теста.
С этой программой связана еще одна проблема. Поскольку метод
класса А вызывает класс В, вероятно, один раз, нужно решить, каким об-
разом передать в А несколько тестов. Одно из решений состоит в том,
чтобы вместо В сделать несколько версий заглушки, каждая из которых
имеет один фиксированный набор тестовых данных. Тогда
для использо-
вания любого тестового набора нужно несколько раз исполнить про-
грамму, причем всякий раз с новой версией заглушки, замещающей B.
Другой вариант решения – записать наборы тестов в файл, заглушкой чи-
тать их и передавать в класс A. В общем случае создание заглушки может
быть более сложной задачей, чем в разобранном выше
примере. Кроме
того, часто из-за характеристик программы оказывается необходимым
сообщать тестируемому классу данные от нескольких заглушек, заме-
вращает управление или выдает сообщение об ошибке без передачи в класс А определенных осмысленных результатов, класс А работает не- верно не вследствие ошибок в самом классе, а из-за несоответствия ему заглушки. Более того, результат может оказаться неудовлетворительным, если ответ заглушки не меняется в зависимости от условий теста. Напри- мер, допустим, что нужно написать заглушку, замещающую программу вычисления квадратного корня, программу поиска в таблице или про- грамму чтения соответствующей записи. Если заглушка всегда возвраща- ет один и тот же фиксированный результат вместо конкретного значения, предполагаемого вызывающим методом класса именно в этом вызове, то вызывающий метод сработает как ошибочный (например, зациклится) или выдаст неверное выходное значение. Следовательно, создание за- глушек – задача нетривиальная. При обсуждении метода нисходящего тестирования часто упускают еще одно положение, а именно форму представления тестов в программе. В нашем примере вопрос состоит в том, как тесты должны быть переданы классу А? Ответ на этот вопрос не является совершенно очевидным, по- скольку верхний класс в типичной программе сам не получает входных данных и не выполняет операций ввода-вывода. В верхний класс (в нашем случае, А) данные передаются через одну или несколько заглушек. Для ил- люстрации допустим, что классы В, С и D выполняют следующие функции: В – получает сводку о вспомогательном файле; С – определяет, соответствует ли недельное положение дел установлен- ному уровню; D – формирует итоговый отчет за неделю. В таком случае тестом для класса А является сводка о вспомогатель- ном файле, получаемая от заглушки В. Заглушка D содержит операторы, выдающие ее входные данные на печатающее устройство или дисплей, чтобы сделать возможным анализ результатов прохождения каждого теста. С этой программой связана еще одна проблема. Поскольку метод класса А вызывает класс В, вероятно, один раз, нужно решить, каким об- разом передать в А несколько тестов. Одно из решений состоит в том, чтобы вместо В сделать несколько версий заглушки, каждая из которых имеет один фиксированный набор тестовых данных. Тогда для использо- вания любого тестового набора нужно несколько раз исполнить про- грамму, причем всякий раз с новой версией заглушки, замещающей B. Другой вариант решения – записать наборы тестов в файл, заглушкой чи- тать их и передавать в класс A. В общем случае создание заглушки может быть более сложной задачей, чем в разобранном выше примере. Кроме того, часто из-за характеристик программы оказывается необходимым сообщать тестируемому классу данные от нескольких заглушек, заме- 66
Страницы
- « первая
- ‹ предыдущая
- …
- 62
- 63
- 64
- 65
- 66
- …
- следующая ›
- последняя »