По веткам условных операторов (Decision Coverage)

Для обеспечения полного покрытия по данному методу каждая точка входа и выхода в программе и во всех ее функциях должна быть выполнена по крайней мере один раз и все логические выражения в программе должны принять каждое из возможных значений хотя бы один раз, таким образом для покрытия по веткам требуется как минимум два тестовых примера.

Также данный метод называют: branch coverage, all-edges coverage, basis path coverage, DC, C2, decision-decision-path.

В отличие от предыдущего уровня покрытия данный метод учитывает покрытие условных операторов с пустыми ветками. Так, для покрытия по веткам участка программного кода

a = 0;

if (condition) {

a = 1;

}

необходимы два тестовых примера:

1. Вход: condition = true; Ожидаемый выход: a = 1;

2. Вход: condition = false; Ожидаемый выход: a = 0;

Особенность данного уровня покрытия заключается в том, что на нем не учитываются логические выражения, значения компонент которых получаются вызовом функций. Например, на следующем фрагменте программного кода

if (condition1 && (condition2 || function1()))

statement1;

else

statement2;

полное покрытие по веткам может быть достигнуто при помощи двух тестовых примеров:

1. Вход: condition1 = true, condition2 = true

2. Вход: condition1 = false, condition2 = true/false (любое значение)

В обоих случаях не происходит вызова функции function1(), хотя покрытие данного участка кода будет полным. Для проверки вызова функции function1() необходимо добавить еще один тестовы й пример (который, однако, не улучшает степени покрытия по веткам):

3. Вход: condition1 = true, condition2 = false.

По компонентам логических условий

Для более полного анализа компонент условий в логических операторах существует несколько методов, учитывающих структуру компонент условий и значения, которые они принимают при выполнении тестовых примеров.


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



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