2013-08-26 2 views
0

Есть ли ситуация, когда вы можете иметь покрытие 100% -ного покрытия и все еще иметь пути DU, которые не были протестированы? Если да, могу ли я, пожалуйста, простой пример?Отрасль отделения и пути DU

Благодаря

ответ

2

Если я понимаю пути определения назначения правильно (для каждого заданного значения там должно быть тестами, которые идут в точки, где используются значение), я думаю, что покрытие филиала этого не гарантирует. Рассмотрим следующую программу:

z = "foo" 

if x > 10: 
    z = "bar" 
else 
    pass 

if y > 5: 
    print z 
else 
    pass 

Теперь, если мы тестируем с (х = 0, у = 10) и (х = 20, у = 0), мы покрываем все ветви. Первый тест будет оценивать ложную ветвь в первой if и true ветке во второй if. Второй тест будет оценивать истинную ветвь в первой ветке if и false во втором случае if. Все ветви покрыты, но нет теста, где печать z приведет к «бару».

+0

ах да, поэтому это незаконное использование, потому что оно еще не определено. очень хороший пример спасибо. – clay

+0

z был определен в начале кода, но значение может измениться. Отличие состоит в том, что выбор ветвей не использует все определенные переменные. – Edu

Смежные вопросы