zoukankan      html  css  js  c++  java
  • 条件覆盖,路径覆盖,语句覆盖,分支覆盖

    转自http://hi.baidu.com/%D2%D7%B1%D8%BA%C6/blog/item/f016729f4fbeaebbc9eaf4df.html

    语句覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每一个语句至少执行一次,其覆盖标准无法发现判定中逻辑运算的错 误;判定覆盖是指选择足够的测试用例,使得运行这些测试用例时,每个判定的所有可能结果至少出现一次,但若程序中的判定是有几个条件联合构成时,它未必能 发现每个条件的错误; 条件覆盖是指选择足够的测试用例,使得运行这些测试用例时,判定中每个条件的所有可能结果至少出现一次,但未必能覆盖全部分支;判定/条件覆盖是使判定中 每个条件的所有可能结果至少出现一次,并且每个判定本身的所有可能结果也至少出现一次;条件组合覆盖是使每个判定中条件结果的所有可能组合至少出现一次, 因此判定本身的所有可能解说也至少出现一次,同时也是每个条件的所有可能结果至少出现一次;路径覆盖是每条可能执行到的路径至少执行一次;其中语句覆盖是 一种最弱的覆盖,判定覆盖和条件覆盖比语句覆盖强,满足判定/条件覆盖标准的测试用例一定也满足判定覆盖、条件覆盖和语句覆盖,条件组合覆盖是除路径覆盖 外最强的,路径覆盖也是一种比较强的覆盖,但未必考虑判定条件结果的组合,并不能代替条件覆盖和条件组合覆盖。 

    举个例子吧 
    if A and B then Action1 
    if C or D then Action2 

    语句覆盖最弱,只需要让程序中的语句都执行一遍即可 。上例中只需设计测试用例使得A=true B=true C=true 即可。 

    分 支覆盖又称判定覆盖:使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假均曾被满足。上例需要设计测试用例使其分别满足下列条件即可 (1)A=true,B=true,C=true,D=false(2)A=true,B=false,C=false,D=false。 

    条 件覆盖:要使得每个判断中的每个条件的可能取值至少满足一次。上例中第一个判断应考虑到A=true,A=false,B=true,B=false第二 个判断应考虑到C=true,C=false,D=true,D=false,所以上例中可以设计测试用例满足下列条件 (1)A=true,B=true,C=true,D=true(2)A=false,B=false,C=false,D=false。 

    路 径覆盖:要求覆盖程序中所有可能的路径。所以可以设计测试用例满足下列条件 (1)A=true,B=true,C=true,D=true(2)A=false,B=false,C=false,D=false(3)A=true,B=true,C=false,D=false(4)A=false,B=false,C=true,D=true。 

    不论那种覆盖方法,都不能保证程序的正确性。 
    一般测试书中讲白盒测试的逻辑覆盖部分时都会对这几种覆盖作比较,而且都给出了例子。

  • 相关阅读:
    Allegro PCB Design GXL (legacy) 使用slide无法将走线推挤到焊盘的原因
    OrCAD Capture CIS 16.6 导出BOM
    Altium Designer (17.0) 打印输出指定的层
    Allegro PCB Design GXL (legacy) 将指定的层导出为DXF
    Allegro PCB Design GXL (legacy) 设置十字大光标
    Allegro PCB Design GXL (legacy) 手动更改元器件引脚的网络
    magento产品导入时需要注意的事项
    magento url rewrite
    验证台湾同胞身份证信息
    IE8对css文件的限制
  • 原文地址:https://www.cnblogs.com/MR-Guo/p/3449368.html
Copyright © 2011-2022 走看看