Драйвер (модуль для тестирования) – управляющая программа, которая принимает исходные данные (InData) и ожидаемые результаты (ExpRes) тестовых вариантов. Она запускает в работу тестируемый модуль, получает из модуля реальные результаты (OutData) и формирует отчёт о тестировании. Таким образом драйверы тестирования используются для автоматизации процесса тестирования.
Основной объем тестирования практически любой сложной системы обычно выполняется в автоматическом режиме. Кроме того, тестируемая система обычно разбивается на отдельные модули, каждый из которых тестируется вначале отдельно от других, а затем в комплексе. Это означает, что для выполнения тестирования необходимо создать некоторую среду, которая обеспечит запуск и выполнение тестируемого модуля, передаст ему входные данные, соберёт реальные выходные данные, полученные в результате работы системы на заданных входных данных. После этого среда должна сравнить реальные выходные данные с ожидаемыми и на основании данного сравнения сделать вывод о соответствии поведения модуля заданному поведению (рисунок 28).
Рисунок 28 – Драйвер в обобщённой среде тестирования
Тестовое окружение для программного кода на структурных языках программирования состоит из двух компонентов – драйвера и заглушек. Драйвер обеспечивает запуск и выполнение тестируемого модуля и заглушек, которые моделируют функции, вызываемые из данного модуля. Разработка тестового драйвера представляет собой отдельную задачу тестирования, сам драйвер должен быть протестирован, дабы исключить неверное тестирование. Драйвер и заглушки могут иметь различные уровни сложности, требуемый уровень сложности выбирается в зависимости от сложности тестируемого модуля и уровня тестирования. Так, драйвер может выполнять следующие функции:
a) Вызов тестируемого модуля.
b) Передача в тестируемый модуль входных значений и прием результатов.
c) Вывод выходных значений.
d) Протоколирование процесса тестирования и ключевых точек программы.
Функции заглушек:
a) Не производить никаких действий (такие заглушки нужны для корректной сборки тестируемого модуля).
b) вызвана.
c) Вывод сообщений со значениями Вывод сообщений о том, что заглушка была параметров, переданных в функцию.
d) Возвращение значения, заранее заданного во входных параметрах теста.
e) Вывод значения, заранее заданного во входных параметрах теста
f) Приём от тестируемого программного обеспечения значений и передача их в драйвер.
Для тестирования программного кода, написанного на процедурном языке программирования, используются драйверы, представляющие собой программу с точкой входа (к примеру, функцией main ()), функциями запуска тестируемого модуля и функциями сбора результатов. Обычно драйвер имеет как минимум одну функцию – точку входа, которой передаётся управление при его вызове.
Функции-заглушки могут помещаться в тот же файл исходного кода, что и основной текст драйвера. Имена и параметры заглушек должны совпадать с именами и параметрами “заглушаемых” функций реальной системы. Это требование важно чтобы максимально точно моделировать поведение реальной системы по передаче данных.
Рассмотри подробно этапы создания драйвера тестирования: