logo search
Разработка и стандартизация ПС и ИТ

12. Способ тестирования потоков данных.

В данном способе анализу подвергается информационная струк­тура программы.

Работу любой программы можно рассматривать как обработку потока данных, пе­редаваемых от входа в программу к ее выходу.

Рассмотрим пример.

Пусть потоковый граф программы имеет вид, представленный на рис. 6.8. В нем сплошные дуги — это связи по управлению между операторами в программе. Пунктирные дуги отмечают информационные связи (связи по потокам данных). Обозначенные здесь информационные связи соответствуют следующим допу­щениям:

- в вершине 1 определяются значения переменных а, b;

- значение переменной а используется в вершине 4;

- значение переменной b используется в вершинах 3, 6;

- в вершине 4 определяется значение переменной с, которая используется в вер­шине 6.

Рис. 5.5. Граф программы с управляющими и информационными связями

В общем случае для каждой вершины графа можно записать:

- множество определений данных

DEF(i) = { х | i -я вершина содержит определение х};

- множество использований данных:

USE(i) = { х | i -я вершина использует х}.

Под определением данных понимают действия, изменяющие элемент данных. Признак определения — имя элемента стоит в левой части оператора присваи­вания:

x = f (...)•

Использование данных — это применение элемента в выражении, где происходит обращение к элементу данных, но не изменение элемента. Признак использова­ния — имя элемента стоит в правой части оператора присваивания:

Q: =f(x).

Здесь место подстановки другого имени отмечено Q (Q играет роль метки-заполнителя).

Назовём DU-цепочкой (цепочкой определения-исполъзования) конструкцию [х, i,j], где i,j — имена вершин; х определена в i-й вершине DEF(i)) и используется в j -и вершине USE(i)).

В нашем примере существуют следующие DU-цепочки:

[а, 1,4], [b, 1,3], [b, 1,6], [с, 4, 6].

Способ DU-тестирования требует охвата всех DU-цепочек программы. Таким об­разом, разработка тестов здесь проводится на основе анализа жизни всех данных программы.

Очевидно, что для подготовки тестов требуется выделение маршрутов — путей выполнения программы на управляющем графе. Критерий для выбора пути — по­крытие максимального количества DU-цепочек.

Шаги способа DU-тестирования:

  1. построение управляющего графа (УГ) программы;

  2. построение информационного графа (ИГ);

  3. формирование полного набора DU-цепочек;

  4. формирование полного набора отрезков путей в управляющем графе;

  5. построение маршрутов — полных путей на управляющем графе, покрывающих набор отрезков путей управляющего графа;

  6. подготовка тестовых вариантов.

Достоинства DU-тестирования:

- простота необходимого анализа операционно-управляющей структуры про граммы;

- простота автоматизации.

Недостаток DU-тестирования: трудности в выборе минимального количества максимально эффективных тестов.

Область использования DU-тестирования: программы с вложенными условными операторами и операторами цикла.