基础概念
- 白盒测试:
white-box testing
验证程序是否如期望那样运行,也叫作结构测试、玻璃盒子测试 - 静态白盒测试:审视、分析代码、方法是否正确
动态白盒测试:逻辑覆盖,循环覆盖,基本路径覆盖等,主要用单元测试方法 - 第一代白盒测试:使用
assert,print,debug
调试
第二代:使用了 Test Scripts
,代码覆盖,测试器等
第三代:使用了持续测试方法,Xunit
第四代:在线测试,灰盒测试与持续测试
逻辑覆盖
- 分支/决策覆盖
Branch/Decision Coverage
每个分支至少被执行一次
测试ID | A | B | X | output |
---|
Case1 | 2 | 0 | 3 | 2 |
Case2 | 1 | 1 | 1 | 1 |
这里第一个测试用例是 TT,第二个测试用例是 FF
- 条件覆盖
Condition Coverage
每一个条件的真/假至少被测试一次
这里一共有四个条件:A>1,B=0,A=2,X>1
我们让每个条件的真/假都至少测试到一次
测试ID | A | B | X | output |
---|
Case1 | 2 | 0 | 3 | 2 |
Case2 | 1 | 1 | 1 | 1 |
- 分支/条件覆盖
Branch/Condition Coverage
综合分支和条件覆盖
一共两个分支,四个条件。我们让每个分支/条件都至少测试一次真/假
测试ID | A | B | X | output |
---|
Case1 | 2 | 0 | 3 | 2 |
Case2 | 1 | 1 | 1 | 1 |
- 条件组合覆盖
Condition Combination Coverage
在每个分支的所有条件值的组合
在这里,第一个分支的条件:A>1,B=0
所以一共有四种组合:
- A>1,B=0
- A>1,B!=0
- A<=1,B=0
- A<=1,B!=0
对于第二个分支同理,所以总共有八个组合。
测试ID | A | B | X | output |
---|
Case1 | 2 | 0 | 3 | 2 |
Case2 | 1 | 1 | 1 | 1 |
Case3 | 2 | 1 | 1 | 2 |
Case4 | 1 | 0 | 3 | 4 |
- 路径覆盖
Path Coverage
每条程序路径至少被跑过一次
路径一共有四条,一一罗列即可
测试ID | A | B | X | output |
---|
Case1 | 2 | 0 | 3 | 2 |
Case2 | 1 | 0 | 1 | 1 |
Case3 | 2 | 1 | 1 | 2 |
Case4 | 3 | 0 | 3 | 1 |
总结图