Page 7 - И.В. Рудаков, А.В. Ребриков - ПРОВЕРКА ВЫПОЛНЕНИЯ ФУНКЦИОНАЛЬНЫХ ТРЕБОВАНИЙ К АЛГОРИТМУ НА ОСНОВЕ СТРУКТУРНОЙ ГЕНЕРАЦИИ МОДУЛЬНЫХ ТЕСТОВ

где
M
(
G
)
цикломатическая сложность алгоритма
G
;
K
число
уровней абстракций, при которых цикломатическая сложность наблю-
даемого алгоритма меньше
M
max
.
Поскольку цикломатическое число есть верхняя оценка числа пу-
тей, то она является показателем эффективности тестирования. При
этом при разбиении алгоритма на меньшие части суммарная циклома-
тическая сложность снижается за счет удаления ребер, ранее связы-
вающих алгоритмы, что и обусловливает потерю точности при таком
подходе.
С учетом всего сказанного выше метод структурной генерации опи-
сывается следующим образом:
Входные данные
:
граф выполнения программы
G
,
условия кор-
ректности
σ
.
Выходные данные
:
наборы входных параметров исходной про-
граммы
I
.
Обозначение переменных
:
S
v
множество операторов, завися-
щих от операторов, которые изменяют значение переменной
v
;
S
множество решаемых систем уравнений;
I
множество входных зна-
чений алгоритма.
1)
I
= []
,
S
= []
,
P
= []
.
2)
построить алгоритм
G
{
σ
0
}
;
3)
получить алгоритм
G
0
=
G
σ
C
из алгоритма
G
σ
0
и все части
алгоритма
G
σ
0
G
k
,
не попавшине в алгоритм
G
0
из-за нарушения ци-
кломатической сложности;
4)
8
i
= 0
..
K
:
pathes
=
PATHGEN
(
G
)
,
P
pathes
;
5)
8
p
2
P
получить систему:
s
=
INPUTGEN
(
p
)
,
8
n
2
p
8
p
v
2
2
σ
(
n
)
8
v
2
p
v
:
n
2
S
v
добавить в
s
отрицание предиката
p
v
,
если его
еще нет в
s
,
S
s
;
6)
8
s
2
S
получить, если возможно, решение:
i
=
SOLV E
(
s
)
,
I
i
.
Вернуть
I
.
Устранение цикломатической сложности возможно не только за
счет недобавления операторов в уровень абстракции
σ
C
по причине
нарушения цикломатической сложности, но и на основе иных условий.
Эти методы можно классифицировать следующим образом [6, 12, 13].
Метод группового исключения.
В итоговый уровень абстракции
не включаются те переменные и операторы, исключение которых из-
меняет уровень цикломатической сложности менее заданного порога.
Эффективен только в том случае, когда покрытие по данным не корре-
лиует с покрытием путей, в противном случае точность получаемого
набора тестов мала.
Метод итеративного исключения.
На каждой итерации отбора в
уровень абстракции не включается та переменная, исключение кото-
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012
73