【问题标题】:Does else if condition run if the the first if condition was true in branch coverage testing?如果第一个 if 条件在分支覆盖测试中为真,是否会运行 else if 条件?
【发布时间】:2016-03-21 21:30:03
【问题描述】:

鉴于以下情况:

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

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

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

谢谢:)

【问题讨论】:

    标签: if-statement testing branch test-coverage


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

    • 谢谢你,先生.. 有道理:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 2021-05-25
    • 1970-01-01
    • 2017-11-12
    • 2014-12-20
    • 2019-07-01
    相关资源
    最近更新 更多