Технологии разработки программного обеспечения


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

x:=f(…).

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

#:=f(x).

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

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

 DЕF(i)) и используется в j -й вершине
 USE(j)).




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



Книжный магазин