一、白盒测试(结构测试)
白盒测试也称为结构测试,根据程序的内部结构和逻辑来设计测试用例,对程序的路径和过程进行测试,检查是否满足设计的需要。
白盒测试常用的技术是:逻辑覆盖、循环覆盖和基本路径测试。
1-1、逻辑覆盖
逻辑覆盖考察用测试数据运行被测程序时对程序逻辑的覆盖程度,主要的逻辑覆盖标准有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖6种。
(弱——>强)
1、语句覆盖
语句覆盖是指选择足够的测试数据,使被测试程序中的每条语句至少执行1次。
语句覆盖对程序执行逻辑的覆盖很低,因此一般认为它是很弱的逻辑覆盖。
示例:
A = 4
B = 4
C = 2
2、判定覆盖(分支覆盖)
判定覆盖是指设计足够的测试用例,使得被测程序中的每个判定表达式至少获得一次“真”值和“假”值,或者说是程序中的每一个取“真”分支和取“假”分支至少都通过一次,因此判定覆盖也称为分支覆盖。
判定覆盖要比语句覆盖更强一些。
示例:
判断1 判断2
Y Y
N N
3、条件覆盖
条件覆盖是指构造一组测试用例,使得每一判定语句中每个逻辑条件的各种可能的值至少满足一次。
示例:
4、判定/条件覆盖
判定/条件覆盖是指设计足够的测试用例,使得判定中每个条件的所有可能取值(真/假)至少出现一次,并使每个判定本身的判定结果(真/假)也至少出现一次。
判定覆盖 ∪ 条件覆盖
示例:
5、条件组合覆盖
条件组合覆盖是指设计足够的测试用例,使得每个判定中条件的各种可能值的组合都至少出现一次。
满足条件组合覆盖的测试用例是一定满足判定覆盖、条件覆盖和判定/条件覆盖的。
示例:
6、路径覆盖
路径覆盖是指覆盖被测试程序中所有可能的路径。
示例:
1-2、循环覆盖
执行足够的测试用例,使得循环中的每个条件都得到验证。
1-3、基本路径测试
基本路径测试法是在程序控制流图的基础上,通过分析控制流图的环路复杂性,导出基本可执行路径集合,从而设计测试用例。
白盒测试的原则如下:
(1)、程序模块中的所有独立路径至少执行一次。
(2)、在所有的逻辑判断中,取“真”和取“假”的两种情况至少都能执行一次。
(3)、每个循环都应在边界条件和一般条件下各执行一次。
(4)、测试程序内部数据结构的有效性等。
1-5、真题
真题1:
真题2:
真题3:
真题4:
真题5:
循环的分支,一般真、假都执行。
真题6:
真题7:
真题8:
分支覆盖:
1、测试用例1,满足Y,Y
2、测试用例2,满足N,N
真题9:
真题10: