基础概念
- 白盒测试:
white-box testing验证程序是否如期望那样运行,也叫作结构测试、玻璃盒子测试 - 静态白盒测试:审视、分析代码、方法是否正确
动态白盒测试:逻辑覆盖,循环覆盖,基本路径覆盖等,主要用单元测试方法 - 第一代白盒测试:使用
assert,print,debug调试
第二代:使用了Test Scripts,代码覆盖,测试器等
第三代:使用了持续测试方法,Xunit
第四代:在线测试,灰盒测试与持续测试
逻辑覆盖
以该流程图作为测试样例:

语句覆盖
Statement Coverage
每行语句至少被执行一次
在这里,一共就是四句语句,即让两个表达式都为真的话,每个语句都能被执行过一次了
测试用例:
| 测试ID | A | B | X | output |
|---|---|---|---|---|
| Case1 | 2 | 0 | 3 | 2 |
- 分支/决策覆盖
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 |
总结图

版权声明:本文为weixin_45775438原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。