Please enable JavaScript.
Coggle requires JavaScript to display documents.
Интеграционное тестирование - Coggle Diagram
Интеграционное тестирование
Задачи и цели
Задачи
тестирование корректности взаимодействия нескольких модулей
тестирование архитектуры и низкоуровневых функциональных требований
Цели
удостовериться в корректности совместной работы компонент системы
Организация интеграционного тестирования
методы проведения интеграционного тестирования:
восходящее тестирование;
Достоинства
сначала тестируются все программные модули, входящие в состав системы и только затем они объединяются для интеграционного тестирования
упрощается локализация ошибок
при таком подходе область поиска проблем у тестировщика достаточно узка, и поэтому гораздо выше вероятность правильно идентифицировать дефект
Процесс
Недостатки
необходимость в разработке драйвера и заглушек для модульного тестирования перед проведением интеграционного тестирования и необходимость в разработке драйвера и заглушек при интеграционном тестировании части модулей системы
монолитное тестирование;
Достоинства
отсутствие необходимости в разработке тестового окружения, драйверов и заглушек
Недостатки
Очень трудно выявить источник ошибки (идентифицировать ошибочный фрагмент кода). В большинстве модулей следует предполагать наличие ошибки. Проблема сводится к определению того, какая из ошибок во всех вовлечённых модулях привела к полученному результату. При этом возможно наложение эффектов ошибок. Кроме того, ошибка в одном модуле может блокировать тестирование другого
Трудно организовать исправление ошибок. В результате тестирования тестировщиком фиксируется найденная проблема. Дефект в системе, вызвавший эту проблему, будет устранять разработчик. Поскольку, как правило, тестируемые модули написаны разными людьми, возникает проблема - кто из них является ответственным за поиск устранение дефекта? При такой "коллективной безответственности" скорость устранения дефектов может резко упасть.
Процесс тестирования плохо автоматизируется. Преимущество (нет дополнительного программного обеспечения, сопровождающего процесс тестирования) оборачивается недостатком. Каждое внесённое изменение требует повторения всех тестов.
нисходящее тестирование.
Достроинства
В результате применения такого метода отпадает необходимость в драйверах (роль драйвера выполняет более высокоуровневый модуль системы), однако сохраняется нужда в заглушках
Процесс
Временная классификация методов интеграционного тестирования
В рамках этой классификации выделяют:
тестирование с поздней интеграцией;
практически полный аналог монолитного тестирования.
Цепочка
R-C-V-R-C-V-R-C-V-I-R-C-V-R-C-V-I
где R - разработка требований на отдельный модуль, C - разработка программного кода, V - тестирование модуля, I - интеграционное тестирование всего, что было сделано раньше.
тестирование с постоянной интеграцией;
Цепочка
R-C-I-R-C-I-R-C-I
где R - разработка требований на отдельный модуль, C - разработка программного кода, V - тестирование модуля, I - интеграционное тестирование всего, что было сделано раньше.
Тестирование с постоянной интеграцией подразумевает, что, как только разрабатывается новый модуль системы, он сразу же интегрируется со всей остальной системой
тестирование с регулярной или послойной интеграцией.
Характеристики интеграционного тестирования
Виды интеграции
Восходящее
Нисходящее
Монолитное
Поздняя интеграция
Постоянная интеграция
Регулярная интеграция
Свойства
Время интеграции
поздно (после тестирования модулей)
Восходящее
Монолитное
Поздняя интеграция
рано (параллельно с разработкой)
Нисходящее
Регулярная интеграция
Постоянная интеграция
Частота интеграции
Редко
Восходящее
Монолитное
Поздняя интеграция
часто
Нисходящее
Постоянная интеграция
Регулярная интеграция
Нужны ли драйверы
Восходящее: да
Нисходящее: нет
Монолитное: нет
Поздняя интеграция: нет
Постоянная интеграция: да
Регулярная интеграция: Да
Нужны ли заглушки
Восходящее: да
Нисходящее: Да
Монолитное: нет
Поздняя интеграция: нет
Постоянная интеграция: нет
Регулярная интеграция: Да
Планирование интеграционного тестирования
Составляется интеграционный тест-план, например, кластерного типа, в котором для каждого кластера из интегрированных модулей определяется следующее:
кластеры, от которых зависит данный кластер;
кластеры, которые должны быть протестированы до тестирования данного кластера;
описание функциональности тестируемого кластера;
список модулей в кластере;
описание тестовых примеров для проверки кластера;