白盒测试:
又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。
以下是白盒测试的六种方法:
【1】语句覆盖(设计若干个测试用例,使程序中的每个可执行语句至少执行一次)
【2】判定覆盖(设计足够多的测试用例,使程序中的每个判定都至少获得“真值”和“假值”)
【3】条件覆盖(每一个判定中每个逻辑条件的可能的值至少被满足一次
【4】判定条件覆盖(判定中每个条件所有可能至少出现一次,判定本身的判定结果业至少出现一次)
【5】条件组合覆盖(每个判定中条件的各种可能组合都至少出现一次)
【6】路径覆盖(每个路径都可能被执行)
第一题:
设计测试用例实现语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,路径覆盖.
【1】语句覆盖(设计若干个测试用例,使程序中的每个可执行语句至少执行一次)
(x>3)&&(z<10)为真记为T1,为假记为F1
(x==4)||(y>5)为真记为T2,为假记为F2
序号 | 状态 | 条件 | X | Z | Y | 路径 |
1 | T1T2 | (x>3)(z<10)(x==4)(y>5) | 4 | 5 | 6 | abd |
【2】判定覆盖(设计足够多的测试用例,使程序中的每个判定都至少获得“真值”和“假值”)
(x>3)&&(z<10)为真记为T1,为假记为F1
(x==4)||(y>5)为真记为T2,为假记为F2
根据判定覆盖的定义,应使两个判定都至少获得“真值”和“假值”。即(x>3)&&(z<10)和(x==4)||(y>5)都至少获得“真值”和“假值”
序号 | 状态 | 条件 | X | Z | Y | 路径 |
1 | F1T2 | (x<=3),(z<10),( y>5), (x不等于4) | 3 | 5 | 7 | acd |
2 | T1F2 | (x>3),(z<10),( y<=5), (x不等于4) | 5 | 6 | 4 | abe |
【3】条件覆盖(每一个判定中每个逻辑条件的可能的值至少被满足一次)
(x>3)&&(z<10)
(x>3)记为T1 (x<=3)记为F1
(z<10)记为T2 (z>=10)记为F2
(x==4)||(y>5)
(x==4)记为T3 (x不等于4)记为F3
(y>5)记为T4 ( y<=5)记为F4
序号 | 状态 | 条件 | X | Z | Y | 路径 |
1 | T1T2T3T4 | (x>3)(z<10)(x==4)(y>5) | 4 | 5 | 6 | abd |
2 | F1F2F3F4 | (x<=3)(z>=10)(x不等于4)( y<=5) | 1 | 11 | 4 | ace |
【4】判定条件覆盖(判定中每个条件所有可能至少出现一次,判定本身的判定结果业至少出现一次)
(x>3)&&(z<10)
(x>3)记为T1 (x<=3)记为F1
(z<10)记为T2 (z>=10)记为F2
(x==4)||(y>5)
(x==4)记为T3 (x不等于4)记为F3
(y>5)记为T4 ( y<=5)记为F4
序号 | 状态 | 条件 | X | Z | Y | 路径 |
1 | T1T2T3T4 | (x>3)(z<10)(x==4)(y>5) | 4 | 5 | 6 | abd |
2 | F1F2F3F4 | (x<=3)(z>=10)(x不等于4)( y<=5) | 1 | 11 | 4 | ace |
【5】条件组合覆盖(每个判定中条件的各种可能组合都至少出现一次)
(x>3)&&(z<10)
(x>3)记为T1 (x<=3)记为F1
(z<10)记为T2 (z>=10)记为F2
(x==4)||(y>5)
(x==4)记为T3 (x不等于4)记为F3
(y>5)记为T4 ( y<=5)记为F4
序号 | 状态 | 条件 | X | Z | Y | 路径 |
1 | T1T2T3T4 | (x>3)(z<10)(x==4)(y>5) | 4 | 5 | 6 | abd |
2 | F1T2T3T4 | (x<=3)(z<10)(x==4)(y>5) | - | - | - | - |
3 | T1F2T3T4 | (x>3)(z>=10)(x==4)(y>5) | 4 | 6 | 11 | acd |
4 | T1T2F3T4 | (x>3)(z<10)(x不等于4)(y>5) | 5 | 8 | 6 | abd |
5 | T1T2T3F4 | (x>3)(z<10)(x==4)( y<=5) | 4 | 8 | 4 | abd |
6 | T1T2F3F4 | (x>3)(z<10)(x不等于4)( y<=5) | 5 | 8 | 4 | abe |
7 | F1F2T3T4 | (x<=3)(z>=10)(x==4)(y>5) | - | - | - | - |
8 | F1T2F3T4 | (x<=3)(z<10)(x不等于4)(y>5) | 2 | 8 | 6 | acd |
9 | T1F2T3F4 | (x>3)(z>=10)(x==4)( y<=5) | 4 | 11 | 6 | acd |
10 | T1F2F3T4 | (x>3)(z>=10)(x不等于4)(y>5) | 5 | 11 | 6 | acd |
11 | F1T2T3F4 | (x<=3)(z<10)(x==4)( y<=5) | - | - | - | - |
12 | T1F2F3F4 | (x>3)(z>=10)(x不等于4)( y<=5) | 5 | 11 | 4 | ace |
13 | F1T2F3F4 | (x<=3)(z<10)(x不等于4)( y<=5) | 2 | 8 | 4 | ace |
14 | F1F2T3F4 | (x<=3)(z>=10)(x==4)( y<=5) | - | - | - | - |
15 | F1F2F3T4 | (x<=3)(z>=10)(x不等于4)(y>5) | 2 | 11 | 6 | acd |
16 | F1F2F3F4 | (x<=3)(z>=10)(x不等于4)( y<=5) | 1 | 11 | 4 | ace |
【6】路径覆盖(每个路径都可能被执行)
(x>3)&&(z<10)
(x>3)记为T1 (x<=3)记为F1
(z<10)记为T2 (z>=10)记为F2
(x==4)||(y>5)
(x==4)记为T3 (x不等于4)记为F3
(y>5)记为T4 ( y<=5)记为F4
序号 | 状态 | 条件 | X | Z | Y | 路径 |
1 | T1T2T3T4 | (x>3)(z<10)(x==4)(y>5) | 4 | 5 | 6 | abd |
2 | F1F2F3F4 | (x<=3)(z>=10)(x不等于4)( y<=5) | 1 | 11 | 4 | ace |