Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2014 Лекції ТСПП (0-8).pdf
Скачиваний:
404
Добавлен:
12.02.2016
Размер:
1.74 Mб
Скачать

Лекція 8. Тестування і відлагодження програмного засобу Тестування елементу просто здійснити, якщо модуль має високу зв'язність. При реалізації

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

3.2.Інтегральне Тестування ПП

Тестування інтеграції підтримує збірку цілісної програмної системи. Мета інтегрального тестування: узяти модулі, протестовані як елементи, і побудувати програмну структуру згідно з вимогами проекту.

Тести проводяться для виявлення помилок інтерфейсу. Перерахуємо деякі категорії помилок інтерфейсу:

втрата даних при проходженні через інтерфейс; відсутність в модулі необхідного посилання; несприятливий вплив одного модуля на іншій;

підфункції при об'єднанні не утворюють необхідну головну функцію; окремі (допустимі) неточності при інтеграції виходять за допустимий рівень; проблеми при роботі з глобальними структурами даних.

Як і для відлагодження, для тестування існує два варіанти, що підтримують процес інтеграції: низхідне тестування і висхідне тестування.

3.3.Низхідне тестування інтеграції

Уданому підході модулі об'єднуються рухом зверху вниз за ієрархією, що управляє, починаючи від головного модуля, що управляє. Підлеглі модулі додаються в структуру або в результаті пошуку в глибину, або в результаті пошуку завширшки.

Розглянемо приклад (мал. 8.4). Інтеграція пошуком в глибину підключатиме всі модулі, що знаходяться на головному шляху структури, що управляє (по вертикалі). Вибір головного шляху, що управляє, частково довільний і залежить від характеристик, визначуваних застосуванням. Наприклад, при виборі лівого шляху перш за все будуть підключені модулі Ml, М2, М5. Наступним підключається модуль М8 або М6 (якщо це необхідно для правильного функціонування М2). Потім будується центральний або правий шлях, що управляє.

При інтеграції пошуком завширшки структура послідовно проходиться по рівнях-горизонталях. На кожному рівні підключаються модулі, безпосередньо підлеглі модулю, що управляє, — начальникові. В цьому випадку перш за все підключаються модулі М2, М3, М4. На наступному рівні

модулі М5, М6 і так далі

Мал. 8.4. Низхідна інтеграція системи

Опишемо можливі кроки процесу низхідної інтеграції.

1.Головний модуль (знаходиться на вершині ієрархії), що управляє, використовується як тестовий драйвер. Все безпосередньо підлеглі йому модулі тимчасово заміщаються заглушками.

2.Одна із заглушок замінюється реальним модулем. Модуль вибирається пошуком завширшки або в глибину.

3.Після підключення кожного модуля (і установки на нім заглушок) проводиться набір тестів, перевіряючих отриману структуру.

4.Якщо в модулі-драйвері вже немає заглушок, проводиться зміна модуля-драйвера (пошуком завширшки або в глибину).

90

Лекція 8. Тестування і відлагодження програмного засобу

5.Виконується повернення на крок 2 (до тих пір, поки не буде побудована ціла структура).

Переваги низхідної інтеграції: помилки в головній частині системи, що управляє, виявляються в першу чергу.

Недолік: труднощі в ситуаціях, коли для повного тестування на верхніх рівнях потрібні результати обробки з нижніх рівнів ієрархії.

Існує 3 можливості боротьби з цим недоліком:

1)відкладати деякі тести до заміщення заглушок модулями;

2)розробляти заглушки, частково виконуючі функції модулів;

3)підключати модулі рухом від низу до верху.

Перша можливість викликає складнощі в оцінці результатів тестування.

Для реалізації другої можливості вибирається одна з наступних категорій заглушок: заглушка А — відображає трасоване повідомлення; заглушка В — відображає параметр, що проходить; заглушка З — повертає величину з таблиці;

заглушка D — виконує табличний пошук по ключу (вхідному параметру) і повертає пов'язаний з ним вихідний параметр.

Мал. 8.5. Категорії заглушок

Категорії заглушок представлені на мал. 8.5.

Очевидно, що заглушка А найбільш проста, а заглушка D найбільш складна в реалізації.

Цей підхід працездатний, але може привести до істотних витрат, оскільки заглушки стають все більш складними.

Третю можливість обговоримо окремо.

3.4.Висхідне тестування інтеграції

При висхідному тестуванні інтеграції збірка і тестування системи починаються з модулів-атомів, що розташовуються на нижніх рівнях ієрархії. Модулі підключаються рухом від низу до верху. Підлеглі модулі завжди доступні, і немає необхідності в заглушках.

Розглянемо кроки методики висхідної інтеграції.

1.Модулі нижнього рівня об'єднуються в кластери (групи, блоки), що виконують певну програмну підфункцію.

2.Для координації введень-виводів тестового варіанту пишеться драйвер, керівник тестуванням кластерів.

3.Тестується кластер.

4.Драйвери віддаляються, а кластери об'єднуються в структуру рухом вгору. Приклад висхідної інтеграції системи приведений на мал. 8.6.

Модулі об'єднуються в кластери 1,2,3. Кожен кластер тестується драйвером. Модулі в кластерах 1 і 2 підпорядковані модулю Ма, тому драйвери D1 і D2 віддаляються і кластери підключають прямо до Ма. Аналогічно драйвер D3 віддаляється перед підключенням кластера 3 до модуля Mb. В останню чергу до модуля Мс підключаються модулі Ма і Mb.

Розглянемо різні типи драйверів: драйвер А — викликає підлеглий модуль;

91

Лекція 8. Тестування і відлагодження програмного засобу драйвер В — посилає елемент даних (параметр) з внутрішньої таблиці; драйвер З — отображает параметр з підлеглого модуля;

драйвер D — є комбінацією драйверів В И С.

Очевидно, що драйвер А найбільш простий, а драйвер D найбільш складний в реалізації. Різні типи драйверів представлені на мал. 8.7.

У міру просування інтеграції вгору необхідність у виділенні драйверів зменшується. Як правило, в дворівневій структурі драйвери не потрібні.

Мал. 8.7. Різні типи драйверів

3.5.Порівняння низхідного і висхідного тестування інтеграції

Низхідне тестування:

1)основний недостаток— необхідність заглушок і пов'язані з ними труднощі тестування;

2)основна гідність — можливість раннього тестування головних функцій, що управляють. Висхідне тестування:

1)основний недолік — система не існує як об'єкт до тих пір, поки не буде доданий останній

модуль; 2) основна перевага — спрощується розробка тестових варіантів, відсутні заглушки.

Можливий також комбінований підхід. У ньому для верхніх рівнів ієрархії застосовують низхідну стратегію, а для нижніх рівнів — висхідну стратегію тестування.

При проведенні тестування інтеграції дуже важливо виявити критичні модулі. Ознаки критичного модуля:

1)реалізує декілька вимог до програмної системи;

2)має високий рівень управління (знаходиться достатньо високо в програмній структурі);

3)має високу складність або схильність до помилок (як індикатор може використовуватися цикломатическая складність — її верхня розумна межа складає 10);

4)має певні вимоги до продуктивності обробки.

Критичні модулі повинні тестуватися якомога раніше. Крім того, до них повинне застосовуватися регресійне тестування (повторення вже виконаних тестів в повному або частковому об'ємі).

92

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]