Тестування інтеграції підтримує зборку цільної ПС.
Мета: узяти модулі, протестовані як елементи, i побудувати програмну структуру, згідно проекту. Тести проводяться для виявлення помилок інтерфейсу.
Існує два варіанти тестування, що підтримують процес інтеграції: спадне тестування i зростаюче тестування.
Спадне тестування інтеграції
Кроки процесу:
1. Головний керуючий модуль (знаходиться на вершині ієрархії) використовується як тестовий драйвер. Усі безпосередньо підлеглі йому модулі тимчасово заміщаються заглушками.
2. Одна з заглушок заміняється реальним модулем. Модуль вибирається пошуком у ширину чи у глибину.
3. Після підключення кожного модуля (і установки на ньому заглушок) проводиться набір тестів, що перевіряють отриману структуру.
4. Якщо в модулі-драйвері вже немає заглушок, виконується зміна модуля-драйвера (пошуком у ширину чи в глибину).
5. Виконується повернення на крок 2 (поки не буде побудована ціла структура).
Зростаюче тecтування інтеграції
|
|
Зборка i тестування системи починаються з модулів-атомів, розтащовуваних на нижніх рівнях ієрархії. Модулі підключаються рухом знизу нагору. Підлеглі модулі завжди доступні, i немає необхідності в заглушках.
Кроки методики:
1. Модулі нижнього рівня поєднуються в кластери (групи, блоки), що виконують визначену програмну підфункцію.
2. Для координації введення-виведення тестового варіанта пишеться драйвер, керуючий тестуванням кластерів.
3. Тестується кластер.
4. Драйвери віддаляються, а кластери поєднуються в структуру рухом нагору.
Порiвияиня спадного i зростаючого тестування інтеграції
Спадне тестування:
1) основний недолік - необхідність заглушок i зв’язані з ними труднощі тестування;
2) основне достоїнство - можливість раннього тестування головних керуючих функцій.
Зростаюче тестування:
1) основний недолік - система не існує як об’єкт доти, поки не буде доданий останнiй модуль;
2) основне достоїнство - спрощується розробка тестових варіантів, відсутні заглушки.
При проведенні тестування інтеграції дуже важливо виявити критичні модулі.
Ознаки критичного модуля:
1) реалізує кілька вимог до ПС;
2) має високий рівень керування (знаходиться досить високо в програмній структурі);
3) має високу складність чи схильність до помилок (як індикатор може використовуватися
цикломатична складнiсть - її верхня розумна межа складає 10);
4) має визначені вимоги до продуктивності обробки.
Критичні модулі повинні тестуватися якомога раніше. Крім того, до них повинне застосовуватися регресійне тестування (повторення уже виконаних тестів у повному чи частковому обсязі).