白盒测试
主要用于单元测试阶段
- 控制流测试【逻辑覆盖测试(语句覆盖最弱,路径覆盖最强)】
- 数据库测试
- 程序变异测试【错误驱动测试】
逻辑覆盖标准[由低到高]
-
语句覆盖
-
确实每条代码语句至少执行一次
-
if (A and B): X = 1 # 覆盖此语句 else: Y = 1 # 可能未覆盖
-
-
判定覆盖(分支覆盖)
-
覆盖每个条件语句的真/假分支(if-else、switch)
if(A): #A True和False都需要触发 # ...
-
-
条件覆盖
- 覆盖每个布尔子条件(原子条件)的真/假,但不保证组合结果
- 对于
if<A and B>,需分别测试A=True/False和B=True/False,但是有可能漏掉A and B的整体分支
-
判定/条件覆盖
- 同时满足判定覆盖和提交覆盖
- 仍然不处理条件组合
-
条件组合覆盖
- 覆盖所有原子条件的所有可能组合(真值表)
-
路径覆盖
- 覆盖代码中的所有可能的执行路径(包括循环、多次分支组合)
黑盒测试
主要用于集成测试、确认测试和系统测试阶段
- 等价类划分:不同等价类,揭示不同的问题;有效等价类/无效等价类
- 边界值分析:1<=x<=10,可取x的值为0、1、10、11作为测试数据
- 错误推测:依赖经验和直觉测试
- 判定表:最适合描述在多个逻辑条件取值的组合所构成的复杂情况下,分别要执行哪些不同的动作
- 因果图:根据输入条件与输出条件之间的因果关系来设计测试用例