1

鉴于以下情况:

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

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

注意: if --> else if not if --> if

谢谢 :)

4

1 回答 1

3

有四种执行的可能性(我为最后else一种情况添加了一条语句):

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

星号表示为 4 个场景中的每一个执行/评估哪些语句/条件。

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

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

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

于 2016-03-21T21:42:09.870 回答