Генератор тестів InputSpace TestGenerator. Частина 2, Різне, Програмування, статті

Модель програмного гнізда

Послідовності вводів (треки)


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


Рисунок. 2. Приклад треку.


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


У таблиці 4 наведено уявлення трека для прикладу на малюнку 2.















Input1

Input2

Input3

Input4

Input5

2

1

4+

0

3

 

Таблиця 4. Приклад вектора послідовності введення.


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


Домени і представляють тест-значення


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


Домени (відповідно і гнізда) розбиваються на два істотно розрізняються типи:


1. домени з незалежними параметрами входів;


2. домени з взаємозалежними параметрами входів;


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


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


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


Комплект опорних тест-значень арифметичного типу


Основною характеристикою змінних арифметичного типу є діапазон зміни або інтервал допустимих значень. Інтервал може бути розбитий на окремі субінтервали (субдіапазони). Субінтервал є класом еквівалентності входу.


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


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


Граничні зміщення


Кордон суміжних субінтервалов повинна задовольняти умові Si+1 > Fi , Де Fi – Кінець i-го субінтервала; Si+1 – Початок (i +1)-го субінтервала. Для цілого типу це відповідає наступному співвідношенню граничних значень суміжних субінтервалов Si+1 = Fi + 1. Для речових типів Si+1 = Fi + Ε, де ε – локальний епсилон – логічна або машинне нескінченно мала:


ε(V) = (min ε / V+ε > V && V-ε < V},


f(Si+1) = f(Fi).


Існування вищенаведеного співвідношення між граничними значеннями суміжних інтервалів дозволяє задавати для них тільки одне «опорне» значення V, що ілюструється наступним малюнком 3.


Малюнок 3: граничні зсуву.


Для отримання граничних зсувів необхідно тільки вказати, з якою з кордонів в точності збігається це значення: Fi або Si+1 ? У першому випадку Si+1 = V, Fi = V – ε, а в другому Fi = V, Si+1 = V + ε.


Тест-значення перечислимого типу


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


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


Генерація тест-наборів в InputSpace TestGenerator


Тест-приклади


Одиницею тестування в InputSpace TestGenerator є програмне гніздо (складається не менш ніж з 2 входів). Одиничний або елементарний тест (тест-приклад) включає вектор тест-значень (ВТЗ) і вектор тест-послідовності вводів (ВТПВ). У таблиці 5 наведено зразок елементарного тест-приклад для ВТПВ, наведеного в прикладі таблиці 4. Тут Value ij – j-е тест-значення з комплекту опорних тест-значень i-го входу.


Таблиця 2. Зразок тест-прикладу.





















Input1

Input2

Input3

Input4

Input5

2

1

4+

0

3

Value 15

Value 21

Value 37

Default

Value 52

 


Методи генерації


В основі InputSpace TestGenerator лежать евристичні методи ранжирування повного безлічі векторів тест-значень за ступенем передбачуваної ефективності виявлення помилок програми.


Основою для генерації ВТЗ є комплект представляють (опорних) тест-значень. В інструменті InputSpace TestGenerator використовуються два класи методів генерації ВТЗ.


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


Повне транс-комбінування тест-значень – генерація різних поєднань тест-значень з комплектів опорних тест-значень входів програмного гнізда по одному значенню для кожного входу в поєднанні. В повному безлічі транс-комбінацій гнізда кожне тест-значення з комплекту кожного входу повинно поєднуватися з усіма тест-значеннями комплектів інших входів. Якщо входи (імена або ідентифікатори входів) розглядати як атрибути, то результат такого комбінування можна представити у формі реляційної таблиці – таблиці комбінацій тест-значень, в якій кожному поєднанню значень відповідає рядок – Кортеж або вектор КТЗ (ВКТЗ). У концептуальному плані комбінування моделює потенційну «свободу» користувача в специфікації інформаційного завдання програмної системі.


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


В основі побудови підмножин ВТЗ лежать наступні класи евристичних методів:



Формування тестових підмножин


Тест-підмножини ВТЗ формуються шляхом:



Тест-підмножини ВТЗ можуть формуватися шляхом накладення базових методів. Тест-набір утворюється як пряме твір підмножин ВТПВ і ВТЗ.


Комбінаційна генерація


Метод граничних категоріїї


Кожному тест-значенням відповідно до інтерпретацією його як точки інтервалу осі значень арифметичного типу можна приписати граничний тип. Символічні позначення граничних типів використовуються в InputSpace TestGenerator в якості префіксів імен значень (або маркерів) значень в таблицях ВТЗ. У прикладі таблиці 3: Mn_ – Гранична точка початку діапазону (мінімум), Mx_ – Гранична точка кінця діапазону (максимум), Md_ – Внутрішня точка діапазону.


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


Рисунок 4: приклад граничних категорій.


Для охоплення повного безлічі комбінацій граничних типів природно ввести 12 граничних категорій, які розбиваються на 3 типи: ПОЗА, КОРДОН, ВСЕРЕДИНІ. На малюнку 4 приведена ілюстрація для прикладу категорій типу КОРДОН (таблиця 6).


Таблиця 3. Приклади ВКТЗ типу КОРДОН.























Гранична категорія

Input1

Input2

Input3

BN


Mx_  Value 12


Mn_   Value 2 2


Mx_  Value 34

BA


_Md   Value 11


Mn_   Value 22


Mx_   Value 3 4

BF


_Md   Value 15


_Md   Value 2 7


Mn_   Value 22


Сукупність введених граничних категорій повністю охоплює повне безліч комбінацій тест-значень. Запроваджена геометрична інтепретація за аналогією з «одновимірними» методами представляє інтерес з точки зору категоризації тест-комбінацій за величиною апріорного ризику прояву дефекту програмного продукту. Так, за ступенем «концентрації» екстремальних точок виду КОРДОН можна ранжувати наступним чином: BN > BA > BF .


Для подальшої деталізації підмножин ВКТЗ вводяться додаткові специфікують характеристики граничних категорій (екстремальність, число внегранічних околиць та ін.)


Кластеризація на граничні категорії дозволяє специфікувати і отримати будь-яке потрібне підмножина ВКТЗ


Метод профілів використання


Ранжування


Профіль використання програмного гнізда дозволяє впорядкувати ВТЗ за актуальністю тестування відповідних областей вхідних доменів у зв’язку з частотою використання кінцевим користувачем (або ризиками).


Для отримання профілів необхідно провести ранжування допустимих областей зміни значень відповідних змінних. При відсутності частотних розподілів можливе застосування експертних оцінок.


Для ранжирування квазінепереривних змінних допустиму область зміни розбиваємо на інтервали xi (I – порядковий номер інтервалу). Кожному з інтервалів приписуємо ранг пріоритету, ri, Тобто величину, що дозволяє впорядкувати інтервали в порядку убування частоти їх використання користувачем або критичності – ризику прояви збою (або, нарешті, спільного обліку частоти і критичності).


Для ранжирування дискретних змінних (входів перечислимого типу) кожному тест-значенням доводиться приписати індивідуальне значення рангу пріоритету.


Профілем використання входу ми будемо називати залежність


ri = f (xi).


Число інтервалів визначає детальність опису профілю використання. Для завдання рангу пріоритету, r, ми використовуємо для наочності інтервал r100 Є (0; 100]. Входимо в цілому можна приписати також ранги або ваги, vn (vn Є (0;100]).


Рейтинги ВТЗ


Використовуючи ранги ваги входів і ранги значень, можна ввести ранги пріоритету ВТЗ за допомогою рейтингової заходи


R100 = 1/k ∑n vn *(rn /100),


де



З визначення видно, що R100 Є (0;100].


Побудувавши гістограму рангів ВТЗ, можна визначити межу рангів, що забезпечує бажаний розмір підмножини високопріоритетних ВТЗ, і виділити відповідну підмножину.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*