如果在分支覆盖测试中第一个if条件为真,则条件是否运行?

时间:2016-03-21 21:30:03

标签: if-statement testing branch test-coverage

鉴于以下情况:

    If (condition1)
        statement..
    Else if (condition2)
        statement..
    Else if (condition3)
        statement..    
    else end

我的问题是 - >在行/分支覆盖测试中,如果第一个条件为真,则第二个条件是否可以运行?

注意:if - >否则,如果 - >如果

谢谢:)

1 个答案:

答案 0 :(得分:3)

执行有四种可能性(我为最后一个else案例添加了一个声明):

                        | 1 | 2 | 3 | 4 |
If (condition1)         | * | * | * | * | 
    statement..         | * |   |   |   |
Else if (condition2)    |   | * | * | * |
    statement..         |   | * |   |   |
Else if (condition3)    |   |   | * | * |
    statement..         |   |   | * |   |
else                    |   |   |   | * |
    statement...        |   |   |   | * |
end if                  | * | * | * | * |

星号表示为4种情景中的每一种执行/评估哪些陈述/条件。

只要执行其中一个缩进语句,就不会在该构造中评估其他条件或语句。

在具有分支覆盖的测试中,测试包括几个不同的状态,因此条件(希望)有时是假的,有时是真的,每个分支至少在一次测试中执行。如果是这种情况,那么您有分支覆盖

但这并不意味着在这些测试的 一个 期间,违反了上述描述的架构。同样在这些测试运行中,如果一个if条件返回true,则其余条件仍未评估。