insertion_procedure (int a[], int p [], int N)
{
int i,j,k;
for (i=0; i<=N; i++) p[i] = i;
for (i=2; i<=N; i++)
{
k = p[i];
j = 1;
while (a[p[j-1]] > a[k]) {p[j] = p[j-1]; j--}
p[j] = k;
}
}
Я должен найти цикломатическую сложность для этого кода и затем предложить некоторые белые тестовые сценарии поля и случаи функционального тестирования. Но я испытываю затруднения при создании CFG для кода.
Ценил бы некоторую справку на тестовых сценариях также.
Начните с нумерации операторов:
insertion_procedure (int a[], int p [], int N)
{
(1) Int i,j,k;
(2) for ((2a)i=0; (2b)i<=N; (2c)i++)
(3) p[i] = i;
(4) for ((4a)i=2; (4b)i<=N; (4c)i++)
{
(5) k=p[i];j=1;
(6) while (a[p[j-1]] > a[k]) {
(7) p[j] = p[j-1];
(8) j--
}
(9) p[j] = k;
}
Теперь вы можете четко видеть, какой оператор выполняется первым, а какой последним и т. Д., Поэтому рисование cfg становится простым.
Теперь для вычисления цикломатической сложности вы используете один из трех методов:
Цикломатическая сложность равна 4.
1 для процедуры +1 для цикла for +1 для цикла while +1 для условия if цикл while.