Учебники

Интеграционное тестирование

 Интеграционное тестирование фокусируется на проверке обмена данными между этими модулями. Следовательно, оно также называется  «I & T»  (интеграция и тестирование),  «тестирование строк» и иногда «тестирование потоков» .

Почему Интеграционное Тестирование?

Интеграционное тестирование

Хотя каждый программный модуль проходит модульное тестирование, дефекты все еще существуют по разным причинам, таким как

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

Нажмите здесь, если видео не доступно

Пример интеграционного теста

Интеграционный тестовый пример отличается от других тестовых примеров тем, что он сосредоточен в основном на интерфейсах и потоке данных / информации между модулями . Здесь приоритет должен быть отдан интегрирующим ссылкам, а не функциям блока, которые уже проверены.

Примеры тестовых примеров интеграции для следующего сценария: Приложение имеет 3 модуля, например «Страница входа», «Почтовый ящик» и «Удалить электронную почту», и каждый из них интегрирован логически.

Здесь не зацикливайтесь на тестировании страницы входа, как это уже было сделано в модульном тестировании . Но проверьте, как это связано со страницей почтового ящика.

Аналогично, почтовый ящик: проверьте его интеграцию с модулем удаления почты.

Идентификатор теста Цель теста Описание теста ожидаемый результат
1 Проверьте интерфейсную связь между модулем входа в систему и почтовым ящиком. Введите учетные данные и нажмите кнопку «Войти» Быть направленным в почтовый ящик
2 Проверьте интерфейсную ссылку между почтовым ящиком и модулем удаления почты. Из почтового ящика выберите адрес электронной почты и нажмите кнопку удаления Выбранное письмо должно появиться в папке «Удаленные / Корзина»

Подходы, стратегии, методологии интеграционного тестирования

Программная инженерия определяет различные стратегии для проведения интеграционного тестирования, а именно.

  •  Подход Большого взрыва:
  •  Инкрементальный подход: который далее делится на следующие
    •  Нисходящий подход
    •  Подход «снизу вверх
    •  Сэндвич-подход — комбинация сверху вниз и снизу вверх

Ниже приведены различные стратегии, способы их выполнения и их ограничения, а также преимущества.

Подход Большого взрыва:

Здесь все компоненты объединены вместе в один раз , а затем тестируют.

Преимущества:

  • Удобно для небольших систем.

Недостатки:

  • Локализация неисправностей сложна.
  • Учитывая огромное количество интерфейсов, которые необходимо протестировать в этом подходе, некоторые интерфейсы, которые нужно протестировать, могут быть легко пропущены.
  • Поскольку интеграционное тестирование может начаться только после того, как «все» модули спроектированы, у группы тестирования будет меньше времени для выполнения на этапе тестирования.
  • Поскольку все модули тестируются одновременно, критические модули высокого риска не изолируются и тестируются в приоритетном порядке. Периферийные модули, которые имеют дело с пользовательскими интерфейсами, также не изолированы и не проверены на приоритетность.

Инкрементальный подход

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

Поэтапный подход, в свою очередь, осуществляется двумя разными методами:

  • Вверх дном
  • Сверху вниз

Что такое заглушка и драйвер?

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

Заглушка : вызывается тестируемым модулем.

Драйвер : вызывает модуль для тестирования.

Интеграция снизу вверх

В восходящей стратегии каждый модуль на более низких уровнях тестируется с модулями более высокого уровня, пока не будут протестированы все модули. Требуется помощь драйверов для тестирования

Схематическое изображение :

Учебное пособие по тестированию INTEGRATION: Большой взрыв, сверху вниз и снизу вверх

Преимущества:

  • Локализация ошибок проще.
  • Не тратится время на ожидание разработки всех модулей, в отличие от подхода Большого взрыва

Недостатки:

  • Критические модули (на верхнем уровне архитектуры программного обеспечения), которые контролируют поток приложения, тестируются последними и могут быть подвержены дефектам.
  • Ранний прототип невозможен

Интеграция сверху вниз:

При подходе сверху вниз тестирование выполняется сверху вниз, следуя потоку управления программной системы.

Пользуется заглушками для тестирования.

Схематическое изображение:

Учебное пособие по тестированию INTEGRATION: Большой взрыв, сверху вниз и снизу вверх

Преимущества:

  • Локализация неисправностей проще.
  • Возможность получить ранний прототип.
  • Критические Модули тестируются на приоритет; основные недостатки дизайна могут быть найдены и исправлены в первую очередь.

Недостатки:

  • Нужно много пней.
  • Модули на более низком уровне тестируются неадекватно.

Интеграция гибрид / сэндвич

В стратегии сэндвич / гибрид представляет собой комбинацию подходов сверху вниз и снизу вверх. Здесь верхние модули тестируются с нижними модулями, а нижние модули интегрируются с верхними модулями и тестируются. Эта стратегия использует заглушки, а также драйверы.

Учебное пособие по тестированию INTEGRATION: Большой взрыв, сверху вниз и снизу вверх

Как сделать интеграционное тестирование?

Процедура тестирования интеграции независимо от стратегий тестирования программного обеспечения (обсуждаемых выше):

  1. Подготовьте план интеграционных тестов
  2. Разработка тестовых сценариев, случаев и сценариев.
  3. Выполнение тестовых случаев с последующим сообщением о дефектах.
  4. Отслеживание и повторное тестирование дефектов.
  5. Шаги 3 и 4 повторяются до успешного завершения интеграции.

Краткое описание планов интеграционных испытаний:

Включает в себя следующие атрибуты:

  • Методы / Подходы к тестированию (как обсуждено выше).
  • Области применения и вне областей Тестирование интеграции.
  • Роли и обязанности.
  • Предварительные условия для Интеграционного тестирования.
  • Тестовая среда.
  • Планы по снижению рисков и снижению рисков.

Критерии входа и выхода из интеграционного тестирования

Критерии входа и выхода на этапе тестирования интеграции в любой модели разработки программного обеспечения

Критерии входа:

Критерии выхода:

  • Успешное тестирование интегрированного приложения.
  • Выполненные тестовые случаи задокументированы
  • Все ошибки с высоким приоритетом исправлены и закрыты
  • Технические документы должны быть представлены после выпуска Примечания.

Лучшие практики / рекомендации по интеграционному тестированию

  • Сначала определите стратегию интеграционных тестов, которая может быть принята, а затем подготовьте тестовые наборы и соответственно протестируйте данные.
  • Изучите Архитектурный дизайн Приложения и определите Критические Модули. Они должны быть проверены на приоритет.
  • Получите проекты интерфейсов от команды Architectural и создайте контрольные примеры для проверки всех интерфейсов в деталях. Интерфейс к базе данных / внешнему оборудованию / программному обеспечению должен быть детально протестирован.
  • После тестовых случаев именно тестовые данные играют решающую роль.
  • Всегда имейте подготовленные данные перед выполнением. Не выбирайте тестовые данные во время выполнения тестовых случаев.