Основы тестирования программного обеспечения


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


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

  • Разработать программы - имитаторы случайных последовательностей входных сигналов {x}.
  • Вычислить независимым способом значения {y} для соответствующих входных сигналов {x} и получить тестовый набор (X,Y).
  • Протестировать приложение на тестовом наборе (X,Y), используя два способа контроля результатов:
    • Детерминированный контроль - проверка соответствия вычисленного значения yв
      {y} значению y, полученному в результате прогона теста на наборе {x} - случайной последовательности входных сигналов, сгенерированной имитатором.
    • Стохастический контроль - проверка соответствия множества значений {yв}, полученного в результате прогона тестов на наборе входных значений {x}, заранее известному распределению результатов F(Y).

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

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

  • Cтатистические методы окончания тестирования - стохастические методы принятия решений о совпадении гипотез о распределении случайных величин. К ним принадлежат широко известные: метод Стьюдента (St), метод Хи-квадрат (?2) и т.п.
  • Метод оценки скорости выявления ошибок - основан на модели скорости выявления ошибок [12], согласно которой тестирование прекращается, если оцененный интервал времени между текущей ошибкой и следующей слишком велик для фазы тестирования приложения.

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

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

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

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

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

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




- Начало -  - Назад -  - Вперед -