Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4 Курс / Тестування / методичка, тестування.doc
Скачиваний:
20
Добавлен:
30.05.2020
Размер:
1.44 Mб
Скачать

Мал. 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 - виконує табличний пошук по ключу (вхідному параметру) і повертає зв'язаний із ним вихідний параметр.