Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
10
Добавлен:
30.05.2020
Размер:
133.63 Кб
Скачать

4 Стохастичні критерії (клас III)

Стохастичне тестування застосовується при тестуванні складних програмних комплексів - коли набір детермінованих тестів (X, Y) має величезну потужність. У випадках, коли подібний набір неможливо розробити й виконати на фазі тестування, можна застосувати наступну методику.

  • Розробити програми - імітатори випадкових послідовностей вхідних сигналів {x}.

  • Обчислити незалежним способом значення {y} для відповідних вхідних сигналів {x} й одержати тестовий набір (X,Y).

  • Протестувати додаток на тестовому наборі (X,Y), використовуючи два способи контролю результатів:

Детермінований контроль - перевірка відповідності обчисленого значення значенню y, отриманому в результаті прогону тесту на наборі {x} - випадкової послідовності вхідних сигналів, що згенеровані імітатором.

Стохастичний контроль - перевірка відповідності безлічі значень {yв}, отриманого в результаті прогону тестів на наборі вхідних значень {x}, заздалегідь відомому розподілу результатів F(Y).

У цьому випадку безліч Y невідома (її обчислення неможливе), але відомий закон розподілу даної безлічі.

Критерії стохастичного тестування

  • Cтатичні методи закінчення тестування - стохастичні методи прийняття рішень про збіг гіпотез про розподіл випадкових величин. До них належать широко відомі: метод Стьюдента ( St ), метод Хі-квадрат ( ) і т.п.

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

Рис. 3.1. Залежність швидкості виявлення помилок від часу виявлення

При формалізації моделі швидкості виявлення помилок (мал. 3.1) використалися наступні позначення:

N - вихідне число помилок у програмному комплексі перед тестуванням,

C - константа зниження швидкості виявлення помилок за рахунок знаходження чергової помилки,

t1, t2,... tn - кортеж зростаючих інтервалів виявлення послідовності з n помилок,

T - час виявлення n помилок.

Якщо допустити, що за час T виявлено n помилок, то справедливо співвідношення (1), яке стверджує, що добуток швидкості виявлення i помилки й часу виявлення i помилки є 1 по визначенню:

(N – i + 1) * C * ti = 1 (1)

У цьому припущенні справедливе співвідношення (2) для n помилок:

N*C*t1 + (N - 1) * C * t2 + … (N – n + 1) * c * tn = n (2)

N * C * (t1 + t2 + … + tn) – C * Σ(i-1)ti = n

NCT – C * Σ(i - 1)ti = n

Якщо з (1) визначити ti і просумувати від 1 до n, то прийдемо до співвідношення (3) для часу T виявлення n помилок

Σ1 / (N – i + 1) = TC (3)

Якщо з (2) виразити C, приходимо до співвідношення (4):

C = n / (NT - Σ(i - 1)ti) (4)

Нарешті, підставляючи C в (3), одержуємо остаточне співвідношення (5), зручне для оцінок:

Σ1 / (N – i + 1) = n / (N – 1/T * Σ(i - 1)ti)) (5)

Якщо оцінити величину N приблизно, використовуючи відомі методи оцінки числа помилок у програмі або дані про щільність помилок для проектів розглянутого класу з історичної бази даних проектів, і, крім того, використати поточні дані про інтервали між помилками t1, t2 ... tn, отримані на фазі тестування, тj, підставляючи ці дані в (5), можна одержати оцінку tn+1 – тимчасового інтервалу необхідного для знаходження й виправлення чергової помилки (майбутньої помилки).

Якщо tn+1>Td - припустимого часу тестування проекту, то тестування закінчуємо, у противному випадку продовжуємо пошук помилок.

Спостерігаючи послідовність інтервалів помилок t1, t2 … tn, і час, витрачений на виявлення n помилок T = Σ ti, можна прогнозувати інтервал часу до наступної помилки й уточнювати відповідно до (4) величину C.

Соседние файлы в папке Тестування