zoukankan      html  css  js  c++  java
  • 【软件测试】白盒测试

    什么是白盒测试?

      白盒测试又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。

    白盒测试与黑盒测试有什么区别?

      软件的黑盒测试意味着测试要在软件的接口处进行。这种方法把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。

      软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。

    白盒测试的方法有哪些?

      1.代码检查

         代码检查是静态白盒测试,在不执行程序的条件下仔细审查代码,从而找出软件故障的过程。

      2.覆盖测试

         覆盖测试以程序内部的逻辑结构为基础设计测试用例,要求对被测程序的逻辑结构有清楚的了解。根据覆盖测试的目标不同,可分为:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖及路径覆盖。

         语句覆盖:指设计若干个测试用例,使程序中的每个可执行语句至少被执行一次。

         判定覆盖:指设计若干个测试用例,使得程序中的每个判定至少得到一次真值和假值,即判断中的真假分支至少均执行一次。判定覆盖又称为分支覆盖。

         条件覆盖:指设计若干个测试用例,使得程序中每个判断中每个条件的可能值至少得到一次。

         判定/条件覆盖:指设计若干个测试用例,使得判断中每个条件的所有(真或假)取值至少出现一次,并且每个判断的所有(真或假)判断结果也至少出现一次。

        组合覆盖:指设计若干个测试用例,使得每个判定条件的各种情况至少出现一次。

        路径覆盖:指设计若干个测试用例覆盖程序中所有的路径。

      3.路径测试

         从一个程序的入口开始,执行所经历的各个语句的完整过程。

    这里分享一篇白盒测试方法的文章给大家:http://www.wsbookshow.com/uploads/bookfile/201010/9787508479477_1.pdf

    白盒测试实例--覆盖测试

       1.一个小程序如下:

    if((x > 0 ) && ( y < 0 )){
        z = z - ( x + y );
    }
    if((x > 2) || (z > 0)){
        z = z + 5;
    }
    

     2.程序流程图

     

      3. 语句覆盖

          T1:x = 3 and y = -4 and z = 0

          在T1条件下,所有语句都将被执行

      4. 判定覆盖

          T1:x = 3 and y = -1 and z = 0

          T2:  x = -1 and y = -1 and z = -2

          则:

      x > 0 && y < 0 x > 2 || z > 0
    T1 True True
    T2 False False

          符合判定覆盖

      5. 条件覆盖

         T1:x = 3 and y = -1 and z = 3

         T2:x = -1 and y = 1 and z = -1

         则:

      x > 0 y < 0 x > 2 z > 0
    T1 True True True True
    T2 False False False False

          符合条件覆盖

      6. 判定/条件覆盖

         T1:x = 3 and y = -1 and z = 3

         T2:x = -1 and y = 1 and z = -1

         则:

      x > 0 y < 0 x > 2 z > 0 x > 0 && y < 0 x > 2 || z > 0
    T1 True True True True True True
    T2 False False False False False False

          符合判定/条件覆盖

      7. 组合覆盖

         T1:x = 3 and y = -1 and z = 3

         T2:x = 3 and y = 1 and z = -5

         T3:x = -1 and y = -1 and z = 3

         T4:x = -1 and y = 1 and z = -1

         则:

      x > 0 y < 0 x > 2 z > 0
    T1 True True True True
    T2 True False True False
    T3 False True False True
    T4 False False False False

          符合组合覆盖

      8. 路径覆盖

         T1:x = 3 and y = -1 and z = 3

         T2:x = 1 and y = -1 and z = -1

         T3:x = 3 and y = 1 and z = 0

         T4:x = -1 and y = 1 and z = -1

         则:

      x > 0 && y < 0 x > 2 || z > 0
    T1 True True
    T2 True False
    T3 False True
    T4 False False

        符合路径覆盖

     

  • 相关阅读:
    MySQL 重置Mysql root用户账号密码
    Git 在同一台机器上配置多个Git帐号
    JQuery 获取元素到浏览器可视窗口边缘的距离
    JQuery Ztree 树插件配置与应用小结
    JQuery iframe宽高度自适应浏览器窗口大小的解决方法
    JQuery jquerysessionjs插件使用介绍
    JQuery Deferred对象使用小结
    JQuery javascript实现父子页面相互调用
    JavaScript 使用new关键字调用函数
    CSS 让div,span等块级、非快级元素排列在同一行
  • 原文地址:https://www.cnblogs.com/tju-crab/p/4439433.html
Copyright © 2011-2022 走看看