Нисходящее тестирование интеграции
Тестирование интеграции.
Цель сборки и тестирования интеграции заключается в построении программной структуру, требуемой проектом из модулей, протестированных как элементы. Тесты проводятся для обнаружения ошибок межмодульного интерфейса. Наиболее типичными категориями таких ошибок интерфейса являются:
1. Потеря данных при прохождении через интерфейс;
2. Отсутствие в модуле необходимой ссылки;
3. Неблагоприятное влияние одного модуля на другой;
4. Подфункции при объединении не образуют требуемую главную функцию;
5. Отдельные (допустимые) неточности при интеграции выходят за допустимый уровень;
6. Проблемы при работе с глобальными структурами данных.
Существует два варианта тестирования, поддерживающих процесс интеграции: нисходящее тестирование и восходящее тестирование. Рассмотрим каждый из них
В данном подходе модули объединяются движение сверху вниз по управляющей иерархии, начиная от главного управляющего модуля. Подчиненные модули добавляются в структуру или в результате поиска в глубину, или в результате поиска в ширину.
Например, для управляющей структуры, приведенной на рис. 2.21, интеграция поиском в глубину будет подключать все модули, находящиеся на главном управляющем пути структуры (по вертикали). Выбор главного управляющего пути отчасти произволен и зависит от характеристик, определяемых приложением. Например, при выбор левого пути прежде всего будут подключены модули М1,М2,М5. Следующим подключается модуль М8 или Мб (если это необходимо для правильного функционирования М2). Затем строиться центральный или правый управляющий путь.
При интеграции поиском в ширину структура последовательно проходиться по уровням — горизонталям. На каждом уровне подключаются модули, непосредственно подчиненные управляющему модулю — начальнику. В этом случае прежде всего подключаются модули М2, М3, М4.на следующем уровне — модули М5,Мб и т.д.
Рис. 2.21.Нисходящая интеграция системы
Алгоритм нисходящего тестирования интеграции состит из следующих шагов.
1. Главный управляющий модуль (находится на вершине иерархии) используется как тестовый драйвер. Все непосредственно подчиненные ему модули временно замещаются заглушками.
2. Одна из заглушек заменяется реальным модулем. Модуль выбирается поиском в ширину или в глубину.
3. После подключения каждого модуля (и установки на нем заглушек) проводится набор тестов, проверяющих полученную структуру.
4. Если в модуле - драйвере уже нет заглушек, производится смена модуля - драйвера (поиском в ширину или в глубину).
5. Выполняется возврат на шаг 2 (до тех пор, пока не будет построена целая структура).
Проблемы при нисходящем тестировании интеграции возникают в тех случаях, когда для полного тестирования на верхних уровнях нужны результаты обработки с нижних уровней иерархии.