Please enable JavaScript.
Coggle requires JavaScript to display documents.
Интеграционное тестирование - Coggle Diagram
Интеграционное тестирование
:pencil2:Цели и задачи интеграционного тестирования
Тестирование корректности взаимодействия нескольких модулей, объединенных в единое целое. Такое тестирование называют интеграционным.
Его цель - удостовериться в корректности совместной работы компонент системы.
Интеграционное тестирование называют еще тестированием архитектуры системы
В результате проведения интеграционного тестирования и устранения всех выявленных дефектов получается согласованная и целостная архитектура программной системы, т.е. можно считать, что интеграционное тестирование - это тестирование архитектуры и низкоуровневых функциональных требований.
Интеграционное тестирование, как правило, представляет собой итеративный процесс, при котором проверяется функциональной все более и более увеличивающейся в размерах совокупности модулей.
:recycle:Структурная классификация методов интеграционного тестирования
Методы проведения интеграционного тестирования:
● восходящее тестирование;
При использовании этого метода подразумевается, что сначала тестируются все программные модули, входящие в состав системы и только затем они объединяются для интеграционного тестирования.
При таком подходе значительно упрощается локализация ошибок: если модули протестированы по отдельности, то ошибка при их совместной работе есть проблема их интерфейса.
При таком подходе область поиска проблем у тестировщика достаточно узка, и поэтому гораздо выше вероятность правильно идентифицировать дефект.
Однако, у восходящего метода тестирования есть существенный недостаток - необходимость в разработке драйвера и заглушек для модульного тестирования перед проведением интеграционного тестирования и необходимость в разработке драйвера и заглушек при интеграционном тестировании части модулей системы.
● монолитное тестирование;
Предполагает, что отдельные компоненты системы серьезного тестирования не проходили.
Основное преимущество данного метода - отсутствие необходимости в разработке тестового окружения, драйверов и заглушек.
Недостатки:
● Очень трудно выявить источник ошибки (идентифицировать ошибочный фрагмент кода).
● Трудно организовать исправление ошибок.
● Процесс тестирования плохо автоматизируется.
● нисходящее тестирование.
Предполагает, что процесс интеграционного тестирования движется следом за разработкой.
Сначала тестируют только самый верхний управляющий уровень системы, без модулей более низкого уровня. Затем постепенно с более высокоуровневыми модулями интегрируются более низкоуровневые.
Вне зависимости от применяемого метода интеграционного тестирования, необходимо учитывать степень покрытия интеграционными тестами функциональности системы.
:fountain_pen:Временная классификация методов интеграционного тестирования
Классификацию по времени интеграции:
● тестирование с поздней интеграцией;
Интеграционное тестирование при такой схеме откладывается на как можно более поздние сроки проекта. Этот подход оправдан в том случае, если система является конгломератом слабо связанных между собой модулей, которые взаимодействуют по какому-либо стандартному интерфейсу.
● тестирование с постоянной интеграцией;
Подразумевает, что, как только разрабатывается новый модуль системы, он сразу же интегрируется со всей остальной системой. При этом тесты для этого модуля проверяют как сугубо его внутреннюю функциональность, так и его взаимодействие с остальными модулями системы. Таким образом, этот подход совмещает в себе модульное тестирование и интеграционное.
● тестирование с регулярной или послойной интеграцией.
Интеграционному тестированию подлежат сильно связанные между собой группы модулей (слои), которые затем также интегрируются между собой. Такой вид интеграционного тестирования называют также иерархическим интеграционным тестированием, поскольку укрупнение интегрированных частей системы, как правило, происходит по иерархическому принципу.
:pen:Планирование интеграционного тестирования
На этапе планирования разрабатывается концепция и стратегия интеграции - документ, где описан общий подход к определению последовательности, в которой должны интегрироваться модули.
Составляется интеграционный тест-план, например, кластерного типа, в котором для каждого кластера из интегрированных модулей определяется следующее:
● кластеры, от которых зависит данный кластер;
● кластеры, которые должны быть протестированы до тестирования данного кластера;
● описание функциональности тестируемого кластера;
● список модулей в кластере;
● описание тестовых примеров для проверки кластера;
Планирование интеграционного тестирования должно быть синхронизировано с общим планом проекта, причем выделяемые для интеграционного тестирования кластеры и сроки их тестирования должны учитывать приоритеты важности частей системы.
Глоссарий:
Тестирование ПО — это основной вид деятельности тестировщика, заключается в проверке совпадения и соответствия реального поведения программы с ожидаемым, осуществляется путем проведения определенного набора тестов над ПО в определенной заранее среде окружения. Разграничивая тестирование и обеспечение качества, то тестирование является одной из применяемых техник контроля качества над продуктом.
Верификация (Verification) — это статическая практика проверки документов, дизайна, архитектуры, кода, т.д.
Интеграционное тестирование – Integration testing – Тестирование, которое направлено на проверку взаимодействия между несколькими частями приложения (кажд ая из которых, в свою очередь, проверена отдельно на стадии модульного тестирования).
Модульное (компонентное) тестирование – Unit testing, component testing – Тестирование, направленное на проверку отдельных небольших частей приложения, которые (как правило) можно исследовать изолированно от других подобных частей.
Тестовое окружение для программного кода на структурных языках программирования состоит из двух компонентов - драйвера, который обеспечивает запуск и выполнение тестируемого модуля, и заглушек, которые моделируют функции, вызываемые из данного модуля.
Заглушка - это компонент, который не делает ничего кроме того, что объявляет себя и набор принимаемых параметров. Заглушка содержит минимум кода, необходимого для ее компиляции и компоновки с остальными компонентами.
Драйвер – определенный модуль теста, который выполняют тестируемый нами элемент.