站点图标

逻辑覆盖

一、问题实例

  看个例子:

if (A and B)    #Judge 1
    # do sth 1
if (C or D)     #judeg 2
    # do sth 2

二、覆盖

2.1 语句覆盖

  让上述的DS1和DS2都能执行即可:

2.2 判定覆盖

  每个判定分支至少经历一次真、假分支。对于上述条件,我们只要让J1和J2都存在真、假各一次即可:

  其中各参数值可以变化,只要让J1和J2都进行过真假判断即可。

2.3 条件覆盖

  让条件ABCD都能取到一次真假即可,即A应该取到true和false两种,其他的条件也一样:

  这样我们就给所有条件取了t/f,满足条件覆盖。

2.4 判定条件覆盖

  同时满足判定覆盖和条件覆盖。

2.5 条件组合覆盖

  判定条件之间的笛卡尔积,即A{true, false} x B{true, false} x c{true, false} x D{true, false}

  1. A(true), B(true), C(true), D(true)
  2. A(true), B(true), C(true), D(false)
  3. A(true), B(true), C(false), D(true)
  4. A(true), B(true), C(true), D(false)

2.6 路径覆盖

  判定分支J之间的笛卡尔积,J1{true, false} x J2{ture, fasle}:

退出移动版