Материал: методичка, тестування

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Мал. 3. Дерево розбивок області даних бінарного пошуку

Дерево має 11 листів. Кожний лист визначає окремий тестовий варіант.

Приклади тестових варіантів (ТВ).

ТВ 1

ВД : М = 10; ДО = 10 (одиничний масив).

Оч. РЕЗ : Result = True; I = 1

ТВ 2

ВД : М = 2 7 10 17 28 40; ДО = 2;

Оч. РЕЗ : Result = True; I = 1

ТВ 6

ВД : М = 2 7 10 17 28 40 51; Л = 51

Оч. РЕЗ : Result = True; I = 7

ТВ 9

ВД : М = 2 7 10 17 28 40;

Оч. РЕЗ :Result = False ; I = ?

ТВ 11

ВД : М = 28 2 10 17 40 7; ДО = 28

Оч. РЕЗ : Аварійне повідомлення : масив не упорядкований

Спосіб діаграм причин - наслідків

Діаграми причинно-наслідкових зв'язків - спосіб проектування тестових варіантів, що використовує формальний запис логічних умов і відповідних дій.

Кроки способу:

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

  • розробляється граф причино-слідствених зв'язків;

  • граф перетвориться в таблицю рішень;

  • стовпці таблиці рішень перетворяться в тестові варіанти.

Причини будемо позначати символами ci, а слідства - ei.

Кожний вузол графа може знаходитися в стані 0 або 1 (0 - стан відсутній, 1 - присутній).

Функція тотожність установлює, що якщо значення сі дорівнює 1, то і значення еі дорівнює 1, у противному випадку значення еі дорівнює 0.

Функція не установлює, що якщо значення сі дорівнює 1, то значення еі дорівнює 0; у протилежному випадку значення еі дорівнює 0.

Функція або встановлює, що якщо с1 або с2 дорівнює 1, то е1 дорівнює 1, у протилежному випадку е1 дорівнює 0.

Функція і встановлює, що якщо с1 і с2 дорівнює 1, то е1 дорівнює 1, у протилежному випадку е1 дорівнює 0.

Обмеження Е (Exclusive - виключає) встановлює, що Е повинно бути рівним 1, якщо хоча б одна зі змінних - a або b - приймає значення 1 (a і b не можуть приймати значення 1 одночасно).

Обмеження I (Inclusive - включає) установлює, що принаймні одна з змінних a, b або с завжди повинна бути рівною 1 (a, b і с не можуть приймати значення 0 одночасно).

Обмеження О (одне і тільки одне, Only one) установлює, що одна і тільки одна з змінних a або b повинна дорівнювати 1:

Обмеження R (Requires - ) устанавливает, что если а принимает значение 1, то и b должна принимать значение 1 (нельзя, чтобы а было равно 1, а b – 0).

Ограничение М (скрывает, Masks) устанавливает, что если следствие a имеет значение 1, то следствие b должно принять значение 0:

Приклад. Програма виконує розрахунок оплати за електроенергію по середньому або перемінному тарифі.

При розрахунку по середньому тарифі:

  • при місячному споживанні енергії меншому, чим 100 квт/ч. обчислюється фіксована сума;

  • при споживанні енергії, більшому або рівному 100 квт/ч., застосовується процедура А планування розрахунку.

При розрахунку по перемінному тарифі:

  • при місячному споживанні енергії менше 100 квт/ч. застосовується процедура А планування розрахунку;

  • при споживанні енергії, більшому або рівному 100 квт/ч., застосовується процедура В планування розрахунку.

Крок 1. Причинами є:

  • розрахунок по середньому тарифі;

  • розрахунок по перемінному тарифі;

  • місячне споживання електроенергії менше, чим 100 квт/ч.;

  • місячне споживання енергії більше або рівне 100 квт/ч..

На основі різних комбінацій причин можна перерахувати наступні слідства:

  • 101 - мінімальна місячна вартість

  • 102 - процедура А планування розрахунку

  • 102 - процедура В планування розрахунку.

Крок 2. Розробка графа причинно-слідчих зв'язків. Вузли причин перераховують по вертикалі зліва, а вузли слідств - справа.

Крок 3. Генерація таблиці рішень. Причини розглядаються як умови, а слідства - як дії.

Порядок генерації:

Вибирається деяке слідство, що повинне мати стан 1.

Знаходяться всі комбінації причин (з обліком обмежень), що встановлюють це слідство в стан 1. Для цього зі слідства прокладається зворотна траса через граф.

Для кожної комбінації причин, що приводять слідство в стан 1, будується один стовпець.

Для кожної комбінації причин доопределяють стани всіх інших слідств. Вони містяться в той же стовпець таблиці рішень.

Дії 1 - 4 повторюються для всіх слідств графа.

Номера стовпців ->

1

2

3

4

Умови

причини

1

1

0

1

0

(причини)

 

2

0

1

0

1

 

 

3

1

1

0

0

 

 

4

0

0

1

1

вторинні

11

0

0

1

0

 

причини

12

0

1

0

0

Дія

слідство

101

1

0

0

0

 

102

0

1

1

0

 

103

0

0

0

1

Крок 4. Перетворення кожного стовпця таблиці в тестовий варіант. У нашому прикладі 4 тестових варіанти.

ТВ 1 (стовпець 1):

ВД: розрахунок по середньому тарифі, місячне споживання енергії - 60 квт/ч.

Оч. РЕЗ :мінімальна місячна вартість.

ТВ 2 (стовпець 2):

ВД: розрахунок по перемінному тарифі, місячне споживання - 90 квт/ч.

Оч. РЕЗ : процедура А планування розрахунку.

ТВ 3 :

ВД: розрахунок по середньому тарифі, місячне споживання - 100 квт/ч.

ТВ 4 :

ВД: розрахунок по перемінному тарифі, місячне споживання - 100 квт/ч.

Оч. РЕЗ : процедура В планування розрахунку.

Тестування інтеграції

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

  • утрата даних при проходженні через інтерфейс;

  • відсутність у модулі необхідного посилання;

  • несприятливий вплив одного модуля на іншій;

  • підфункції при об'єднанні не утворять необхідну головну функцію;

  • окремі (припустимі) неточності при інтеграції виходять за припустимий рівень;

  • проблеми при роботі з глобальними структурами даних.

Спадне тестування інтеграції

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

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

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

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

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

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

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

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

Для боротьби з зазначеною нестачею існують три рішення:

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

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

  • підключати модулі рухом знизу нагору.

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

Для реалізації другої можливості вибирається одна з наступних категорій заглушок:

  • заглушка А - відображає параметр, що проходить;

  • заглушка В - відображає повідомлення, що трасується;

  • заглушка С - повертає значення із таблиці;

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

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

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

Кроки методики висхідної інтеграції.

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

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

  • Тестирують кластер.

  • Драйвери віддаляються, а кластери об'єднуються в структуру рухом нагору.

Драйвери можуть бути різних типів:

  • драйвер А - викликає підпорядкований модуль;

  • драйвер В - посилає елемент даних (параметр) із внутрішньої таблиці;

  • драйвер С - відображає параметр із підпорядкованого модуля;

  • драйвер D - є комбінацією драйверів В и С.

В міру просування нагору необхідність у використанні драйверів зменшується.

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

Основний недолік спадного тестування - необхідність заглушок і зв'язані з ним трудності тестування; основна гідність - можливість раннього тестування головних керуючих функцій.

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

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

Список літератури

1.Орлов С.А. Технология разработки программного обеспечения. СПб. : Питер, 2002. - 464с.

2.Соммервилл Иан. Інженерия программногго обеспечения. М.: Вильямс, 2002. - 624с.

3.Ларман Крег. Применение UML и шаблонов проектирования. М. : Вильямс, 2002. - 624с.

4.Давыдов В.И. Кунгурцев А.Б. Об'єктно-ориентированное программирование. Одесса :Автограф, 2003. - 124с.