База знань

Інтеграційне тестування (Integration testing)

Виходячи з відмінностей між модульним і системним тестуванням, інтеграційне тестування можна називати перехідним етапом між поданням програми у вигляді окремих модулів в вид повністю функціонуючої системи. 

Інтеграційне тестування(Integration testing) – вид тестування, при якому перевіряється на відповідність вимогам інтеграція модулів , їх взаємодія між собою, інтеграція підсистем в одну загальну систему, а також взаємодії з різними частинами системи (операційною системою, обладнанням або зв’язками з іншими системами). Для інтеграційного тестування використовуються компоненти, вже перевірені за допомогою модульного тестування, які групуються у множини . Дані множини перевіряються відповідно до плану тестування, складеного для них, а об’єднуються вони через свої інтерфейси. Так як модулі з’єднуються між собою за допомогою передбачених реалізацією інтерфейсів і в процесі тестування у нас немає потреби розглядати внутрішню структуру компонентів, можна стверджувати, що інтеграційне тестування виконується методом «чорного ящика». В процесі інтеграційного тестування  симулюється використання загальних даних і комунікація між процесами. 

integr_test

Існує кілька рівнів інтеграційного тестування: 

  • Рівень інтеграції компонентів (Component Integration testing) – на цьому рівні перевіряється взаємодія між компонентами системи після проведення компонентного (модульного) тестування. 
  • Рівень інтеграції систем (System Integration Testing) – на цьому рівні перевіряється взаємодія між різними системами після проведення системного тестування.

Існує кілька підходів до інтеграційного тестування:

  • Знизу вгору. Спочатку збираються і тестуються модулі самих нижніх рівнів, а потім по зростанню до вершини ієрархії. Даний підхід вимагає готовності всіх зібраних модулів на всіх рівнях системи.
  • Зверху вниз. Даний підхід передбачає тестування, починаючи з високорівневих модулів, а потім прямує вниз по гілках кожного з модулів окремо. При цьому використовуються заглушки для тих модулів, які знаходяться нижче за рівнем, але не включені в тестування.
  • Великий вибух (Big Bang). Всі модулі всіх рівнів збираються в єдине, а потім тестуються. Даний метод економить час, але вимагає ретельного опрацювання тест кейсів і результатів тестування.

При автоматизації тестування використовується Система безперервної інтеграції (Continuous Integration System, CIS).

Принцип її дії полягає в наступному:

  • Система безперервної інтеграції проводить моніторинг системи контролю версій.
  • При зміні вихідних кодів в репозиторії проводиться оновлення локального сховища.
  • Виконуються модульні тести.
  • Тексти програм компілюються в готові виконувані модулі.
  • Виконуються тести інтеграційного рівня.
  • Генерується звіт про тестування. 

Це дозволяє тестувати систему відразу після внесення змін, що істотно скорочує час виявлення та виправлення помилок.

Деякі відомі CIS:

  • BuildBot
  • Hudson або Jenkins 
  • Teamcity

 

Набагато більше інформації на курсі базовий модуль тестування