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

ce076b8f

Условия проведения эксперимента: тестовые программы и тестовые наборы


Эксперимент проводился в операционной системе FreeBSD 5.3; для сбора трасс использовалась команда ktrace, входящая в состав операционной системы. Длина K используемых последовательностей составляла 15 системных вызовов.

Для проведения эксперимента в качестве объекта тестирования использовались программа nametbl, входящая в пакет программ, впервые предложенный в [] и впоследствии использовавшийся в [,,] для исследования методов оценки адекватности тестовых наборов. Программа nametbl считывает команды из файла и выполняет их с целью тестирования нескольких функций. Тестируемые функции реализуют работу с таблицей символов для некоторого языка программирования. Таблица символов хранит для каждого символа его имя и тип. Команды, считываемые из файла, позволяют добавить в таблицу новый символ, указать тип ранее введенного символа, осуществить поиск символа и распечатать таблицу символов. Общий объем исходного текста программы составляет 356 строк. Основной причиной выбора этой программы для проведения эксперимента послужило то, что ее исходные тексты и руководство по созданию наборов тестов находятся в открытом доступе , и, таким образом, описываемый эксперимент может быть повторен независимо.

Для построения тестов использовалось разбиение входных данных программы nametbl на домены, предложенное в работе []. В этой работе было предложено 4 "измерения" входных данных, в трех из которых было выделено 7 доменов, а в четвертом - 5 доменов. В данной работе было использовано это разбиение, в каждом домене было выбрано по одному значению, и в итоге был сгенерирован пул из 1715 разных тестов.

Для определения параметров метода были использованы следующие индикаторы:

  1. размер сокращенного набора тестов;
  2. коэффициент сокращения набора тестов в процентном выражении:
    100 × (1 - Sizereduced/Sizeinitial), где
    Sizeinitial означает размер исходного набора тестов,
    Sizereduced - размер сокращенного набора тестов;
  3. количество обнаруженных ошибок;
  4. коэффициент обнаружения ошибок в процентном выражении:
    100 × (FaultsDetectedreduced/FaultsDetectedinitial), где
    FaultsDetectedinitial означает количество ошибок, обнаруживаемых исходным набором тестов,
    FaultsDetectedreduced - количество ошибок, обнаруживаемых сокращенным набором тестов.

Уровень обнаружения ошибок измерялся исходя из следующего принципа эквивалентности тестовых наборов: два набора тестов считаются эквивалентными при обнаружении некоторой ошибки, если каждый набор содержит по крайней мере один тест, обнаруживающий эту ошибку (в англоязычной литературе такой принцип носит название per-test-suite basis []). Такой подход применялся в работах [, ].

Содержание раздела