zoukankan      html  css  js  c++  java
  • 白盒测试

    逻辑覆盖测试是通过对程序逻辑结构的遍历实现程序的覆盖。从覆盖源代码的不同程度可以分为以下六个标准:语句覆盖、判定覆盖(又称为分支覆盖)、条件覆盖、判定-条件覆盖(又称为分支-条件覆盖)、条件组合覆盖和路径覆盖。

      先看一下具体例子的源代码(C语言):

       1. /*
       2.  *  白盒测试逻辑覆盖测试范例
       3.  *  作者:胡添发(hutianfa@126.com
       4.  */
       5. int logicExample(int x, int y)
       6. {
       7.     int magic=0;
       8.     if(x>0 && y>0)
       9.     {
      10.         magic = x+y+10; // 语句块1
      11.     }
      12.     else
      13.     {
      14.         magic = x+y-10; // 语句块2
      15.     }
      16.    
      17.     if(magic < 0)
      18.     {
      19.         magic = 0;         // 语句块3
      20.     }
      21.     return magic;       // 语句块4
      22. }

      一般做白盒测试不会直接根据源代码,而是根据流程图来设计测试用例和编写测试代码,在没有设计文档时,要根据源代码画出流程图:

      做好了上面的准备工作,接下来就开始讲解六个逻辑覆盖标准:

      一、语句覆盖

      1、概念:

      设计足够多的测试用例,使得被测试程序中的每条可执行语句至少被执行一次。在本例中,可执行语句是指语句块1到语句块4中的语句。

      2、测试用例:

      {x=3, y=3}可以执行到语句块1和语句块4,所走的路径:a-b-e-f

      {x=-3, y=0}可以执行到语句块2、语句块3和语句块4,所走的路径:a-c-d-f

      这样,通过两个测试用例即达到了语句覆盖的标准,当然,测试用例(测试用例组)并不是唯一的。

      3、测试的充分性:

      假设第一个判断语句if(x>0 && y>0)中的“&&”被程序员错误地写成了“||”,即if(x>0 || y>0),使用上面设计出来的一组测试用例来进行测试,仍然可以达到100%的语句覆盖,所以语句覆盖无法发现上述的逻辑错误。

      在六种逻辑覆盖标准中,语句覆盖标准是最弱的。

  • 相关阅读:
    PHP常用代码大全
    使用PHP CURL的POST数据
    mysql_fetch_assoc() ,mysql_fetch_array() , mysql_fetch_row()的区别
    Memcached 搭建过程
    IOS中的UIScrollView
    IOS的自定义控件
    苹果API常用英语名词
    UIActivityIndicatorView
    UIButton
    UIControl事件
  • 原文地址:https://www.cnblogs.com/wang-yong-qiang/p/4443706.html
Copyright © 2011-2022 走看看