Главная > Отладка и тестирование приложений в среде Visual Studio 2005
<< Предыдущий параграф Следующий параграф >>
Пред.
След.
Макеты страниц

Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

3.2.3. Стохастические критерии (класс III)

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

1. Разработать программы - имитаторы случайных последовательностей входных сигналов {х}.

2. Вычислить независимым способом значения {у} для соответствующих входных сигналов {х} и получить тестовый набор (X,Y).

3. Протестировать приложение на тестовом наборе (X,Y), используя два способа контроля результатов:

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

Стохастический контроль - проверка соответствия множества значений {ув}, полученного в результате прогона тестов на наборе входных значений

{х}, заранее известному распределению результатов F(Y).

В этом случае множество Y неизвестно (его вычисление невозможно), но известен закон распределения данного множества.

Критерии стохастического тестирования

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

Метод оценки скорости выявления ошибок основан на модели скорости выявления ошибок, согласно которой тестирование прекращается, если оцененный интервал времени между текущей ошибкой и следующей слишком велик для фазы тестирования приложения.

Рис. 10. Зависимость скорости выявления ошибок от времени выявления

При формализации модели скорости выявления ошибок (Рис. 10) используют следующие обозначения:

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

С - константа снижения скорости выявления ошибок за счет нахождения очередной ошибки,

t1,t2,...tn - кортеж возрастающих интервалов обнаружения последовательности из n ошибок,

T - время выявления n ошибок.

Если допустить, что за время T выявлено n ошибок, то справедливо соотношение (3.2-1), утверждающее, что произведение скорости выявления одной i- той ошибки и времени выявления этой i-той ошибки есть 1 по определению:

(3.2-1) (N-i+1)*C*ti = 1. Отсюда для n ошибок справедливо соотношение (3.2-2):

(3.2-2           N*C*t1+(N-1)*C*t2+...+(N-(n-1))*C*tn=n

                                   N*C*(t1+t2+...+tn) – C*Σi [(i-1)*ti] = n, i=1..n

                                   N*C*T - C* Σi[(i-1)*ti] = n

Если из (3.2-1) определить ti и просуммировать от 1 до n, то придем к соотношению (3.2-3) для времени T выявления n ошибок

(3.2-3)       Σi[1/(N-i+1)] = T*C, i=1..n

Если из (3.2-2) выразить С, приходим к соотношению (3.2-4):

(3.2-4)       C = n/(N*T - Σi[(i-1)*ti)], i=1..n

Наконец, подставляя С в (3.2-3), получаем окончательное соотношение (3.2-5), удобное для оценок:

(3.2-5)        Σi[1/(N-i+1)] = n/(N - (1/T)* Σi[(i-1)*ti])

Если оценить величину N приблизительно, используя известные методы оценки числа ошибок в программе [4] или данные о плотности ошибок для проектов рассматриваемого класса из исторической базы данных проектов. И, кроме того, использовать текущие данные об интервалах между ошибками t1,t2...tn, полученные на фазе тестирования, то, подставляя эти данные в (3.2-5), можно получить оценку tn+1 временного интервала необходимого для нахождения и исправления очередной ошибки (будущей ошибки).

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

Наблюдая последовательность интервалов ошибок t1,t2...tn, и время, потраченное на выявление n ошибок T= Σiti, можно прогнозировать интервал времени до следующей ошибки и уточнять в соответствии с (3.2-4) величину С.

 

Categories

1
Оглавление
email@scask.ru