zoukankan      html  css  js  c++  java
  • 白盒测试的逻辑覆盖法

    逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术。它属白盒测试。逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。

    六种覆盖标准发现错误的能力呈由弱到强的变化:

    1.语句覆盖
    2.判定覆盖
    3.条件覆盖
    4.判定/条件覆盖
    5.条件组合覆盖
    6.路径覆盖
     
    对上述6种覆盖标准的具体介绍:
     
    1.语句覆盖(Statement Coverage):就是设计若干个测试用例,运行被测程序,使得程序中每一可执行语句至少执行一次。这里的“若干个”,意味着使用测试用例越少越好。语句覆盖在测试中主要发现缺陷或错误语句。
                                                       语句覆盖率的公式:语句覆盖率=被评价到的语句数量/可执行语句总数x100%
                                                       语句覆盖的缺点:对程序执行逻辑的覆盖很低。
    2.判定覆盖(Decision coverage):    有时也称分支覆盖,就是指设计若干测试用例,运行被测程序,使得每个判定的取真分支和取假分支至少评价一次。
                                                       判定覆盖的公式: 判定覆盖率=被评价到的判定分支个数/判定分支的总数X100%。
                                                       判定路径覆盖率(DDP)=被评价到的判定路径数量/判定路径的总数X100%。
                                                       判定覆盖的缺点:判定覆盖虽然把程序所有分支均覆盖到了,但其主要对整个表达式最终取值进行度量,忽略了表达式内部取值。
    3.条件覆盖(Condition Coverage): 设计足够多的测试用例,运行被测程序,使得每一判定语句中每个逻辑条件的可能取值至少满足一次。                           
                                                       条件覆盖率的公式:条件覆盖率=被评价到的条件取值的数量/条件取值的总数X100%。
                                                       条件覆盖的缺点:只考虑到每个判定语句中的每个表达式,没有考虑到各个条件分支(或者涉及不到全部分支),即不能够满足判定覆盖。
    4.判定条件覆盖(Condition/ Decision Coverage):
                                                       设计足够多的测试用例,使得判定中的每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果也至少出现一次。
                                                       判定条件覆盖率的公式: 条件判定覆盖率=被评价到的条件取值和判定分支的数量/(条件取值总数+判定分支总数)。
                                                       评定条件覆盖的缺点:没有考虑单个判定对整体结果的影响,无法发现逻辑错误。
    5.条件组合覆盖:                            也称多条件覆盖MCC (Multiple Condition Coverage),设计足够多的测试用例,使得每个判定中条件的各种可能组合都至少出现一次(以数轴形式划分区域,提取交集,建立最少的测试用例)。
                                                       这种方法包含了“分支覆盖”和“条件覆盖”的各种要求。满足条件组合覆盖一定满足判定覆盖、条件覆盖、判定条件覆盖。
                                                       条件组合覆盖率的公式:条件组合覆盖率=被评价到的条件取值组合的数量/条件取值组合的总数。
                                                       条件组合覆盖的缺点:判定语句较多时,条件组合值比较多。
    6.路径覆盖:                                  设计足够多的测试用例,执行程序所有可能的路径。
                                                       路径覆盖率的公式:路径覆盖率=被执行到的路径数/程序中总的路径数。
                                                       优点:路径覆盖是覆盖率最高的一种覆盖技术。
     
                                                       路径覆盖测试步骤:
                                                       1. 将程序流程图转换成控制流图;
                                                       2. 经过语法分析求的路径表达式;
                                                       3. 生成路径图;
                                                       4. 进行路径编码;
                                                       5. 经过译码得到执行的路径;
                                                       6. 通过路径枚举产生特定路径测试用例。
                                                       7. 修正的条件判断覆盖率(MC/DC)
     
  • 相关阅读:
    java smtp 发送邮件
    Java 数据库连接配置
    kettle基础操作数据同步
    Java上传文件到服务器指定位置
    Java 操作word
    Java 导出Zip文件
    Java 遍历二叉树字符串
    一款基于vue.js 和node构建个人博客项目
    CSS选择器介绍和优先级
    CSS Position属性
  • 原文地址:https://www.cnblogs.com/Lizhifei/p/4439356.html
Copyright © 2011-2022 走看看