zoukankan      html  css  js  c++  java
  • 测试覆盖率

    覆盖率是用来度量测试完整性的一个手段。覆盖率是测试技术有效性的一个度量。

    计算公式:覆盖率=(至少被执行一次的item数)/item的总数

    覆盖率按照测试方法大体上可以划分为三类:

    1)白盒覆盖率:也叫代码覆盖率或结构化覆盖率。白盒覆盖率中最常见的是逻辑覆盖率。

         逻辑覆盖率包括:语句覆盖(可执行的语句);

                                      判定覆盖(判定结果);

                                      条件覆盖(每个条件分为true、false);

                                      判定条件覆盖(将判定和条件覆盖的分子、分母分别相加);

                                      条件组合覆盖(将每组判定结果全排列后相加);

                                      路径覆盖。

         其他覆盖如指令块覆盖、判定路径覆盖等。

         例:

         

         针对上图程序,执行测试用例(A=3,B=0,X=1)分别计算这种情况下的语句覆盖率、判定覆盖率、条件覆盖率、判定条件覆盖率、条件组合覆盖率和路径覆盖率。

         语句覆盖率:1/2;

         判定覆盖率:2/4;

         条件覆盖率:4/8;

         判定条件覆盖率:6/12;

         条件组合覆盖率:2/8;

         路径覆盖率:1/4;

    小结:

    每种覆盖率度量的时候都有其局限性,因此要把各种覆盖率组合起来对测试进行度量。

    各种结构测试方法都不能保证程序的正确性,但是测试的目的并非要证明程序的正确性,而是要尽可能找出程序中的错误。

    2)灰盒覆盖率:一般指函数覆盖、接口覆盖。

    3)黑盒覆盖率:主要是功能覆盖率。

         功能覆盖率中最常见的是需求覆盖,其含义是通过设计一定的测试用例,要求每个需求点都被测试到。

    测试用例设计不能一味追求覆盖率,因为测试成本会随覆盖率的增加而增加。

  • 相关阅读:
    mysql/mariadb学习记录——查询2
    mysql/mariadb学习记录——查询
    touchSwipe 上下左右滑动,二指缩放 效果不好。
    c# 调用c++ 使用指针传递的时候
    c# 调用 matlab 引发初始化错误 异常
    创建非主键唯一约束
    sql 中 如果添加 时间戳 字段 timestamp
    JS frame 跨域 传值
    VS 附加进程调试
    Aspose.words 替换字符 操作
  • 原文地址:https://www.cnblogs.com/spring1122/p/9352909.html
Copyright © 2011-2022 走看看