Критерий покрытия решений
Критерий покрытия операторов
Подразумевает выполнение каждого оператора программы по крайней мере один раз.
Например:
void func(int a, int b, float x)
{
if(a>1 && b==0) x = x/a;
if(a==2 || x>1) x++;
}
1: a = 2, b = 0, x = 3 a, c, e
Чтобы выполнить каждый оператор не менее одного раза, нужно составить единственный тест со следующими значениями: a = 2, b = 0, x = 3.
Данный поход обладает недостатками. Например, если в условии x>1 программист ошибется и напишет x<1, x<-1, то с помощью этого теста данная ошибка не будет обнаружена. Если a>1 и b=0, ошибка также не найдется.
В соответствии с этим критерием, необходимо составить такое число тестов, при которых каждое условие программы примет значение "истина" или "ложь":
2: a = 3, b = 1, x = 0 a, b, d
либо
1: a = 3, b = 0, x = 0 a, c, d
2: a = 0, b = 1, x = 2 a, b, e