【软件测试】白盒测试

什么是白盒测试?

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

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

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

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

白盒测试的方法有哪些?

  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

    符合路径覆盖

 

原文地址:https://www.cnblogs.com/tju-crab/p/4439433.html