51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 3492|回复: 0
打印 上一主题 下一主题

[资料] 白盒测试的实施步骤和六种覆盖方法(二)

[复制链接]
  • TA的每日心情
    奋斗
    2016-6-13 14:30
  • 签到天数: 12 天

    连续签到: 2 天

    [LV.3]测试连长

    跳转到指定楼层
    1#
    发表于 2008-8-20 23:27:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    3、条件覆盖
      1)主要特点:条件覆盖要求设计足够多的测试用例,使得判定中的每个条件获得各种可能的结果,即每个条件至少有一次为真值,有一次为假值。
      2)用例设计:

    X
    Y
    路径
    1
    90
    70
    OBC
    2
    40

    OBD

      3)优点:显然条件覆盖比判定覆盖,增加了对符合判定情况的测试,增加了测试路径。
      4)缺点:要达到条件覆盖,需要足够多的测试用例,但条件覆盖并不能保证判定覆盖。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。
      4、判定/条件覆盖
      1)主要特点:设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。
      2)用例设计:

    X
    Y
    路径
    1
    90
    90
    OAE
    2
    50
    50
    OBDE
    3
    90
    70
    OBCE
    4
    70
    90
    OBCE

      3)优点:判定/条件覆盖满足判定覆盖准则和条件覆盖准则,弥补了二者的不足。
      4)缺点:判定/条件覆盖准则的缺点是未考虑条件的组合情况。
      5、组合覆盖
      1)主要特点:要求设计足够多的测试用例,使得每个判定中条件结果的所有可能组合至少出现一次。
      2)用例设计:

    X
    Y
    路径
    1
    90
    90
    OAE
    2
    90
    70
    OBCE
    3
    90
    30
    OBDE
    4
    70
    90
    OBCE
    5
    30
    90
    OBDE
    6
    70
    70
    OBDE
    7
    50
    50
    OBDE

      3)优点:多重条件覆盖准则满足判定覆盖、条件覆盖和判定/条件覆盖准则。更改的判定/条件覆盖要求设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身的所有可能结果也至少出现一次。并且每个条件都显示能单独影响判定结果。
      4)缺点:线性地增加了测试用例的数量。
      6、路径覆盖
      1)主要特点:设计足够的测试用例,覆盖程序中所有可能的路径。
      2)用例设计:

    X
    Y
    路径
    1
    90
    90
    OAE
    2
    50
    50
    OBDE
    3
    90
    70
    OBCE
    4
    70
    90
    OBCE

      3)优点:这种测试方法可以对程序进行彻底的测试,比前面五种的覆盖面都广。
      4)缺点:由于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。而在有些情况下,一些执行路径是不可能被执行的,如:
    If (!A)B++;
    If (!A)D--;
      这两个语句实际只包括了2条执行路径,即A为真或假时候对B和D的处理,真或假不可能都存在,而路径覆盖测试则认为是包含了真与假的4条执行路径。这样不仅降低了测试效率,而且大量的测试结果的累积,也为排错带来麻烦。
      总结
      白盒测试是一种被广泛使用的逻辑测试方法,是由程序内部逻辑驱动的一种单元测试方法。只有对程序内部十分了解才能进行适度有效的白盒测试。但是贯穿在程序内部的逻辑存在着不确定性和无穷性,尤其对于大规模复杂软件。因此我们不能穷举所有的逻辑路径,即使穷举也未必会带来好运(穷举不能查出程序逻辑规则错误,不能查出数据相关错误,不能查出程序遗漏的路径)。
      那么正确使用白盒测试,就要先从代码分析入手,根据不同的代码逻辑规则、语句执行情况,选用适合的覆盖方法。任何一个高效的测试用例,都是针对具体测试场景的。逻辑测试不是片面的测试正确的结果或是测试错误的结果,而是尽可能全面地覆盖每一个逻辑路径。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-3 16:17 , Processed in 0.077851 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表