Покрытие ветвей

Покрытие решений может быть реализовано двумя тестами, покрывающими либо пути ace и abd, либо пути acd и abe. Если выбрать второе покрытие, то входами двух тестов являются: A=3; B=0; X=3 (путь acd) и A=2; B=1; X=1 (путь

abe). Эти тесты также недостаточны. Например, если выбрано первое покрытие (путь acd),путь, где X не изменяется, будет проверен с вероятностью 50%. Если во втором условии имеется ошибка (например, X<1 вместо X>1), то эта ошибка тестами не будет обнаружена!

Покрытие условий

В программе имеются 4 условия: A > 1, B = 0, A = 2 и X > 1. Следовательно, требуется достаточное число тестов, чтобы реализовать ситуации, где A>1, A£1, B=0 и B¹0 (первое условие) и A=2, A¹2, X>1, X£1 (второе условие). Тесты, удовлетворяющие критерию покрытия условий, и соответствующие им пути:

· A=2; B=0; X=4 (путь ace);

· A=1; B=1; X=1 (путь abd)

Критерий покрытия условий обычно лучше критерия покрытия решений, поскольку оно может вызвать выполнение решений в условиях, не реализуемых при покрытии решений.

С другой стороны, критерий покрытия условий может не удовлетворять критерию покрытия решений. Для рассмотренного примера предложенные тесты покрытия условий покрывают результаты всех решений, но это случайное совпадение. Например, два альтернативных теста: A=1, B= 0, X=3 и

A=2, B=1, X=1 покрывают результаты всех условий, но только два из четырех результатов решений (оба они покрывают путь abe и, следовательно, не выполняют результат истина первого решения и результат ложь второго решения).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: