52
3.
4
4.
7
5.
11
Ответ: 3
5.
Ручное тестирование целесообразно применять:
1.
если тестовый пример не может быть выполнен в
автоматическом режиме
2.
если тестовый пример построен по одному тест-требованию
3.
если автоматизация выполнения тестового примера очень сложна
4.
если автоматическое выполнение тестового примера требует много времени
Ответ: 1, 3, 4
Тестовое окружение
Основной объем тестирования практически любой сложной системы обычно
выполняется в автоматическом режиме. Кроме того, тестируемая система обычно разбивается
на отдельные модули, каждый из которых тестируется вначале отдельно от других, затем в
комплексе.
Это означает, что для выполнения тестирования необходимо создать некоторую среду,
которая обеспечит запуск и выполнение тестируемого модуля,
передаст ему входные данные,
соберет реальные выходные данные, полученные в результате работы системы на заданных
входных данных (рис. 31). После этого среда должна сравнить реальные выходные данные с
ожидаемыми и на основании данного сравнения сделать вывод о соответствии поведения
модуля заданному.
Тестовое окружение также может использоваться для отчуждения отдельных модулей
системы от всей системы. Разделение модулей системы на ранних этапах тестирования
позволяет более точно локализовать проблемы, возникающие в их программном коде. Для
поддержки работы модуля в отрыве от системы тестовое окружение должно моделировать
поведение всех модулей, к функциям или данным которых обращается тестируемый модуль.
Поскольку тестовое окружение само является программой (причем, часто реализованной
не на
том языке программирования, на котором написана система), оно тоже должно быть
протестировано. Целью тестирования тестового окружения является доказательство того, что
тестовое окружение никаким образом не искажает выполнение тестируемого
модуля и
адекватно моделирует поведение системы.
Рисунок 31
Тестовое окружение для программного кода на структурных языках программирования
состоит из двух компонентов – драйвера, который обеспечивает
запуск и выполнение
тестируемого модуля, и заглушек, которые моделируют функции, вызываемые из данного
модуля. Разработка тестового драйвера представляет собой отдельную задачу тестирования,
сам драйвер должен быть протестирован, дабы исключить неверное тестирование. Драйвер и
заглушки могут иметь различные уровни сложности,
требуемый уровень сложности
выбирается в зависимости от сложности тестируемого модуля и уровня тестирования. Так,
драйвер может выполнять следующие функции:
1.
Вызов тестируемого модуля
2.
1 + передача в тестируемый модуль входных значений и прием результатов
3.
2 + вывод выходных значений
4.
3 + протоколирование процесса тестирования и ключевых точек программы
53
Заглушки могут выполнять следующие функции:
1.
Не производить никаких действий (такие заглушки нужны для корректной
сборки тестируемого модуля и
2.
Выводить сообщения о том, что заглушка была вызвана
3.
1 + выводить сообщения со значениями параметров, переданных в функцию
4.
2 + возвращать значение, заранее заданное во
входных параметрах теста
5.
3 + выводить значение, заранее заданное во входных параметрах теста
6.
3 + принимать от тестируемого ПО значения и передавать их в драйвер
Тестовое окружение для объектно-ориентированного ПО выполняет те же самые
функции, что и для структурных программ (на процедурных языках). Однако, оно имеет
некоторые особенности, связанные с применением наследования и инкапсуляции.
Если при тестировании структурных программ минимальным тестируемым объектом
является функция, то в объектно-ориентированным ПО минимальным
объектом является
класс. При применении принципа инкапсуляции все внутренние данные класса и некоторая
Достарыңызбен бөлісу: