【软件测试】白盒测试
什么是白盒测试?
白盒测试又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。
白盒测试与黑盒测试有什么区别?
软件的黑盒测试意味着测试要在软件的接口处进行。这种方法把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。
软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。
白盒测试的方法有哪些?
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 |
符合路径覆盖