1.白盒测试
定义:黑盒测试是一种不关注程序内部结构或实现细节,只关注软件的输入和输出的测试方法。测试人员把软件看作一个“黑盒子”,只根据需求规格说明书来设计测试用例。
常见白盒测试方法:
- **语句覆盖:**被测程序中每个语句至少执行一次
- **判定覆盖:**不仅每个语句必须至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次
- 条件覆盖: 每个判定中的每个条件至少执行1次
- 判定条件覆盖
- 路径覆盖
- 组合覆盖
1
2
3
4
5
6
|
//以这个例子完成白盒测试
if A and B
then Action1
if C or D
then Action2
|
1.1.语句覆盖
选择足够多的测试数据,使被测程序中每个语句至少执行一次。
在上面例子中,语句有两条,Action1和Action2
1
2
3
4
|
A and B -> True ===> A=True && B=True
C or D -> True ===> C=True or D=True
test1: A=true,B=true,C=true,d=true //语句覆盖
|
1.2.判定覆盖—也叫分支覆盖
每个判断真假至少执行1次
1
2
3
4
5
6
7
8
9
10
|
上面例子中:
判定 A and B
C or D
条件:A B C D
判定覆盖测试用例:
A and B ===T ===> A=T,B=T 1
A and B ===F ===> A=T,B=F 2
C or D ===T ===> C=T, D=T 3
C or D ===F ===> C=F, D=F 4
|
| test1 |
A=T,B=T,C=T,D=F |
1,3 |
| test2 |
A=T,B=F,C=F,D=F |
2,4 |
1.3.条件覆盖
每个判定中的每个条件至少执行1次
1
2
3
4
5
6
|
条件覆盖,每个条件至少取一次真假
A True False
B True False
C True False
D True False
5 6
|
| test1 |
A=T,B=T,C=T,D=T |
|
| test2 |
A=F,B=F,C=F,D=F |
|
1.4.判定条件覆盖
就是判定覆盖和条件覆盖组合起来,既要让每个判定取一次真假,也要让每个条件取一次真假
1
2
3
4
5
6
7
8
9
10
11
12
|
判定覆盖测试用例:
A and B ===T ===> A=T,B=T 1
A and B ===F ===> A=T,B=F 2
C or D ===T ===> C=T, D=T 3
C or D ===F ===> C=F, D=F 4
A True False
B True False
C True False
D True False
5 6
|
| test1 |
A=T,B=T,C=T,D=T |
1,3,5 |
| test2 |
A=F,B=F,C=F,D=F |
2,4,6 |
1.5.路径覆盖
把程序每条路径走一遍

1
2
3
4
5
6
7
8
9
|
(x>3) and (z<10)
真 假
action1 ()
(x==4) or (y>5) (x==4) or (y>5)
真 假 真 假
action2 action2
action3 action3 action3 action3
|
| test1 |
x=4,z=9,y=6 |
路径1 |
| test2 |
x=5,z=9,y=1 |
路径2 |
| test3 |
x=2,z=9,y=6 |
路径3 |
| test4 |
x=2,z=9,y=1 |
路径4 |
1.6.组合覆盖—也叫条件组合覆盖
把每个判定中的条件组合
1
2
3
4
5
6
7
8
9
10
11
12
|
Verdict: A and B
C OR D
Combined coverage:
A B C D
T F T F test1
T T T T test2
F T F T test3
F F F F test4
|
2.黑盒测试
定义:白盒测试是一种关注程序内部结构、实现逻辑和代码路径的测试方法。测试人员需要了解程序的内部代码,根据代码逻辑设计测试用例,以验证程序内部的正确性。
常见黑盒测试方法:
- 等价类划分
- 边界值分析
- 因果图
- 判定表
- 场景测试
2.1.等价类划分
步骤:找出限制条件
划分有效等价类和无效等价类
输入测试数据覆盖等价类
2.2.边界值分析
2.3.因果图
2.4.判定表