Базовый блок покрытие - какое точное определение?

Допустим, у меня есть этот фрагмент кода C / C ++:

int c = 12; // Should I count this line as basic block?
if (a != 0 && b > 10) {
    c += (a + b);
} else {
    c += 1;
}
printf("%d", c); // Should I count this line as basic block?

Каково покрытие базовых блоков для тестового примера a = 1, b = 12 ?

Это 75% или 50%?

Следует ли считать первую и последнюю строки базовыми блоками? Каково точное определение базового блока ?

Еще одна путаница:

int c = 16;
d += c;

Это один базовый блок или 2 базовых блока? Следует ли считать каждую строку базовым блоком?

6
задан TylerH 3 February 2017 в 21:23
поделиться