System Integration Testing (SIT) — це рівень тестування, що проводиться після System Testing, і має на меті перевірити, як система інтегрується з іншими системами або зовнішніми компонентами, а також перевірити, як система взаємодіє із зовнішнім середовищем, наприклад, через інтерфейси або API.
Мета System Integration Testing (SIT)
Система після проходження System Testing є повністю функціональною, але SIT перевіряє, як вона взаємодіє з іншими системами або компонентами. SIT допомагає виявити помилки, які можуть виникнути під час взаємодії компонентів, а також перевіряє коректність інтеграційних точок, таких як API, бази даних, сторонні сервіси тощо.
Метою SIT є:
- Перевірка коректності взаємодії системи з іншими компонентами.
- Перевірка зовнішніх інтеграцій і взаємодії з іншими програмними продуктами.
- Перевірка передачі даних між системами або компонентами, зокрема правильності форматів, протоколів та безпеки.
- Перевірка того, як система працює у більшому контексті, коли інтегрується з іншими частинами (сервіси, сторонні інтерфейси тощо).
Особливості SIT в порівнянні з іншими етапами тестування
- Component Integration Testing (CIT) проводиться після Component Testing, коли перевіряється взаємодія між окремими модулями програми. SIT ж перевіряє всю систему як єдине ціле, і її взаємодію з іншими системами або підсистемами.
- System Testing фокусується на перевірці функціональності системи як такої, без акценту на взаємодію з іншими системами, тоді як SIT фокусується саме на інтеграції з зовнішніми компонентами.
Основні характеристики System Integration Testing
- Типи інтеграцій:
- Інтеграція з іншими системами: Перевіряється, як система працює в контексті з іншими системами. Наприклад, перевіряється, як програма взаємодіє з іншими базами даних, сторонніми API чи сервісами.
- Інтеграція з апаратними засобами: Якщо система має взаємодіяти з апаратними пристроями (наприклад, датчиками, принтерами), тестується коректність їх інтеграції.
- Мережеві взаємодії: Тестуються протоколи зв’язку між системами, перевіряється коректність передачі даних через мережу, стійкість до помилок і безпека.
- Об’єкти тестування:
- API: Інтерфейси для взаємодії з іншими системами або компонентами.
- Бази даних: Перевірка того, як дані зчитуються і передаються між різними компонентами.
- Веб-сервіси: Тестування взаємодії через SOAP, REST або інші протоколи.
- Сторонні сервіси: Перевірка інтеграції з іншими сторонніми системами, такими як платіжні шлюзи, системи електронної пошти або постачальники даних.
- Тестування взаємодії між різними типами компонентів:
SIT передбачає перевірку того, як система працює з різними типами компонентів — від програмних модулів до апаратних пристроїв і сторонніх сервісів. Це тестування зв’язків між різними частинами системи, що важливо для забезпечення її належної роботи в реальних умовах. - Підвищена увага до неочевидних помилок:
SIT дозволяє виявити помилки, які можуть не бути помітними на рівні компонентного тестування або системного тестування. Наприклад, це можуть бути помилки, пов’язані з нестабільними або неправильно налаштованими інтерфейсами між системами. - Часова точка виконання:
SIT виконується після System Testing (коли система функціонує коректно як окрема одиниця), але до Acceptance Testing (коли тестуються умови прийняття продукту).
Техніки тестування в SIT
В рамках SIT застосовуються такі техніки:
- Тестування інтеграційних точок: Перевірка кожного інтерфейсу між системами (наприклад, REST API, файлові інтерфейси).
- Тестування відмов та відновлення: Перевірка, як система поводиться при відмові зовнішніх компонентів (наприклад, падіння API-сервісу).
- Тестування безпеки: Перевірка безпечності інтеграцій, включаючи захист даних при передачі через мережу, перевірка авторизацій і автентифікацій.
- Тестування масштабованості: Перевірка того, як система поводиться при збільшенні навантаження, особливо якщо інтеграція відбувається з іншими великими системами.
Типові проблеми, що виявляються на етапі SIT
- Невідповідність протоколів: Невідповідність форматів передачі даних або протоколів між різними системами.
- Невірна обробка даних: Наприклад, некоректна конвертація дат, чисел чи інших даних при інтеграції з зовнішніми системами.
- Відсутність коректних механізмів обробки помилок: Помилки, що виникають через несправності зовнішніх компонентів, наприклад, через падіння сервісу, який інтегрується.
Ризики, пов’язані з SIT
- Неповна документація: Відсутність точних технічних специфікацій для інтеграційних точок може призвести до неочевидних помилок.
- Проблеми з конфігурацією: Невірно налаштовані інтеграційні середовища можуть призвести до непрацюючих тестів або тестування на непідготовленому середовищі.
- Залежність від зовнішніх постачальників: Проблеми з інтеграцією можуть виникнути через затримки або непередбачувану поведінку зовнішніх сервісів.
Висновок
System Integration Testing — це важливий етап тестування, що дозволяє забезпечити безперебійну роботу системи в реальному середовищі, де вона має взаємодіяти з іншими компонентами або зовнішніми системами.