Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
125174f.doc
Скачиваний:
192
Добавлен:
08.06.2015
Размер:
386.05 Кб
Скачать

1.1 Модульное тестирование

Под модульным тестированием (unit testing) понимается процесс тестирования отдельных модулей, функций или классов исходного кода программы. Целью модульного тестирования является поиск ошибок и дефектов в отдельно взятых, изолированных частях программы, а также оценка возможности перехода к следующему этапу кодирования и тестирования. Модульное тестирование проводится преимущественно на этапах проектирования и кодирования ПО непосредственно программистами.

Согласно стандарту [3], модульное тестирование включает следующие этапы:

1) Планирование:

а) планирование общего подхода, ресурсов и расписания;

б) определение характеристик ПО, которые должны быть протестированы на соответствие со спецификацией;

в) доработка общего плана тестирования;

2) Получение тестов:

а) разработка набора тестов;

б) реализация доработанного плана и проекта;

3) Выполнение модульного тестирования:

а) выполнение тестовых процедур;

б) проверка окончания работы;

в) оценка тестирования и модулей.

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

Модульное тестирование соответствует принципам тестирования «белого ящика» (структурного тестирования) и характеризуется степенью, с которой тесты выполняют или покрывают логику программы.

Наименьший компонент программы, который может быть независимо протестирован, – элемент (unit). Обычно в качестве тестируемого элемента выступает либо программный модуль (единица компиляции), если система разрабатывается с помощью процедурного языка программирования, либо класс – в случае использования объектно-ориентированного языка. На практике существует несколько подходов к выделению тестируемых элементов:

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

  2. элемент – это программный модуль, т.е. минимально компилируемый элемент программной системы;

  3. элемент – это задача в списке задач проекта;

  4. элемент – это участок кода, который помещается на одном экране (или листе бумаги);

  5. элемент – это один класс или их множество с единым интерфейсом.

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

- возвращение к элементу без выполнения каких-либо других действий;

- отображение трассировочного сообщения;

- возвращение константы или ввод значения тестером;

- упрощенная реализация недостающего элемента;

- имитация исключительных или критических (аварийных) условий.

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

Модульные тесты используются для так называемой разработки через тестирование (TDD – test-driven development). В этом случае сначала разрабатывается тест, покрывающий желаемое изменение кода программы, и только потом пишется код, который может пройти данный тест. На практике модульные тесты покрывают критические и нетривиальные участки кода. Это может быть код, который подвержен частым изменениям, код, от работы которого зависит работоспособность большого количества другого кода, или код с большим количеством зависимостей. Чтобы быть полезным, модульное тестирование должно устанавливать собственную среду выполнения перед применением, чтобы иметь возможность последовательно проверять код, который следует протестировать. После того как тест реализован и проверен, он регистрируется в системе контроля исходного кода, и его результаты будут использованы в течение остатка жизненного цикла продукта, чтобы обеспечить требуемое поведение метода.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]