Интеграционное тестирование — это специальный вид тестирования, в котором происходит объединение программных модулей по логическому признаку для группового тестирования. Обычно тестируемый продукт написан из нескольких программных модулей, которые могут быть написаны разными программистами. Такие модули тестируются по отдельности, а потом объединяются в единый программный продукт. Интеграционное тестирование предлагает тестировать их совместно после объединения в единый программный продукт.
Интеграционное тестирование является одним из этапов тестирования. Этапы тестирования выглядят таким образом:
Модульное тестирование.
Интеграционное тестирование.
Системное тестирование.
Приемочное тестирование.
Почему важно проводить продукт через разные виды тестирования? Потому что каждый отдельный вид тестирования способен выявить определенные виды ошибок и не способен выявить все виды сразу. Например, модульное тестирование — это когда тестируют каждый отдельный программный модуль по отдельности. Такое тестирование дает результаты по каждому отдельному модулю. Однако при «соединении» модулей в единый программный продукт могут возникнуть проблемы в их взаимодействии. Эти проблемы не видны в модульном тестировании, но обязательно проявятся в интеграционном.
Интеграционное тестирование
Интеграционное тестирование делает акцент проверки на взаимоотношении между отдельными программными модулями и на интерфейсе, который управляет этими взаимоотношениями.
Пример интеграционного тестирования. Допустим, у интернет-магазина есть 4 отдельных модуля:
страница товара;
страница корзины;
страница оформления подтверждения заказа;
страница оплаты.
Каждая отдельная страница была проверена при модульном тестировании. Однако нужно проверить логическую связь и взаимную работу этих отдельных страниц. К примеру, нужно убедиться, что:
если находиться на странице товара, он легко добавится в «корзину»;
если находиться на странице «корзины», можно оформить и подтвердить заказ этого товара;
если оформить и подтвердить заказ, он легко оплатится тут же на сайте.
Эти связи показывает и проверяет интеграционное тестирование.
Интеграционное тестирование и его стратегии
Интеграционное тестирование многообразно в собственном исполнении. Подход и стратегия будут зависеть от тестируемого проекта и его сложности. Однако чаще всего применяются две стратегии проверок:
Стратегия «Большого взрыва». При такой стратегии все программные модули объединяют вместе, а потом разом их тестируют. Эта стратегия удобна в небольших проектах, где нет большого количества модулей. Чем больше модулей в программе, тем сильнее возрастает риск пропуска ошибок.
Инкрементная стратегия. Такая стратегия подразумевает объединение не всей программы сразу, а лишь несколько отдельных модулей, которые логически тесно связаны между собой. Таким образом, программа «разбивается» на несколько модульных «связок». Модульные «связки» тестируются по отдельности, а потом постепенно объединяются одна с другой. По сути, такая стратегия является поэтапной, где на каждом отдельном этапе тестируется отдельная связка модулей. Последовательность тестирования определяется важностью модульных связок, поэтому такая стратегия тестирования может быть реализована двумя путями: «сверху вниз» и «снизу вверх».
Как сделать интеграционные тесты
Интеграционное тестирование работает по следующему алгоритму:
Нужно подготовить план интеграционного тестирования: выбор стратегии, разбивка на модули, определение количества тестов и др.
Нужно разработать тестовые сценарии.
Выполнить тестовые сценарии и зафиксировать ошибки.
Отследить исправление ошибок и провести повторное тестирование.
Проводить тестирование, пока не будет зафиксирована успешная интеграция модулей в единый продукт.
Чтобы правильно задействовать алгоритм интеграционного тестирования, нужно:
Определить состояние и объем всей программы, чтобы правильно выбрать стратегию для интеграционных тестов. Главное, чтобы стратегия не противоречила принципам разработки и максимально охватывала программу.
Тщательно изучить архитектуру программы, чтобы определить критически важные модули, на которых необходимо будет сосредоточить приоритет тестов.
При тестировании желательно взаимодействовать с командой разработчиков программных модулей. Это нужно, чтобы получить более точное понимание об интерфейсах и тонкостях программы.
Никогда не нужно игнорировать полученные тестовые данные. Всегда необходимо фиксировать даже малейшие ошибки для их дальнейшего устранения.
Заключение
Интеграционное тестирование — это всего лишь вторая ступень в этапах тестирования, которая стоит после модульного. При этом важность данного этапа сложно переоценить, ведь на этом этапе тестируют взаимосвязи между различными модулями одной программы. От качества взаимосвязей между отдельными модулями будет зависеть общая работоспособность программы.
Другое