Тестирование софта - статьи


         

Метод сокращения набора тестов


Идея предлагаемого метода сокращения набора тестов достаточно проста. Можно предположить, что при тестировании функциональности и структуры программы встречаются тесты, которые инициируют одни и те же последовательности системных вызовов. Метод основан на этом предположении и состоит в "отсеивании" тех тестов, которые не генерируют новые последовательности системных вызовов, то есть не инициируют нового поведения программы.

В предлагаемом методе сокращения набора тестов используется модель поведения программы, построенная в предыдущем разделе. Общий алгоритм работы метода выглядит следующим образом (см. Рис.2):

Рис.2Алгоритм работы метода.

Здесь T - первоначальный набор тестов;
T' - сокращенный набор тестов, T'

T;
t - очередной тест из первоначального набора, t
T;
Mt - модель поведения программы на тесте t;
MT' - множество моделей поведения программы на тестах из T'.
  1. На первом этапе выбирается очередной тест из сокращаемого набора тестов и на нем выполняется тестируемая программа.
  2. Во время выполнения программы строится модель Mt ее поведения на выбранном тесте t.
  3. На третьем этапе проверяется, входит ли модель Mt в множество моделей MT' или нет.
  4. Если модель Mt не входит в множество моделей MT', то она добавляется в множество MT', и тест t добавляется в сокращенный набор тестов T'.
  5. Если набор тестов T не исчерпан, то осуществляется переход к шагу 1, в противном случае сокращенный набор тестов T' считается построенным, и работа метода завершается.

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

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

Содержание  Назад  Вперед